CountController.php 3.4 KB
<?php

namespace App\Http\Controllers\Bside\HomeCount;

use App\Enums\Common\Code;
use App\Helper\Common;
use App\Helper\FormGlobalsoApi;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\HomeCount\CountLogic;
use App\Models\Project\DeployBuild;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;

class CountController extends BaseController
{
    const STATUS_ERROR = 400;
    /**
     * @name   :(昨日统计数据)yesterday_count
     * @author :lyh
     * @method :post
     * @time   :2023/5/23 17:23
     */
    public function count(CountLogic $countLogic){
        $data = [];
        //TODO::昨日数据统计
        $data['yesterday'] = $countLogic->yesterday_count();
        //TODO::全球搜方案信息
        $data['scheme_info'] = $countLogic->scheme_info();
        //TODO::网站访问量统计
        $data['total_visit'] = $countLogic->total_count(isset($data['yesterday']['inquiry_num']) ? $data['yesterday']['inquiry_num'] : '');
        //TODO::关键字排名数据
        $data['keyword_data'] = $countLogic->keyword_data_count();
        //TODO::相关数据统计
        $data['with_data'] = $countLogic->with_data_count();
        //TODO::30天pv,ip统计
        $data['visit_data'] = $countLogic->visit_data_count();
        //TODO::询盘国家统计
        $data['country_data'] = $countLogic->inquiry_country_count();
        //TODO::来源排名
        $data['country_data'] = $countLogic->referrer_count();
        //TODO::访问国家前10
        $data['access_country_count'] = $countLogic->access_country_count();
        //TODO::企业中心服务
        $data['enterprise_service'] = $countLogic->enterprise_service();
        return $this->response('success',Code::SUCCESS,$data);
    }

    /***
     * @name   :(手动获取昨日数据统计)yesterday
     * @author :lyh
     * @method :post
     * @time   :2023/5/24 9:13
     */
    public function yesterday(){
        $deployModel = new DeployBuild();
        $list = $deployModel->list();
        $data = [];
        $yesterday = Carbon::yesterday()->toDateString();
        foreach ($list as $v){
            $arr = [];
            $arr['yesterday_pv_num'] = DB::table('gl_customer_visit_item')->whereDate('date', $yesterday)->where('domain',$v['test_domain'])->count();
            $arr['yesterday_ip_num'] = DB::table('gl_customer_visit')->whereDate('date', $yesterday)->where('domain',$v['test_domain'])->count();
            $inquiry_list = (new FormGlobalsoApi())->getInquiryList($v['test_domain']);
            if($inquiry_list['status'] == self::STATUS_ERROR){
                $arr['inquiry_num'] = 0;
            }else{
                $arr['inquiry_num'] = count($inquiry_list['data']['total']);
            }
            $arr['date'] = $yesterday;
            $rank_info = DB::table('gl_rank_data')->where(['updated_date'=>$yesterday,'lang'=>''])->select(['compliance_day'])->first();
            if(empty($rank_info)){
                $arr['compliance_day'] = 0;
            }else{
                $arr['compliance_day'] = $rank_info->compliance_day;
            }
            $arr['service_day'] = $v['service_duration'] - Common::getDaysToTargetDate($v['created_at']);
            $arr['project_id'] = $v['project_id'];
            $arr['created_at'] = date('Y-m-d H:i:s');
            $arr['updated_at'] = date('Y-m-d H:i:s');
            $data[] = $arr;
        }
        DB::table('gl_count')->insert($data);
        $this->response('success');
    }
}