正在显示
1 个修改的文件
包含
18 行增加
和
5 行删除
| @@ -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 | } |
-
请 注册 或 登录 后发表评论