<?php

namespace App\Console\Commands;



use App\Models\Domain\DomainInfo;
use App\Models\HomeCount\Count;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
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()
    {
        $projects = Project::all();
        foreach ($projects as $project){
            echo "project " . $project->id;
            if(!ProjectServer::useProject($project->id)){
                echo '未配置数据库' . PHP_EOL;
                continue;
            }
            try {
                $list = Count::where('pv_num', 0)->get();
                foreach ($list as $v){
                    $v->pv_num = $this->pv_num($v['date']);
                    //ip统计
                    $v->ip_num = $this->ip_num($v['date']);
                    $v->save();
                    echo $v['date'] . ':' . $v->pv_num .':'. $v->ip_num . PHP_EOL;
                }
            }catch (\Exception $e){
                echo '保存失败' . $e->getMessage() . PHP_EOL;
            }
        }
        echo "finish";
    }

    /**
     * @name   :(统计pv)pv_num
     * @author :lyh
     * @method :post
     * @time   :2023/6/14 15:40
     */
    public function pv_num($yesterday){
        $pv = DB::connection('custom_mysql')->table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->count();
        return $pv;
    }

    /**
     * @name   :(统计ip)ip_num
     * @author :lyh
     * @method :post
     * @time   :2023/6/14 15:40
     */
    public function ip_num($yesterday){
        $ip = DB::connection('custom_mysql')->table('gl_customer_visit')->whereDate('updated_date', $yesterday)->count();
        return $ip;
    }
}