|
...
|
...
|
@@ -10,11 +10,16 @@ use App\Models\HomeCount\Count; |
|
|
|
use App\Models\Inquiry\InquiryFormData;
|
|
|
|
use App\Models\Nav\BNav;
|
|
|
|
use App\Models\Nav\BNavGroup;
|
|
|
|
use App\Models\Project\OnlineCheck;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\SyncSubmitTask\SyncSubmitTask as SyncSubmitTaskModel;
|
|
|
|
use App\Models\WebSetting\Translate as TranslateModel;
|
|
|
|
use App\Models\WebSetting\WebLanguage;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Carbon\Carbon;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class Test
|
|
...
|
...
|
@@ -53,6 +58,19 @@ class Test extends Command |
|
|
|
*/
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
$date = '2025-05-16';
|
|
|
|
$list = $this->getProjectList();
|
|
|
|
foreach ($list as $item){
|
|
|
|
ProjectServer::useProject($item['id']);
|
|
|
|
//pv统计
|
|
|
|
$pv_num = $this->pv_num($date);
|
|
|
|
//ip统计
|
|
|
|
$ip_num = $this->ip_num($date);
|
|
|
|
|
|
|
|
echo $item['project_id'] . ',pv:' . $pv_num . ',ip:' . $ip_num;
|
|
|
|
}
|
|
|
|
exit;
|
|
|
|
|
|
|
|
|
|
|
|
$i=0;
|
|
|
|
while (true){
|
|
...
|
...
|
@@ -167,4 +185,80 @@ class Test extends Command |
|
|
|
$arr['country'] = json_encode($top20);
|
|
|
|
return $arr;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function getProjectList($type = 1){
|
|
|
|
$ru_lang_id = WebLanguage::getIdByLang('ru');
|
|
|
|
|
|
|
|
//推广项目
|
|
|
|
$list = Project::with('domainInfo')
|
|
|
|
->leftJoin('gl_project_deploy_optimize as pdo', 'pdo.project_id', '=', 'gl_project.id')
|
|
|
|
->leftJoin('gl_project_online_check as poc', 'poc.project_id', '=', 'gl_project.id')
|
|
|
|
->where('pdo.domain', '>', 0)
|
|
|
|
->where('poc.qa_status', OnlineCheck::STATUS_ONLINE_TRUE)
|
|
|
|
->whereIn('gl_project.type', [Project::TYPE_TWO, Project::TYPE_FOUR])
|
|
|
|
->where('gl_project.is_upgrade', 0) //非升级项目
|
|
|
|
->where('gl_project.main_lang_id', '<>', $ru_lang_id) //非俄语站
|
|
|
|
->where(function ($query) use ($type) {
|
|
|
|
if($type == 1){
|
|
|
|
//1-3个月项目
|
|
|
|
$startTime = Carbon::now()->addMonths(-4)->toDateString();
|
|
|
|
$endTime = Carbon::now()->addMonths(-1)->toDateString();
|
|
|
|
$query->whereBetween('pdo.start_date', [$startTime,$endTime]);
|
|
|
|
}elseif($type == 2){
|
|
|
|
//4-8个月项目
|
|
|
|
$startTime = Carbon::now()->addMonths(-9)->startOfDay()->toDateTimeString();
|
|
|
|
$endTime = Carbon::now()->addMonths(-4)->endOfDay()->toDateTimeString();
|
|
|
|
$query->whereBetween('pdo.start_date', [$startTime,$endTime]);
|
|
|
|
}else{
|
|
|
|
//大于9个月项目
|
|
|
|
$startTime = Carbon::now()->addMonths(-9)->startOfDay()->toDateTimeString();
|
|
|
|
$query->where('pdo.start_date', '<', $startTime);
|
|
|
|
}
|
|
|
|
})->select(['pdo.project_id','gl_project.main_lang_id','gl_project.id'])
|
|
|
|
->orderBy('project_id')
|
|
|
|
->get();
|
|
|
|
//其他地方在引流的域名
|
|
|
|
$other = DB::connection('projects_mysql')->table('projects')->where('switch', 1)->pluck('domain')->toArray();
|
|
|
|
|
|
|
|
foreach ($list as $project) {
|
|
|
|
$lang = WebLanguage::getLangById($project['main_lang_id']??1)['short'];
|
|
|
|
if(empty($project->domainInfo['domain'])){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
//其他地方在引流就不再引流了
|
|
|
|
if(in_array($project->domainInfo['domain'], $other)){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$data = [
|
|
|
|
'project_id' => $project['project_id'],
|
|
|
|
'domain' => 'https://' . $project->domainInfo['domain'] . '/',
|
|
|
|
'lang' => $lang
|
|
|
|
];
|
|
|
|
|
|
|
|
Redis::lpush('web_traffic_fix', json_encode($data));
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* @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')->where('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')->where('updated_date', $yesterday)->count();
|
|
|
|
return $ip;
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|