ServersController.php
4.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
/**
* @remark :
* @name :ServersController.php
* @author :lyh
* @method :post
* @time :2024/6/24 16:18
*/
namespace App\Http\Controllers\Aside\Devops;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Http\Logic\Aside\Devops\ServersLogic;
use App\Models\Devops\Servers as ServersModel;
use App\Models\Devops\ServersIp;
use App\Models\Domain\DomainInfo;
use App\Models\Project\DeployOptimize;
use App\Models\Project\Project;
class ServersController extends BaseController
{
/**
* @remark :获取服务器列表(不分页)
* @name :serverList
* @author :lyh
* @method :post
* @time :2024/6/24 17:47
*/
public function list(){
if(isset($this->map['server_name']) && !empty($this->map['server_name'])){
$this->map['server_name'] = ['like','%'.$this->map['server_name'].'%'];
}
$this->map['status'] = 0;
$serversModel = new ServersModel();
$lists = $serversModel->list($this->map,'sort');
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :服务器列表
* @name :lists
* @author :lyh
* @method :post
* @time :2024/6/24 16:25
*/
public function lists(){
if(isset($this->map['server_name']) && !empty($this->map['server_name'])){
$this->map['server_name'] = ['like','%'.$this->map['server_name'].'%'];
}
if(isset($this->map['project_name']) && !empty($this->map['project_name'])){
$projectModel = new Project();
$projectInfo = $projectModel->read(['title'=>['like','%'.$this->map['project_name'].'%']],['id','serve_id']);
if($projectInfo !== false){
$serversIpModel = new ServersIp();
$ipInfo = $serversIpModel->read(['id'=>$projectInfo['serve_id']],['servers_id']);
if($ipInfo !== false){
$this->map['id'] = $ipInfo['servers_id'];
}
}
unset($this->map['project_name']);
}
if(isset($this->map['domain']) && !empty($this->map['domain'])){
$domainModel = new DomainInfo();
$domainInfo = $domainModel->read(['domain'=>['like','%'.$this->map['domain'].'%']],['id','project_id']);
if($domainInfo !== false && !empty($domainInfo['project_id'])){
$projectModel = new Project();
$projectInfo = $projectModel->read(['id'=>$domainInfo['project_id']],['serve_id']);
if($projectInfo !== false){
$serversIpModel = new ServersIp();
$ipInfo = $serversIpModel->read(['id'=>$projectInfo['serve_id']],['servers_id']);
if($ipInfo !== false){
$this->map['id'] = $ipInfo['servers_id'];
}
}
}
unset($this->map['domain']);
}
$serversModel = new ServersModel();
$data = $serversModel->lists($this->map,$this->page,$this->row,$this->order = 'sort');
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :获取详情
* @name :Info
* @author :lyh
* @method :post
* @time :2024/6/24 17:05
*/
public function info(ServersLogic $serversLogic){
$this->request->validate([
'id'=>'required'
],[
'id.required' => '主键不能为空'
]);
$data = $serversLogic->infoServers();
$this->response('success',Code::SUCCESS,$data);
}
/**
* @remark :保存数据
* @name :save
* @author :lyh
* @method :post
* @time :2024/6/24 16:25
*/
public function save(ServersLogic $serversLogic){
$this->request->validate([
'server_name'=>'required',
'service_type'=>'required',
'account'=>'required',
'password'=>'required',
'port'=>'required',
'ip_total'=>'required',
'domain'=>'required'
],[
'server_name.required' => '服务器名称server_name不能为空',
'service_type.required' => '服务器类型不能为空',
'account.required' => '账号不能为空',
'password.required' => '密码不能为空',
'port.required' => '端口不能为空',
'ip_total.required' => 'ip使用數量不能为空',
'domain.required' => '初始域名不能为空',
]);
$data = $serversLogic->saveServers();
$this->response('success',Code::SUCCESS,$data);
}
}