作者 李宇航

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

gx



查看合并请求 !1668
@@ -70,39 +70,11 @@ class RemainDay extends Command @@ -70,39 +70,11 @@ class RemainDay extends Command
70 */ 70 */
71 public function handle() 71 public function handle()
72 { 72 {
73 - $this->saveSeoRemainDay();//单独白帽系统剩余服务时常  
74 $this->saveRemainDay(); 73 $this->saveRemainDay();
75 return true; 74 return true;
76 } 75 }
77 76
78 - /**  
79 - * @remark :白帽系统剩余服务时常  
80 - * @name :getSeoList  
81 - * @author :lyh  
82 - * @method :post  
83 - * @time :2025/4/1 16:44  
84 - */  
85 - public function saveSeoRemainDay(){  
86 - $projectArr = $this->deployBuild->selectField(['seo_plan'=>1,'project_id'=>['not in',$this->ceaseProjectId]],'project_id');  
87 - $data = $this->project->list(['id'=>['in',$projectArr]],'id',['id','uptime','finish_remain_day']);  
88 - foreach ($data as $item){  
89 - $deploy_build = $this->deployBuild->read(['project_id'=>$item['id']],['seo_service_duration']);  
90 - if($item['uptime']){  
91 - $diff = time() - strtotime($item['uptime']);  
92 - $item['finish_remain_day'] = floor($diff / (60 * 60 * 24));  
93 - $seo_remain_day = $deploy_build['seo_service_duration'] - floor($diff / (60 * 60 * 24));  
94 - }else{  
95 - $seo_remain_day = $deploy_build['seo_service_duration'];  
96 - }  
97 - $extend_type = 0;  
98 - if($seo_remain_day < 0){  
99 - $seo_remain_day = 0;  
100 - $extend_type = Project::TYPE_FIVE;  
101 - }  
102 - $this->project->edit(['seo_service_duration'=>$seo_remain_day,'extend_type'=>$extend_type],['id'=>$item['id']]);  
103 - }  
104 - return $projectArr;  
105 - } 77 +
106 78
107 /** 79 /**
108 * @remark :普通项目剩余服务时常 80 * @remark :普通项目剩余服务时常
@@ -114,7 +86,7 @@ class RemainDay extends Command @@ -114,7 +86,7 @@ class RemainDay extends Command
114 public function saveRemainDay(){ 86 public function saveRemainDay(){
115 $list = $this->project->list(['type'=>['in',[Project::TYPE_TWO,Project::TYPE_THREE,Project::TYPE_FOUR]]],'id',['id','type','uptime','remain_day','is_remain_today','pause_days','finish_remain_day']); 87 $list = $this->project->list(['type'=>['in',[Project::TYPE_TWO,Project::TYPE_THREE,Project::TYPE_FOUR]]],'id',['id','type','uptime','remain_day','is_remain_today','pause_days','finish_remain_day']);
116 foreach ($list as $item){ 88 foreach ($list as $item){
117 - $deploy_build = $this->deployBuild->read(['project_id'=>$item['id']],['service_duration']); 89 + $deploy_build = $this->deployBuild->read(['project_id'=>$item['id']],['service_duration','seo_service_duration','plan','seo_plan']);
118 echo 'start->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL; 90 echo 'start->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
119 if(in_array($item['id'],$this->ceaseProjectId)){//暂停的项目 91 if(in_array($item['id'],$this->ceaseProjectId)){//暂停的项目
120 if(($item['type'] == Project::TYPE_TWO) && ($item['is_remain_today'] == 1)){ 92 if(($item['type'] == Project::TYPE_TWO) && ($item['is_remain_today'] == 1)){
@@ -123,10 +95,28 @@ class RemainDay extends Command @@ -123,10 +95,28 @@ class RemainDay extends Command
123 if($item['type'] != Project::TYPE_THREE){ 95 if($item['type'] != Project::TYPE_THREE){
124 $pause_days = $item['pause_days'] + 1; 96 $pause_days = $item['pause_days'] + 1;
125 } 97 }
126 - $this->project->edit(['pause_days'=>$pause_days],['id'=>$item['id']]); 98 +// $this->project->edit(['pause_days'=>$pause_days],['id'=>$item['id']]);
127 continue; 99 continue;
128 } 100 }
129 - //未暂停的项目 101 + //白帽版本的系统
  102 + if($deploy_build['seo_plan'] == 1){
  103 + if($item['uptime']){
  104 + $diff = time() - strtotime($item['uptime']);
  105 + $seo_remain_day = $deploy_build['seo_service_duration'] - floor($diff / (60 * 60 * 24));
  106 + }else{
  107 + $seo_remain_day = $deploy_build['seo_service_duration'];
  108 + }
  109 + if($seo_remain_day < 0){
  110 + $seo_remain_day = 0;
  111 + }
  112 + if($deploy_build['plan'] == 0 && $seo_remain_day == 0 && $deploy_build['seo_service_duration'] != 0){//只有白帽版本的项目且剩余服务时常未0,放入未续费中
  113 +// $this->project->edit(['seo_remain_day'=>$seo_remain_day,'extend_type'=>Project::TYPE_FIVE],['id'=>$item['id']]);
  114 + continue;
  115 + }
  116 + //同时包括白帽版本+默认版本的项目
  117 +// $this->project->edit(['seo_remain_day'=>$seo_remain_day],['id'=>$item['id']]);
  118 + }
  119 + //默认版本计算剩余服务时常
130 if($item['type'] == Project::TYPE_TWO || $item['type'] == Project::TYPE_FOUR){ 120 if($item['type'] == Project::TYPE_TWO || $item['type'] == Project::TYPE_FOUR){
131 if(in_array($item['id'],$this->projectId)){//已开始优化的时间结算 121 if(in_array($item['id'],$this->projectId)){//已开始优化的时间结算
132 $optimizeModel = new DeployOptimize(); 122 $optimizeModel = new DeployOptimize();
@@ -144,18 +134,17 @@ class RemainDay extends Command @@ -144,18 +134,17 @@ class RemainDay extends Command
144 //普通建站项目 134 //普通建站项目
145 if($item['uptime']){ 135 if($item['uptime']){
146 $diff = time() - strtotime($item['uptime']); 136 $diff = time() - strtotime($item['uptime']);
147 - $item['finish_remain_day'] = floor($diff / (60 * 60 * 24));  
148 $remain_day = $deploy_build['service_duration'] - floor($diff / (60 * 60 * 24)); 137 $remain_day = $deploy_build['service_duration'] - floor($diff / (60 * 60 * 24));
149 }else{ 138 }else{
150 $remain_day = $deploy_build['service_duration']; 139 $remain_day = $deploy_build['service_duration'];
151 } 140 }
152 } 141 }
153 $extend_type = 0; 142 $extend_type = 0;
154 - if($remain_day < 0){ 143 + if($remain_day < 0 && $deploy_build['service_duration'] != 0){
155 $remain_day = 0; 144 $remain_day = 0;
156 $extend_type = Project::TYPE_FIVE; 145 $extend_type = Project::TYPE_FIVE;
157 } 146 }
158 - $this->project->edit(['remain_day'=>$remain_day,'extend_type'=>$extend_type],['id'=>$item['id']]); 147 +// $this->project->edit(['remain_day'=>$remain_day,'extend_type'=>$extend_type],['id'=>$item['id']]);
159 echo 'end->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL; 148 echo 'end->项目id:' . $item['id'] . '执行时间:'. date('Y-m-d H:i:s') . PHP_EOL;
160 } 149 }
161 return true; 150 return true;
@@ -146,13 +146,18 @@ class SyncProject extends Command @@ -146,13 +146,18 @@ class SyncProject extends Command
146 'channel' => json_encode(Channel::getProjectChannel($param['company_id'], $param['username_sales'])), 146 'channel' => json_encode(Channel::getProjectChannel($param['company_id'], $param['username_sales'])),
147 'requirement' => $param['remark'], 147 'requirement' => $param['remark'],
148 'cooperate_date' => date('Y-m-d', $param['create_time']), 148 'cooperate_date' => date('Y-m-d', $param['create_time']),
149 - 'service_duration' => $param['years'],  
150 - 'plan' => $this->versionData($param['plan_marketing']),  
151 // 'api_no' => $param['id'], //改手动填 149 // 'api_no' => $param['id'], //改手动填
152 'amount' => $param['plan_price'], 150 'amount' => $param['plan_price'],
153 'contract' => json_encode($param['files']), 151 'contract' => json_encode($param['files']),
154 'bill' => json_encode($param['images']), 152 'bill' => json_encode($param['images']),
155 ]; 153 ];
  154 + if($param['plan_marketing'] == '白帽SEO方案'){
  155 + $data['seo_service_duration'] = $param['years'] ?? 0;
  156 + $data['seo_plan'] = 1;
  157 + }else{
  158 + $data['service_duration'] = $param['years'] ?? 0;
  159 + $data['plan'] = $this->versionData($param['plan_marketing']);
  160 + }
156 $renewModel = new ProjectRenew(); 161 $renewModel = new ProjectRenew();
157 $rs = $renewModel->add($data); 162 $rs = $renewModel->add($data);
158 if($rs === false){ 163 if($rs === false){
@@ -219,7 +224,6 @@ class SyncProject extends Command @@ -219,7 +224,6 @@ class SyncProject extends Command
219 'is_upgrade'=>$is_update, 224 'is_upgrade'=>$is_update,
220 ], 225 ],
221 'deploy_build' => [ 226 'deploy_build' => [
222 - 'service_duration' => $param['years'] ?? 0,  
223 'login_mobile'=>$param['principal_mobile'] 227 'login_mobile'=>$param['principal_mobile']
224 ], 228 ],
225 'deploy_optimize' => [ 229 'deploy_optimize' => [
@@ -233,8 +237,10 @@ class SyncProject extends Command @@ -233,8 +237,10 @@ class SyncProject extends Command
233 ], 237 ],
234 ]; 238 ];
235 if($param['plan_marketing'] == '白帽SEO方案'){ 239 if($param['plan_marketing'] == '白帽SEO方案'){
  240 + $data['deploy_build']['seo_service_duration'] = $param['years'] ?? 0;
236 $data['deploy_build']['seo_plan'] = $this->versionSeoData($param['plan_marketing']); 241 $data['deploy_build']['seo_plan'] = $this->versionSeoData($param['plan_marketing']);
237 }else{ 242 }else{
  243 + $data['deploy_build']['service_duration'] = $param['years'] ?? 0;
238 $data['deploy_build']['plan'] = $this->versionData($param['plan_marketing']); 244 $data['deploy_build']['plan'] = $this->versionData($param['plan_marketing']);
239 } 245 }
240 DB::beginTransaction(); 246 DB::beginTransaction();
@@ -37,7 +37,8 @@ class RenewLogic extends BaseLogic @@ -37,7 +37,8 @@ class RenewLogic extends BaseLogic
37 if(!empty($lists['list'])){ 37 if(!empty($lists['list'])){
38 $projectModel = new Project(); 38 $projectModel = new Project();
39 foreach ($lists['list'] as $k => $v){ 39 foreach ($lists['list'] as $k => $v){
40 - $v['plan'] = Project::planMap()[$v['plan']]; 40 + $v['plan'] = Project::planMap()[$v['plan']] ?? 0;
  41 + $v['seo_plan'] = Project::seoMap()[$v['seo_plan']] ?? 0;
41 $v['project_name'] = $projectModel->getProjectName($v['project_id']); 42 $v['project_name'] = $projectModel->getProjectName($v['project_id']);
42 $lists['list'][$k] = $v; 43 $lists['list'][$k] = $v;
43 } 44 }