作者 lyh

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

@@ -164,10 +164,5 @@ class RankData extends BaseCommands @@ -164,10 +164,5 @@ class RankData extends BaseCommands
164 $model->updated_date = date('Y-m-d'); 164 $model->updated_date = date('Y-m-d');
165 @file_put_contents(storage_path('logs/lyh_error.log'), var_export($model, true) . PHP_EOL, FILE_APPEND); 165 @file_put_contents(storage_path('logs/lyh_error.log'), var_export($model, true) . PHP_EOL, FILE_APPEND);
166 $model->save(); 166 $model->save();
167 -  
168 - //保存项目 剩余服务天数  
169 - $project = Project::with('deploy_build')->find(1);  
170 - $project->remain_day = $project['deploy_build']['service_duration'] - $model->compliance_day;  
171 - $project->save();  
172 } 167 }
173 } 168 }
  1 +<?php
  2 +
  3 +namespace App\Console\Commands;
  4 +
  5 +use App\Helper\Arr;
  6 +use App\Models\Product\Category;
  7 +use App\Models\Product\Product;
  8 +use App\Models\Project\OnlineCheck;
  9 +use App\Models\Project\Project;
  10 +use App\Models\RankData\RankData as GoogleRankModel;
  11 +use App\Models\RouteMap\RouteMap;
  12 +use GuzzleHttp\Client;
  13 +use GuzzleHttp\Promise\Utils;
  14 +use Illuminate\Console\Command;
  15 +use Illuminate\Support\Facades\DB;
  16 +use Illuminate\Support\Str;
  17 +
  18 +/**
  19 + * 剩余服务时长
  20 + * Class Traffic
  21 + * @package App\Console\Commands
  22 + * @author zbj
  23 + * @date 2023/5/18
  24 + */
  25 +class RemainDay extends Command
  26 +{
  27 + /**
  28 + * The name and signature of the console command.
  29 + *
  30 + * @var string
  31 + */
  32 + protected $signature = 'remain_day';
  33 +
  34 + /**
  35 + * The console command description.
  36 + *
  37 + * @var string
  38 + */
  39 + protected $description = '网站服务剩余时长';
  40 +
  41 + /**
  42 + * Create a new command instance.
  43 + *
  44 + * @return void
  45 + */
  46 + public function __construct()
  47 + {
  48 + parent::__construct();
  49 + }
  50 +
  51 + /**
  52 + * @return bool
  53 + */
  54 + public function handle()
  55 + {
  56 + $list = Project::whereIn('type', ['2,3,4'])->get();
  57 + foreach ($list as $item){
  58 + if($item['type'] == 3){
  59 + //排名达标天数
  60 + $compliance_day = GoogleRankModel::where(['project_id' => $item['id'], 'lang' => ''])->value('compliance_day') ?: 0;
  61 + $remain_day = $item['deploy_build']['service_duration'] - $compliance_day;
  62 + }else{
  63 + //审核上线后开始
  64 + $check_time = OnlineCheck::where('project_id', $item['id'])->where('status', 1)->value('created_at') ?: '';
  65 + if($check_time){
  66 + $remain_day = $item['deploy_build']['service_duration'];
  67 + }else{
  68 + $diff = time() - strtotime($check_time);
  69 + $remain_day = floor($diff / (60 * 60 * 24));
  70 + }
  71 + }
  72 + $item->remain_day = $remain_day > 0 ? $remain_day : 0;
  73 + $item->save();
  74 + }
  75 + }
  76 +}
@@ -16,6 +16,7 @@ class Kernel extends ConsoleKernel @@ -16,6 +16,7 @@ class Kernel extends ConsoleKernel
16 protected function schedule(Schedule $schedule) 16 protected function schedule(Schedule $schedule)
17 { 17 {
18 // $schedule->command('inspire')->hourly(); 18 // $schedule->command('inspire')->hourly();
  19 + $schedule->command('remain_day')->dailyAt('00:30')->withoutOverlapping(1); // 项目剩余服务时长
19 $schedule->command('rank_data')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次 20 $schedule->command('rank_data')->dailyAt('01:00')->withoutOverlapping(1); // 排名数据,每天凌晨执行一次
20 $schedule->command('rank_data_speed')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次 21 $schedule->command('rank_data_speed')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据-测速数据,每周一凌晨执行一次
21 $schedule->command('rank_data_external_links')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次 22 $schedule->command('rank_data_external_links')->weeklyOn(1, '01:00')->withoutOverlapping(1); // 排名数据-外链,每周一凌晨执行一次
@@ -432,4 +432,18 @@ class ProjectController extends BaseController @@ -432,4 +432,18 @@ class ProjectController extends BaseController
432 $list = $domainModel->list(['status'=>0,'project_id'=>['or',$this->param['project_id']]]); 432 $list = $domainModel->list(['status'=>0,'project_id'=>['or',$this->param['project_id']]]);
433 $this->response('success',Code::SUCCESS,$list); 433 $this->response('success',Code::SUCCESS,$list);
434 } 434 }
  435 +
  436 + /**
  437 + * 通过企业名称查询项目是否在服务中, 有项目并且在服务中的返回1, 其他的返回0
  438 + * @author zbj
  439 + * @date 2023/9/4
  440 + */
  441 + public function getProjectInService(){
  442 + $company = $this->param['company'];
  443 + if(!$company){
  444 + $this->response('企业名称必传',Code::SYSTEM_ERROR);
  445 + }
  446 + $project = Project::where('company', $company)->where('remain_day', '>', 0)->first();
  447 + $this->response('success',Code::SUCCESS, ['in_service' => $project ? 1 : 0]);
  448 + }
435 } 449 }
@@ -307,7 +307,7 @@ Route::group([], function () { @@ -307,7 +307,7 @@ Route::group([], function () {
307 Route::any('/domain/exportData', [Aside\Domain\DomainInfoController::class, 'exportData'])->name('admin.domain_exportData');//导出数据 307 Route::any('/domain/exportData', [Aside\Domain\DomainInfoController::class, 'exportData'])->name('admin.domain_exportData');//导出数据
308 Route::any('/notice/project', [Aside\Notice\NoticeController::class, 'project'])->name('admin.notice.project'); 308 Route::any('/notice/project', [Aside\Notice\NoticeController::class, 'project'])->name('admin.notice.project');
309 Route::any('/sendLoginSms', [Aside\LoginController::class, 'sendLoginSms'])->name('admin.sendLoginSms');//发送验证码 309 Route::any('/sendLoginSms', [Aside\LoginController::class, 'sendLoginSms'])->name('admin.sendLoginSms');//发送验证码
310 - 310 + Route::any('/getProjectInService', [Aside\Project\ProjectController::class, 'getProjectInService'])->name('admin.getProjectInService');//获取项目服务状态
311 }); 311 });
312 312
313 313