作者 李宇航

合并分支 'lyh-server' 到 'master'

gx



查看合并请求 !1746
@@ -125,7 +125,9 @@ class RemainDay extends Command @@ -125,7 +125,9 @@ class RemainDay extends Command
125 continue; 125 continue;
126 } 126 }
127 $diff = time() - strtotime($opInfo['start_date'] ?? $item['uptime']); 127 $diff = time() - strtotime($opInfo['start_date'] ?? $item['uptime']);
128 - $remain_day = $deploy_build['service_duration'] - floor($diff / (60 * 60 * 24)); 128 + $compliance_day = floor($diff / (60 * 60 * 24));
  129 + $remain_day = $deploy_build['service_duration'] - $compliance_day;
  130 +
129 }else{ 131 }else{
130 $compliance_day = ($item['finish_remain_day'] ?? 0); 132 $compliance_day = ($item['finish_remain_day'] ?? 0);
131 $remain_day = $deploy_build['service_duration'] - $compliance_day; 133 $remain_day = $deploy_build['service_duration'] - $compliance_day;
@@ -134,7 +136,8 @@ class RemainDay extends Command @@ -134,7 +136,8 @@ class RemainDay extends Command
134 //普通建站项目 136 //普通建站项目
135 if($item['uptime']){ 137 if($item['uptime']){
136 $diff = time() - strtotime($item['uptime']); 138 $diff = time() - strtotime($item['uptime']);
137 - $remain_day = $deploy_build['service_duration'] - floor($diff / (60 * 60 * 24)); 139 + $compliance_day = floor($diff / (60 * 60 * 24));
  140 + $remain_day = $deploy_build['service_duration'] - $compliance_day;
138 }else{ 141 }else{
139 $remain_day = $deploy_build['service_duration']; 142 $remain_day = $deploy_build['service_duration'];
140 } 143 }
@@ -144,7 +147,7 @@ class RemainDay extends Command @@ -144,7 +147,7 @@ class RemainDay extends Command
144 $remain_day = 0; 147 $remain_day = 0;
145 $extend_type = Project::TYPE_FIVE; 148 $extend_type = Project::TYPE_FIVE;
146 } 149 }
147 - $this->project->edit(['remain_day'=>$remain_day,'extend_type'=>$extend_type],['id'=>$item['id']]); 150 + $this->project->edit(['remain_day'=>$remain_day,'extend_type'=>$extend_type,'finish_remain_day'=>$compliance_day ?? 0],['id'=>$item['id']]);
148 echo 'end->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL; 151 echo 'end->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
149 } 152 }
150 return true; 153 return true;
@@ -493,7 +493,8 @@ class RankDataLogic extends BaseLogic @@ -493,7 +493,8 @@ class RankDataLogic extends BaseLogic
493 $without_extension_project_ids = [658]; //是否达标只统计主词的 493 $without_extension_project_ids = [658]; //是否达标只统计主词的
494 $extension_project_ids = [354]; //扩展词也到达标的 494 $extension_project_ids = [354]; //扩展词也到达标的
495 $compliance_project_ids = [2163,257,823]; //直接达标处理的 495 $compliance_project_ids = [2163,257,823]; //直接达标处理的
496 - $ceaseProjectId = [47, 354, 378, 649, 1226, 1283, 1703, 1893, 2066,2974];//暂停项目id 496 + $ceaseProjectId = [47, 354, 378, 649, 1226, 1283, 1703, 1893, 2066];//暂停的项目
  497 + $uptimeProjectId = [1434,1812,276,2414,2974];//按上线时间统计的项目
497 //一个项目多个api_no 498 //一个项目多个api_no
498 $multiple_api_no_project_ids = [ 499 $multiple_api_no_project_ids = [
499 2104 => [ 500 2104 => [
@@ -568,23 +569,27 @@ class RankDataLogic extends BaseLogic @@ -568,23 +569,27 @@ class RankDataLogic extends BaseLogic
568 //项目表更新 569 //项目表更新
569 if (($model->updated_date != date('Y-m-d') || empty($model_is_compliance)) && !$lang) { 570 if (($model->updated_date != date('Y-m-d') || empty($model_is_compliance)) && !$lang) {
570 $compliance_day = Project::where(['id' => $project_id])->value('finish_remain_day') ?: 0; 571 $compliance_day = Project::where(['id' => $project_id])->value('finish_remain_day') ?: 0;
571 - if(!in_array($project_id,$ceaseProjectId)){ 572 + if(!in_array($project_id,$ceaseProjectId)){//不是暂停的项目
572 if($compliance_day == 0){//达标天数为0并当天达标 记录当前达标时间 573 if($compliance_day == 0){//达标天数为0并当天达标 记录当前达标时间
573 DeployOptimize::where(['project_id'=>$project_id])->update(['first_compliance_time'=>date('Y-m-d')]); 574 DeployOptimize::where(['project_id'=>$project_id])->update(['first_compliance_time'=>date('Y-m-d')]);
574 } 575 }
575 - //多api_no项目 要api_no都分别达标才算  
576 - if(in_array($project_id, array_keys($multiple_api_no_project_ids))){  
577 - $api_nos = array_keys($multiple_api_no_project_ids[$project_id]);  
578 - //今天其他api_no是否都达标了  
579 - $count = RankData::where('project_id', $project_id)->whereIn('api_no', $api_nos)->where('api_no', '<>', $api_no)->where('updated_date', date('Y-m-d'))  
580 - ->where('is_compliance', 1)->count();  
581 - if($count == count($api_nos) - 1){ 576 + if(in_array($project_id,$uptimeProjectId)){//直接按上线时间统计的项目
  577 + Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day + 1]);
  578 + }else{
  579 + //多api_no项目 要api_no都分别达标才算
  580 + if(in_array($project_id, array_keys($multiple_api_no_project_ids))){
  581 + $api_nos = array_keys($multiple_api_no_project_ids[$project_id]);
  582 + //今天其他api_no是否都达标了
  583 + $count = RankData::where('project_id', $project_id)->whereIn('api_no', $api_nos)->where('api_no', '<>', $api_no)->where('updated_date', date('Y-m-d'))
  584 + ->where('is_compliance', 1)->count();
  585 + if($count == count($api_nos) - 1){
  586 + Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day + 1]);
  587 + }
  588 + }else{
582 Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day + 1]); 589 Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day + 1]);
583 } 590 }
584 - }else{  
585 - Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day + 1]); 591 + Log::channel('rank_data')->info('项目' . $project_id . '达标天数+1:' . ($compliance_day + 1));
586 } 592 }
587 - Log::channel('rank_data')->info('项目' . $project_id . '达标天数+1:' . ($compliance_day + 1));  
588 }else{ 593 }else{
589 Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day]); 594 Project::where('id', $project_id)->update(['is_remain_today' => 1, 'finish_remain_day' => $compliance_day]);
590 Log::channel('rank_data')->info('项目' . $project_id . '暂停项目达标天数不加:'. ($compliance_day)); 595 Log::channel('rank_data')->info('项目' . $project_id . '暂停项目达标天数不加:'. ($compliance_day));