<?php

namespace app\order\controller;

use app\order\model\ProductOrder as PoductOrderModel;
use enum\order\ProductOrder as ProductOrderEnum;

class OpenRefund
{
    /**
     * @description: 获取数据
     * @param {*}
     * @return {*}
     */
    public function getList()
    {
        $page = 0;
        $where = [];
        $where2 = '';
        if (isset($_GET['page'])) {
            $page = ($_GET['page'] - 1) * 50;
        }
        if (!empty($_GET['Btime'])){
            $date1 = date('Y-m-d', strtotime($_GET['Btime']));
            $date2 = date('Y-m-d', strtotime($_GET['Etime']));
            $where2 .= " CreateTime>='" . $date1 . "' and CreateTime<='" . $date2 . "' ";
        }
        if (!empty($_GET['ProductIds'])){
            $where['ProductId'] = $_GET['ProductIds'];
        }
        $product_order_model = new PoductOrderModel;
        $product_order_enum = new ProductOrderEnum;
        $where['OrderType'] = $product_order_enum::$Refund;
        $list = $product_order_model->openGetList($where, 'CreateTime,ProductName,PackageName,ConnectCount*AccountCount ConnectCount,Accounts,RefundRestTime,OrderState', 'CreateTime desc', "$page,50", $where2);
        // $data = [
        //     'list' => $list,
        //     'count' => $product_order_model->getOpenCount($where,$where2)
        // ];
        $order_status = [
            '30' => '未自动退款',
            '40' => '已人工处理',
            '50' => '已自动退款',
        ];
        foreach($list as &$info){
            $info['OrderState'] = $order_status[$info['OrderState']];
        }
        $retuen_info = [
            'code' => 0,
            'msg' => '',
            'count' => $product_order_model->getOpenCount($where,$where2)['count'],
            'data' => $list,
        ];
        echo json_encode($retuen_info);
    }

    /**
     * @description: 导出数据
     * @param {*}
     * @return {*}
     */
    public function export()
    {
        $page = 0;
        $where = [];
        $where2 = '';
        if (!empty($_GET['Btime'])){
            $date1 = date('Y-m-d', strtotime($_GET['Btime']));
            $date2 = date('Y-m-d', strtotime($_GET['Etime']));
            $where2 .= " CreateTime>='" . $date1 . "' and CreateTime<='" . $date2 . "' ";
        }
        if (!empty($_GET['ProductIds'])){
            $where['ProductId'] = $_GET['ProductIds'];
        }
        $product_order_model = new PoductOrderModel;
        $product_order_enum = new ProductOrderEnum;
        $where['OrderType'] = $product_order_enum::$Refund;
        $list = $product_order_model->openGetList($where, 'CreateTime,ProductName,PackageName,ConnectCount*AccountCount ConnectCount,Accounts,RefundRestTime,OrderState', 'CreateTime desc', "10000000", $where2);
        
        $order_status = [
            '30' => '未自动退款',
            '40' => '已人工处理',
            '50' => '已自动退款',
        ];
        foreach($list as &$info){
            $info['OrderState'] = $order_status[$info['OrderState']];
        }

        \exportToCsv('test.csv',['创建时间','产品','套餐','连接数','账号','剩余时间','退款状态'],$list);
    }
}
