<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
use Cookie;
use App\Http\Page;
use App\Http\Controllers\PermController;

Class OrderCountController extends Controller
{
	// 页面用户、菜单信息
    public function getPageInfo(Request $request)
    {
        $uri = '/' . $request->path();

        $username = $request->user->email;
        $useremail= $request->user->email;

        // 菜单
        $menuconfig = DB::table('config')->where('config_title', '订单系统')->first();
        $menus = [];
        if ($menuconfig && !($menus = json_decode($menuconfig->config_data)))
            $menus = [];

        $perm = new PermController;

        // 用户角色
        $role = $perm->getUserRole($request);

        // 获取权限菜单
        if ($role != 1) {
            $menus = $perm->getPermMenu($menus, $request->user->userId);   
        }

        $data = [
            'header'    => $request->user->header,
            'uri'       => $uri,
            'username'  => $username,
            'useremail' => $useremail,
            'menus'     => $menus,
        ];

        return $data;
    }

	/**
     * 订单数统计
     */
    public function count(Request $request, $type = 1, $view = 'count')
    {
    	$info = $this->getPageInfo($request);
        $info['type'] = $type;
        $info['title'] = '订单统计';

    	$url = Config('website.api_domain').'order/orderCount';

        $data['k1']  = time();
        $data['k2']  = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');

        $resData = array("pf"=>1, "k1"=>$data['k1'], "k2"=>$data['k2'], 'type'=>$type);

        $temp = json_decode(curlApi($url,$resData,"POST"), true);

        $info['count'] = $temp['data'];

        return view($view, $info);
    }

    /**
     * 金额统计 -- 订单列表
     */
    public function amount(Request $request, $type = 1, $view = 'amount')
    {
    	$info = $this->getPageInfo($request);
        $info['type'] = $type;
        $info['title'] = '订单金额统计';
        $info['paths'] = [["title" => '订单统计', "href" => '#'], ["title" => $type == 1 ? '联营订单统计' : '自营订单统计', "href" => $type == 1 ? '/count' : 'self_count'], ["title" => '订单金额统计', "href" => '#']];

        $time_start = $request->input('time_start', ''); // 开始时间
        $time_end = $request->input('time_end', ''); // 结束时间

        // 今日开始、结束时间
        $time_today_start = strtotime(date('Y-m-d'));
        $time_today_end = strtotime(date('Y-m-d',time()+3600*24))-1;

        $map['time_start'] = $time_start = !empty($time_start) ? $time_start : $time_today_start;
        $map['time_end'] = $time_end = !empty($time_end) ? $time_end : $time_today_end;

        $map['checkTime'] = $checkTime = $request->input('checkTime', '1'); // 默认选择订单付款时间
        $map['checkStatus'] = $checkStatus = $request->input('checkStatus', '1'); // 默认选择查询全部
        $map['order_goods_type'] = $type;

        // 竞调账号
        if ($info['username'] != 'vpadmin@ichunt.com') {
            $map['is_fake'] = 0;
        }

        // 调用API
        $url = Config('website.api_domain').'order/getAllOrder';

        $data['k1']  = time();
        $data['k2']  = md5(md5($data['k1']).'fh6y5t4rr351d2c3bryi');

        $data['p'] = isset($_REQUEST['p']) ? $_REQUEST['p'] : 1; // 当前页码
        $data['map'] = $map;

        $response = json_decode(curlApi($url, $data), true); // 调用接口
  
        // API返回
        if ($response['err_code'] == 0) {
            $count = $response['data']['count'];

            $pay_count = $response['data']['pay_count'];

            if($count > 0){
                $pageSize = 10;
                $page = new Page($count, $pageSize);
                $page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');                   
                $info['count'] = $count;
                $info['page'] = $page->show();
            }

            $info['list'] = $response['data']['data'];
            $info['pay_count'] = $response['data']['pay_count'];
        }

        $info['checkTime'] = $checkTime;
        $info['checkStatus'] = $checkStatus;
        $info['time_start'] = $time_start;
        $info['time_end'] = $time_end;

        return view($view, $info);
    }

    // 自营订单统计
    public function selfCount(REQUEST $request) 
    {
        return $this->count($request, 2, 'count');
    }

    // 自营订单金额统计
    public function selfAmount(REQUEST $request) 
    {
        return $this->amount($request, 2, 'amount');
    }
}