|
...
|
...
|
@@ -183,20 +183,33 @@ class ProjectLogic extends BaseLogic |
|
|
|
* @time :2024/6/25 15:34
|
|
|
|
*/
|
|
|
|
public function setServers($servers_id,$project_id){
|
|
|
|
//查看當前項目服務器是否有更改
|
|
|
|
$projectModel = new Project();
|
|
|
|
$projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']);
|
|
|
|
if(!empty($projectInfo['serve_id'])){
|
|
|
|
if($projectInfo['serve_id'] == $servers_id){
|
|
|
|
return $this->success();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$serversIpModel = new ServersIp();
|
|
|
|
$info = $serversIpModel->read(['id'=>$servers_id]);
|
|
|
|
$project_arr = explode(',',$info['project_arr']);
|
|
|
|
if(count($project_arr) >= Project::SERVER_NUM){
|
|
|
|
$this->fail('请选择其他服务器,当前ip已满');
|
|
|
|
$serversIpInfo = $serversIpModel->read(['project_arr'=>['like','%,'.$project_id.',%']]);
|
|
|
|
if($serversIpInfo !== false){
|
|
|
|
$string = str_replace(','.$project_id.',',',',$serversIpInfo['project_arr']);
|
|
|
|
$serversIpModel->edit(['project_arr'=>$string],['id'=>$serversIpInfo['id']]);
|
|
|
|
}
|
|
|
|
$info = $serversIpModel->read(['id'=>$servers_id]);
|
|
|
|
$serversModel = new Servers();
|
|
|
|
$serversInfo = $serversModel->read(['id'=>$info['servers_id']]);
|
|
|
|
if($serversInfo['being_number'] >= $serversInfo['total']){
|
|
|
|
$this->fail('请选择其他服务器,当前服务器已满');
|
|
|
|
}
|
|
|
|
$project_arr = explode(',',trim($info['project_arr'],','));
|
|
|
|
if(count($project_arr) >= $serversInfo['ip_total']){
|
|
|
|
$this->fail('请选择其他服务器,当前ip已满');
|
|
|
|
}
|
|
|
|
if(!in_array($project_id,$project_arr)){
|
|
|
|
array_push($project_id);
|
|
|
|
$project_str = implode(',',$project_arr);
|
|
|
|
$project_str = ','.implode(',',$project_arr).',';
|
|
|
|
$serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]);
|
|
|
|
$serversModel->where(['id'=>$info['servers_id']])->increment('being_number');
|
|
|
|
}
|
...
|
...
|
|