作者 lyh

gx

@@ -30,6 +30,11 @@ class ServersController extends BaseController @@ -30,6 +30,11 @@ class ServersController extends BaseController
30 } 30 }
31 $serversModel = new ServersModel(); 31 $serversModel = new ServersModel();
32 $lists = $serversModel->list($this->map); 32 $lists = $serversModel->list($this->map);
  33 + foreach ($lists as $k => $v){
  34 + if($v['being_number'] >= $v['total']){
  35 + unset($lists[$k]);
  36 + }
  37 + }
33 $this->response('success',Code::SUCCESS,$lists); 38 $this->response('success',Code::SUCCESS,$lists);
34 } 39 }
35 40
@@ -13,6 +13,7 @@ use App\Enums\Common\Code; @@ -13,6 +13,7 @@ use App\Enums\Common\Code;
13 use App\Http\Controllers\Aside\BaseController; 13 use App\Http\Controllers\Aside\BaseController;
14 use App\Http\Logic\Aside\Devops\ServersIpLogic; 14 use App\Http\Logic\Aside\Devops\ServersIpLogic;
15 use App\Models\Devops\ServersIp as ServersIpModel; 15 use App\Models\Devops\ServersIp as ServersIpModel;
  16 +use App\Models\Project\Project;
16 17
17 class ServersIpController extends BaseController 18 class ServersIpController extends BaseController
18 { 19 {
@@ -31,6 +32,7 @@ class ServersIpController extends BaseController @@ -31,6 +32,7 @@ class ServersIpController extends BaseController
31 'servers_id.required' => '服务器servers_id不能为空' 32 'servers_id.required' => '服务器servers_id不能为空'
32 ]); 33 ]);
33 $serversIpModel = new ServersIpModel(); 34 $serversIpModel = new ServersIpModel();
  35 + $this->map['total'] = ['<',Project::SERVER_NUM];
34 $data = $serversIpModel->list($this->map); 36 $data = $serversIpModel->list($this->map);
35 $this->response('success',Code::SUCCESS,$data); 37 $this->response('success',Code::SUCCESS,$data);
36 } 38 }
@@ -19,6 +19,7 @@ use App\Models\Channel\Zone; @@ -19,6 +19,7 @@ use App\Models\Channel\Zone;
19 use App\Models\Com\NoticeLog; 19 use App\Models\Com\NoticeLog;
20 use App\Models\Com\UpdateLog; 20 use App\Models\Com\UpdateLog;
21 use App\Models\Devops\ServerConfig; 21 use App\Models\Devops\ServerConfig;
  22 +use App\Models\Devops\Servers;
22 use App\Models\Devops\ServersIp; 23 use App\Models\Devops\ServersIp;
23 use App\Models\Domain\DomainInfo; 24 use App\Models\Domain\DomainInfo;
24 use App\Models\Inquiry\InquiryIP; 25 use App\Models\Inquiry\InquiryIP;
@@ -190,9 +191,21 @@ class ProjectLogic extends BaseLogic @@ -190,9 +191,21 @@ class ProjectLogic extends BaseLogic
190 $serversIpModel = new ServersIp(); 191 $serversIpModel = new ServersIp();
191 $info = $serversIpModel->read(['id'=>$servers_id]); 192 $info = $serversIpModel->read(['id'=>$servers_id]);
192 $project_arr = explode(',',$info['project_arr']); 193 $project_arr = explode(',',$info['project_arr']);
  194 + if(count($project_arr) >= Project::SERVER_NUM){
  195 + $this->fail('请选择其他服务器,当前ip已满');
  196 + }
  197 + $serversModel = new Servers();
  198 + $serversInfo = $serversModel->read(['id'=>$info['servers_id']]);
  199 + if($serversInfo['being_number'] >= $serversInfo['total']){
  200 + $this->fail('请选择其他服务器,当前服务器已满');
  201 + }
193 if(!in_array($project_id,$project_arr)){ 202 if(!in_array($project_id,$project_arr)){
194 array_push($project_id); 203 array_push($project_id);
  204 + $project_str = implode(',',$project_arr);
  205 + $serversIpModel->edit(['project_arr'=>$project_str,'total'=>count($project_arr)],['id'=>$servers_id]);
  206 + $serversModel->where(['id'=>$info['servers_id']])->increment('being_number');
195 } 207 }
  208 + return $this->success();
196 } 209 }
197 210
198 /** 211 /**
@@ -18,6 +18,7 @@ class Project extends Base @@ -18,6 +18,7 @@ class Project extends Base
18 18
19 const DATABASE_NAME_FIX = 'gl_data_'; 19 const DATABASE_NAME_FIX = 'gl_data_';
20 20
  21 + const SERVER_NUM = 5;//服务器使用数量
21 const CUSTOMIZED_ONE = 1;//定制项目 22 const CUSTOMIZED_ONE = 1;//定制项目
22 const DEMO_PROJECT_ID = 1; 23 const DEMO_PROJECT_ID = 1;
23 24