<?php

namespace App\Console\Commands;



use App\Helper\FormGlobalsoApi;
use App\Models\Domain\DomainInfo;
use App\Models\HomeCount\Count;
use App\Models\Inquiry\InquiryFormData;
use App\Models\Nav\BNav;
use App\Models\Nav\BNavGroup;
use App\Models\Project\Project;
use App\Models\WebSetting\Translate as TranslateModel;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use mysql_xdevapi\Exception;

/**
 * Class Test
 * @package App\Console\Commands
 * @author zbj
 * @date 2023/4/25
 */
class Test extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'test';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * @return bool
     */
    public function handle()
    {
        ProjectServer::useProject(3);
        $data = [
            'c' => 'c',
            'b' => 'a',
            'a' => 'b',
            'e' => 'e',
        ];
        $param = [
            'type'=>1,
            'project_id'=>3,
            'url'=>'/',
            'language_id'=>2,
            'alias'=>'zh',
        ];
        $param['data'] = json_encode($data,true);
        TranslateModel::insert($param);
        dd('end');
        $this->model->add($param);
        ProjectServer::useProject(1);
        $group =BNavGroup::where(['id' => 1])->first();
        $sort_list = json_decode($group->sort_list, true);
        $nav = new BNav();
        $map = [
            'project_id' => 1,
            'group_id' => 1
        ];
        $list = $nav->list($map, ['sort','id']);
        $ids = array_column($group, 'id');
        dd($list, $sort_list);
        $projects = Project::all();
        foreach ($projects as $project){
            echo "project " . $project->id;
            if(!ProjectServer::useProject($project->id)){
                echo '未配置数据库' . PHP_EOL;
                continue;
            }
            $test_domain = $project->deploy_build['test_domain'];
            $domainInfo = new DomainInfo();
            $info = $domainInfo->read(['id'=>$project->deploy_optimize['domain']]);
            if($info !== false){
                $test_domain = $info['domain'];
            }

            try {
                $list = Count::where('date', '2023-12-11')->where('project_id', $project->id)->get();
                foreach ($list as $v){
                    $arr = $this->inquiry([],$test_domain, $v['id']);
                    $v->inquiry_num = $arr['inquiry_num'];
                    $v->country = $arr['country'];
                    $v->save();
                    echo $v['date'] . ':' . $v->pv_num .':'. $v->ip_num . PHP_EOL;
                }
            }catch (\Exception $e){
                echo '保存失败' . $e->getMessage() . PHP_EOL;
            }
        }
        echo "finish";
    }

    public function inquiry($arr,$domain,$project_id){
        $inquiry_list = (new FormGlobalsoApi())->getInquiryList($domain,'',1,100000000);
        if($inquiry_list['status'] == 400){
            $arr['inquiry_num'] = 0;
            $countryArr = [];
        }else{
            $arr['inquiry_num'] = $inquiry_list['data']['total'];
            //询盘国家统计
            $countryData = $inquiry_list['data']['data'];
            $countryArr = [];
            foreach ($countryData as $v1){
                if(isset($countryArr[$v1['country']])){
                    $countryArr[$v1['country']]++;
                }else{
                    $countryArr[$v1['country']] = 1;
                }
            }
        }

        //加上其他询盘
        $arr['inquiry_num'] += InquiryFormData::getCount();
        $countryData = InquiryFormData::getCountryCount();
        foreach ($countryData as $v1){
            if(isset($countryArr[$v1['country']])){
                $countryArr[$v1['country']] += $v1['count'];
            }else{
                $countryArr[$v1['country']] = $v1['count'];
            }
        }


        arsort($countryArr);
        $top20 = array_slice($countryArr, 0, 20, true);
        $arr['country'] = json_encode($top20);
        return $arr;
    }
}