作者 李宇航

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

上传servers



查看合并请求 !637
@@ -148,7 +148,7 @@ class ProjectLogic extends BaseLogic @@ -148,7 +148,7 @@ class ProjectLogic extends BaseLogic
148 //初始化项目 148 //初始化项目
149 $this->createProjectData($this->param); 149 $this->createProjectData($this->param);
150 //双向绑定服务器,需放到保存项目的上方 150 //双向绑定服务器,需放到保存项目的上方
151 -// $this->setServers($this->param['serve_id'],$this->param['id']); 151 + $this->setServers($this->param['serve_id'],$this->param['id']);
152 //保存项目信息 152 //保存项目信息
153 $this->saveProject($this->param); 153 $this->saveProject($this->param);
154 //保存建站部署信息 154 //保存建站部署信息
@@ -180,37 +180,25 @@ class ProjectLogic extends BaseLogic @@ -180,37 +180,25 @@ class ProjectLogic extends BaseLogic
180 //查看當前項目服務器是否有更改 180 //查看當前項目服務器是否有更改
181 $projectModel = new Project(); 181 $projectModel = new Project();
182 $projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']); 182 $projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']);
  183 + $serversIpModel = new ServersIp();
  184 + $serversModel = new Servers();
183 if(!empty($projectInfo['serve_id'])){ 185 if(!empty($projectInfo['serve_id'])){
184 if($projectInfo['serve_id'] == $servers_id){ 186 if($projectInfo['serve_id'] == $servers_id){
185 return $this->success(); 187 return $this->success();
186 } 188 }
187 - }  
188 - $serversIpModel = new ServersIp();  
189 - $serversIpInfo = $serversIpModel->read(['project_arr'=>['like','%,'.$project_id.',%']]);  
190 - $serversModel = new Servers();  
191 - if($serversIpInfo !== false){  
192 - $string = str_replace(','.$project_id.',',',',$serversIpInfo['project_arr']);  
193 - if($string == ','){  
194 - $string = ''; 189 + $oldServerInfo = $serversModel->read(['id'=>$projectInfo['serve_id']]);
  190 + if($oldServerInfo !== false){
  191 + $serversIpModel->where(['id'=>$projectInfo['serve_id']])->decrement('total',1);
  192 + $serversModel->where(['id'=>$oldServerInfo['servers_id']])->decrement('being_number',1);
195 } 193 }
196 - $serversIpModel->edit(['project_arr'=>$string],['id'=>$serversIpInfo['id']]);  
197 - $serversModel->where(['id'=>$serversIpInfo['servers_id']])->decrement('being_number',1);  
198 - }  
199 - $info = $serversIpModel->read(['id'=>$servers_id]);  
200 - $serversInfo = $serversModel->read(['id'=>$info['servers_id']]);  
201 - $project_arr = [];  
202 - if(!empty(trim($info['project_arr'],','))){  
203 - $project_arr = explode(',',trim($info['project_arr'],','));  
204 } 194 }
205 - if(count($project_arr) >= $serversInfo['ip_total']){ 195 + $serversIpInfo = $serversIpModel->read(['id'=>$servers_id]);
  196 + $serversInfo = $serversModel->read(['id'=>$serversIpInfo['servers_id']]);
  197 + if($serversIpInfo['total'] >= $serversInfo['ip_total']){
206 $this->fail('请选择其他服务器,当前ip已满'); 198 $this->fail('请选择其他服务器,当前ip已满');
207 } 199 }
208 - if(!in_array($project_id,$project_arr) || empty($project_arr)){  
209 - array_push($project_arr,$project_id);  
210 - $project_str = ','.implode(',',$project_arr).',';  
211 - $serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]);  
212 - $serversModel->where(['id'=>$info['servers_id']])->increment('being_number',1);  
213 - } 200 + $serversModel->where(['id'=>$servers_id])->increment('total',1);
  201 + $serversModel->where(['id'=>$serversInfo['id']])->increment('being_number',1);
214 return $this->success(); 202 return $this->success();
215 } 203 }
216 204