作者 李宇航

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

上传servers



查看合并请求 !637
... ... @@ -148,7 +148,7 @@ class ProjectLogic extends BaseLogic
//初始化项目
$this->createProjectData($this->param);
//双向绑定服务器,需放到保存项目的上方
// $this->setServers($this->param['serve_id'],$this->param['id']);
$this->setServers($this->param['serve_id'],$this->param['id']);
//保存项目信息
$this->saveProject($this->param);
//保存建站部署信息
... ... @@ -180,37 +180,25 @@ class ProjectLogic extends BaseLogic
//查看當前項目服務器是否有更改
$projectModel = new Project();
$projectInfo = $projectModel->read(['id'=>$project_id],['serve_id']);
$serversIpModel = new ServersIp();
$serversModel = new Servers();
if(!empty($projectInfo['serve_id'])){
if($projectInfo['serve_id'] == $servers_id){
return $this->success();
}
}
$serversIpModel = new ServersIp();
$serversIpInfo = $serversIpModel->read(['project_arr'=>['like','%,'.$project_id.',%']]);
$serversModel = new Servers();
if($serversIpInfo !== false){
$string = str_replace(','.$project_id.',',',',$serversIpInfo['project_arr']);
if($string == ','){
$string = '';
$oldServerInfo = $serversModel->read(['id'=>$projectInfo['serve_id']]);
if($oldServerInfo !== false){
$serversIpModel->where(['id'=>$projectInfo['serve_id']])->decrement('total',1);
$serversModel->where(['id'=>$oldServerInfo['servers_id']])->decrement('being_number',1);
}
$serversIpModel->edit(['project_arr'=>$string],['id'=>$serversIpInfo['id']]);
$serversModel->where(['id'=>$serversIpInfo['servers_id']])->decrement('being_number',1);
}
$info = $serversIpModel->read(['id'=>$servers_id]);
$serversInfo = $serversModel->read(['id'=>$info['servers_id']]);
$project_arr = [];
if(!empty(trim($info['project_arr'],','))){
$project_arr = explode(',',trim($info['project_arr'],','));
}
if(count($project_arr) >= $serversInfo['ip_total']){
$serversIpInfo = $serversIpModel->read(['id'=>$servers_id]);
$serversInfo = $serversModel->read(['id'=>$serversIpInfo['servers_id']]);
if($serversIpInfo['total'] >= $serversInfo['ip_total']){
$this->fail('请选择其他服务器,当前ip已满');
}
if(!in_array($project_id,$project_arr) || empty($project_arr)){
array_push($project_arr,$project_id);
$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',1);
}
$serversModel->where(['id'=>$servers_id])->increment('total',1);
$serversModel->where(['id'=>$serversInfo['id']])->increment('being_number',1);
return $this->success();
}
... ...