作者 lyh

修改服務器配置

@@ -183,20 +183,33 @@ class ProjectLogic extends BaseLogic @@ -183,20 +183,33 @@ class ProjectLogic extends BaseLogic
183 * @time :2024/6/25 15:34 183 * @time :2024/6/25 15:34
184 */ 184 */
185 public function setServers($servers_id,$project_id){ 185 public function setServers($servers_id,$project_id){
  186 + //查看當前項目服務器是否有更改
  187 + $projectModel = new Project();
  188 + $projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']);
  189 + if(!empty($projectInfo['serve_id'])){
  190 + if($projectInfo['serve_id'] == $servers_id){
  191 + return $this->success();
  192 + }
  193 + }
186 $serversIpModel = new ServersIp(); 194 $serversIpModel = new ServersIp();
187 - $info = $serversIpModel->read(['id'=>$servers_id]);  
188 - $project_arr = explode(',',$info['project_arr']);  
189 - if(count($project_arr) >= Project::SERVER_NUM){  
190 - $this->fail('请选择其他服务器,当前ip已满'); 195 + $serversIpInfo = $serversIpModel->read(['project_arr'=>['like','%,'.$project_id.',%']]);
  196 + if($serversIpInfo !== false){
  197 + $string = str_replace(','.$project_id.',',',',$serversIpInfo['project_arr']);
  198 + $serversIpModel->edit(['project_arr'=>$string],['id'=>$serversIpInfo['id']]);
191 } 199 }
  200 + $info = $serversIpModel->read(['id'=>$servers_id]);
192 $serversModel = new Servers(); 201 $serversModel = new Servers();
193 $serversInfo = $serversModel->read(['id'=>$info['servers_id']]); 202 $serversInfo = $serversModel->read(['id'=>$info['servers_id']]);
194 if($serversInfo['being_number'] >= $serversInfo['total']){ 203 if($serversInfo['being_number'] >= $serversInfo['total']){
195 $this->fail('请选择其他服务器,当前服务器已满'); 204 $this->fail('请选择其他服务器,当前服务器已满');
196 } 205 }
  206 + $project_arr = explode(',',trim($info['project_arr'],','));
  207 + if(count($project_arr) >= $serversInfo['ip_total']){
  208 + $this->fail('请选择其他服务器,当前ip已满');
  209 + }
197 if(!in_array($project_id,$project_arr)){ 210 if(!in_array($project_id,$project_arr)){
198 array_push($project_id); 211 array_push($project_id);
199 - $project_str = implode(',',$project_arr); 212 + $project_str = ','.implode(',',$project_arr).',';
200 $serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]); 213 $serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]);
201 $serversModel->where(['id'=>$info['servers_id']])->increment('being_number'); 214 $serversModel->where(['id'=>$info['servers_id']])->increment('being_number');
202 } 215 }