作者 李美松

更新代码

@@ -73,6 +73,7 @@ class ServerInformationController extends BaseController @@ -73,6 +73,7 @@ class ServerInformationController extends BaseController
73 */ 73 */
74 public function edit(ServerInformationRequest $serverInformationRequest, ServerInformationLogic $serverInformationLogic) 74 public function edit(ServerInformationRequest $serverInformationRequest, ServerInformationLogic $serverInformationLogic)
75 { 75 {
  76 +
76 $serverInformationRequest->validate([ 77 $serverInformationRequest->validate([
77 'id' => 'required|integer', 78 'id' => 'required|integer',
78 ], [ 79 ], [
@@ -39,12 +39,11 @@ class ServerInformationLogic extends BaseLogic @@ -39,12 +39,11 @@ class ServerInformationLogic extends BaseLogic
39 { 39 {
40 $request = $this->param ?? []; 40 $request = $this->param ?? [];
41 $service = new ServerInformation(); 41 $service = new ServerInformation();
42 - $this->extracted($request, $service); 42 + $this->extracted($request, $service, $service->FieldsArray());
43 if ($this->checkIp($request['ip'])) { 43 if ($this->checkIp($request['ip'])) {
44 return $this->fail('服务器信息添加失败,ip已存在'); 44 return $this->fail('服务器信息添加失败,ip已存在');
45 } 45 }
46 DB::beginTransaction(); 46 DB::beginTransaction();
47 -  
48 if ($service->save()) { 47 if ($service->save()) {
49 $original = $service->getOriginal(); 48 $original = $service->getOriginal();
50 $original['type'] = $request['type']; 49 $original['type'] = $request['type'];
@@ -166,18 +165,18 @@ class ServerInformationLogic extends BaseLogic @@ -166,18 +165,18 @@ class ServerInformationLogic extends BaseLogic
166 } 165 }
167 166
168 /** 167 /**
  168 + * 提取数据
169 * @param array $request 169 * @param array $request
170 - * @param $service 170 + * @param $service
  171 + * @param array $original
171 * @return void 172 * @return void
172 */ 173 */
173 - public function extracted(array $request, $service, array $original = []) 174 + public function extracted(array $request, $service, array $original)
174 { 175 {
175 - $service->type = trim($request['type']) ?? $original['type']; // 服务器类型  
176 - $service->ip = trim($request['ip']) ?? $original['ip']; // 服务器ip  
177 - $service->title = trim($request['title']) ?? $original['title']; // 服务器标题  
178 - $service->belong_to = trim($request['belong_to']) ?? $original['belong_to']; // 服务器归属  
179 - $service->sshpass = trim($request['sshpass']) ?? $original['sshpass']; // ssh密码  
180 - $service->ports = trim($request['ports']) ?? $original['ports']; // ssh端口 176 + $request = array_intersect_key($request, $original);
  177 + foreach ($request as $key => $value) {
  178 + $service->$key = trim($value) ?? $original[$key];
  179 + }
181 } 180 }
182 181
183 /** 182 /**
@@ -10,7 +10,6 @@ use App\Http\Logic\Aside\BaseLogic; @@ -10,7 +10,6 @@ use App\Http\Logic\Aside\BaseLogic;
10 use App\Http\Logic\Aside\Devops\ServerInformationLogic; 10 use App\Http\Logic\Aside\Devops\ServerInformationLogic;
11 use App\Models\Aside\Domain\DomainInfo; 11 use App\Models\Aside\Domain\DomainInfo;
12 use App\Models\Aside\Domain\DomainInfoLog; 12 use App\Models\Aside\Domain\DomainInfoLog;
13 -use App\Models\Devops\ServerInformation;  
14 use Illuminate\Database\Eloquent\Builder; 13 use Illuminate\Database\Eloquent\Builder;
15 use Illuminate\Database\Eloquent\Collection; 14 use Illuminate\Database\Eloquent\Collection;
16 use Illuminate\Database\Eloquent\Model; 15 use Illuminate\Database\Eloquent\Model;
@@ -27,8 +26,6 @@ class DomainInfoLogic extends BaseLogic @@ -27,8 +26,6 @@ class DomainInfoLogic extends BaseLogic
27 { 26 {
28 parent::__construct(); 27 parent::__construct();
29 28
30 - $this->model = new ServerInformation();  
31 -  
32 $this->param = $this->requestAll; 29 $this->param = $this->requestAll;
33 30
34 } 31 }
@@ -46,7 +43,7 @@ class DomainInfoLogic extends BaseLogic @@ -46,7 +43,7 @@ class DomainInfoLogic extends BaseLogic
46 return $this->fail('域名已存在!'); 43 return $this->fail('域名已存在!');
47 } 44 }
48 $domain = new DomainInfo(); 45 $domain = new DomainInfo();
49 - $this->extracted($request, $domain); 46 + $this->extracted($request, $domain, $domain->FieldsArray());
50 DB::beginTransaction(); 47 DB::beginTransaction();
51 if ($domain->save()) { 48 if ($domain->save()) {
52 $original = $domain->getOriginal(); 49 $original = $domain->getOriginal();
@@ -77,9 +74,11 @@ class DomainInfoLogic extends BaseLogic @@ -77,9 +74,11 @@ class DomainInfoLogic extends BaseLogic
77 $request = $this->param; 74 $request = $this->param;
78 $this->extracted($request, $domain, $original); 75 $this->extracted($request, $domain, $original);
79 // 检查ip是否存在 76 // 检查ip是否存在
80 - if ($domain->domain != $request['domain']) {  
81 - if ($this->checkDomain($request['domain'])) {  
82 - $this->fail('域名信息修改失败,域名已存在', Code::USER_ERROR); 77 + if(array_key_exists('domain', $request)){
  78 + if ($domain->domain != $request['domain']) {
  79 + if ($this->checkDomain($request['domain'])) {
  80 + $this->fail('域名信息修改失败,域名已存在', Code::USER_ERROR);
  81 + }
83 } 82 }
84 } 83 }
85 DB::beginTransaction(); 84 DB::beginTransaction();
@@ -179,18 +178,13 @@ class DomainInfoLogic extends BaseLogic @@ -179,18 +178,13 @@ class DomainInfoLogic extends BaseLogic
179 * @param $domain 178 * @param $domain
180 * @param array $original 179 * @param array $original
181 * @return void 180 * @return void
182 - * @throws AsideGlobalException  
183 - * @throws BsideGlobalException  
184 */ 181 */
185 - public function extracted(array $request, $domain, array $original = []) 182 + public function extracted(array $request, $domain, array $original)
186 { 183 {
187 - $domain->domain = trim($request['domain']) ?? $original['domain'];  
188 - $domain->belong_to = trim($request['belong_to']) ?? $original['belong_to']; // 域名归属 1 - 公司 2 - 客户  
189 - $domain->status = trim($request['status']) ?? $original['status']; // 域名状态 0 - 正常 1 - 关闭  
190 - $domain->domain_start_time = trim($request['domain_start_time']) ?? $original['domain_start_time']; // 域名开始时间  
191 - $domain->domain_end_time = trim($request['domain_end_time']) ?? $original['domain_end_time'];  
192 - $domain->certificate_start_time = trim($request['certificate_start_time']) ?? $original['certificate_start_time']; // 证书开始时间  
193 - $domain->certificate_end_time = trim($request['certificate_end_time']) ?? $original['certificate_end_time']; // 证书结束时间 184 + $request = array_intersect_key($request, $original);
  185 + foreach ($request as $key => $value) {
  186 + $domain->$key = trim($value) ?? $original[$key];
  187 + }
194 } 188 }
195 189
196 /** 190 /**
@@ -410,22 +410,22 @@ class Logic @@ -410,22 +410,22 @@ class Logic
410 public function log($log, int $action = ServerInformationLog::ACTION_ADD, array $original = [], array $revised = [], string $remarks = ''): bool 410 public function log($log, int $action = ServerInformationLog::ACTION_ADD, array $original = [], array $revised = [], string $remarks = ''): bool
411 { 411 {
412 // $action 1:添加 2:修改 3:删除 4:恢复 412 // $action 1:添加 2:修改 3:删除 4:恢复
413 - $actionArr = $log->actionArr();  
414 - $actionStr = $actionArr[$action];  
415 - $ip = request()->getClientIp();  
416 - $url = request()->getRequestUri();  
417 - $method = request()->getMethod();  
418 - $userId = $this->uid ?? 0;  
419 - $log->user_id = $userId;  
420 - $log->action = $actionStr; 413 + $actionArr = $log->actionArr();
  414 + $actionStr = $actionArr[$action];
  415 + $ip = request()->getClientIp();
  416 + $url = request()->getRequestUri();
  417 + $method = request()->getMethod();
  418 + $userId = $this->uid ?? 0;
  419 + $log->user_id = $userId;
  420 + $log->action = $actionStr;
421 $log->original = json_encode($original); 421 $log->original = json_encode($original);
422 - $log->revised = json_encode($revised);  
423 - $log->ip = $ip;  
424 - $log->url = $url;  
425 - $log->method = $method;  
426 - $log->remarks = $remarks; 422 + $log->revised = json_encode($revised);
  423 + $log->ip = $ip;
  424 + $log->url = $url;
  425 + $log->method = $method;
  426 + $log->remarks = $remarks;
427 DB::beginTransaction(); 427 DB::beginTransaction();
428 - if($log->save()){ 428 + if ($log->save()) {
429 DB::commit(); 429 DB::commit();
430 return true; 430 return true;
431 } 431 }
@@ -25,20 +25,27 @@ class ServerInformationRequest extends FormRequest @@ -25,20 +25,27 @@ class ServerInformationRequest extends FormRequest
25 */ 25 */
26 public function rules() 26 public function rules()
27 { 27 {
  28 + $required = 'required';
  29 + // 编辑时不需要验证必填
  30 + if ($this->getRequestUri() != '/a/devops/server/add') {
  31 + $required = '';
  32 + }
28 return [ 33 return [
29 - 'type' => [ 'required', Rule::in( array_keys( ( new ServerInformation )->ServiceArray() ) ) ],  
30 - 'ip' => 'required|ip',  
31 - 'title' => 'required|max:200',  
32 - 'belong_to' => 'required|integer|in:1,2', // 1:公司 2:客户  
33 - 'sshpass' => 'required|max:100',  
34 - 'ports' => 'required|integer|min:1|max:65535', 34 + 'type' => [
  35 + $required, Rule::in(array_keys((new ServerInformation)->ServiceArray()))
  36 + ],
  37 + 'ip' => $required . '|ip',
  38 + 'title' => $required . '|max:200',
  39 + 'belong_to' => $required . '|integer|in:1,2', // 1:公司 2:客户
  40 + 'sshpass' => $required . '|max:100',
  41 + 'ports' => $required . '|integer|min:1|max:65535',
35 ]; 42 ];
36 } 43 }
37 44
38 public function messages() 45 public function messages()
39 { 46 {
40 - $service_array = ( new ServerInformation )->ServiceArray();  
41 - $serviceStr = implode( ', ', $service_array ); 47 + $service_array = (new ServerInformation)->ServiceArray();
  48 + $serviceStr = implode(', ', $service_array);
42 return [ 49 return [
43 'type.required' => '服务器类型不能为空', 50 'type.required' => '服务器类型不能为空',
44 'type.integer' => '服务器类型格式不正确', 51 'type.integer' => '服务器类型格式不正确',
@@ -32,14 +32,19 @@ class DomainInfoRequest extends FormRequest @@ -32,14 +32,19 @@ class DomainInfoRequest extends FormRequest
32 $domain = new DomainInfo(); 32 $domain = new DomainInfo();
33 $status_tot_keys = array_keys($domain->StatusToArray()); 33 $status_tot_keys = array_keys($domain->StatusToArray());
34 $belong_to_keys = array_keys($domain->BelongToArray()); 34 $belong_to_keys = array_keys($domain->BelongToArray());
  35 + # 编辑时不需要验证必填
  36 + $required = 'required';
  37 + if ($this->getRequestUri() != '/a/domain/add') {
  38 + $required = '';
  39 + }
35 return [ 40 return [
36 - 'domain' => 'required|max:200|validate_domain', 41 + 'domain' => $required . '|max:200|validate_domain',
37 'belong_to' => [ 42 'belong_to' => [
38 - 'required', 43 + $required,
39 Rule::in($belong_to_keys) 44 Rule::in($belong_to_keys)
40 ], 45 ],
41 'status' => [ 46 'status' => [
42 - 'required', 47 + $required,
43 Rule::in($status_tot_keys) 48 Rule::in($status_tot_keys)
44 ] 49 ]
45 ]; 50 ];
@@ -6,7 +6,6 @@ use \Illuminate\Support\Facades\Route; @@ -6,7 +6,6 @@ use \Illuminate\Support\Facades\Route;
6 use \App\Http\Controllers\Aside; 6 use \App\Http\Controllers\Aside;
7 7
8 //必须登录验证的路由组 8 //必须登录验证的路由组
9 -  
10 Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染默认要加上web的中间件 9 Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染默认要加上web的中间件
11 Route::middleware(['aloginauth'])->group(function () { 10 Route::middleware(['aloginauth'])->group(function () {
12 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white'); 11 Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white');
@@ -117,18 +116,6 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫 @@ -117,18 +116,6 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫
117 Route::post('/save_follow', [Aside\Task\TaskController::class, 'save_follow'])->name('admin.task_save_follow'); 116 Route::post('/save_follow', [Aside\Task\TaskController::class, 'save_follow'])->name('admin.task_save_follow');
118 }); 117 });
119 118
120 - // 域名  
121 - Route::prefix('domain')->group(function () {  
122 - Route::get('/', [Aside\Domain\DomainInfoController::class, 'lists'])->name('admin.domain'); // 列表 | 搜索  
123 - Route::get('/info', [Aside\Domain\DomainInfoController::class, 'info'])->name('admin.domain_info'); // 详情  
124 - Route::get('/delete_info', [Aside\Domain\DomainInfoController::class, 'getDeleteDomainInfo'])->name('admin.domain_delete_info'); // 删除信息  
125 - Route::post('/add', [Aside\Domain\DomainInfoController::class, 'add'])->name('admin.domain_save'); // 添加  
126 - Route::post('/edit', [Aside\Domain\DomainInfoController::class, 'edit'])->name('admin.domain_edit'); // 编辑  
127 - Route::any('/delete', [Aside\Domain\DomainInfoController::class, 'delete'])->name('admin.domain_delete'); // 删除  
128 - Route::get('/delete_list', [Aside\Domain\DomainInfoController::class, 'delete_list'])->name('admin.domain_delete_list'); // 删除列表  
129 - Route::any('/restore', [Aside\Domain\DomainInfoController::class, 'restore'])->name('admin.domain_restore'); // 恢复  
130 - Route::get('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志  
131 - });  
132 119
133 //运维 120 //运维
134 Route::prefix('devops')->group(function () { 121 Route::prefix('devops')->group(function () {
@@ -153,6 +140,19 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫 @@ -153,6 +140,19 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫
153 }); 140 });
154 }); 141 });
155 142
  143 + // 域名
  144 + Route::prefix('domain')->group(function () {
  145 + Route::get('/', [Aside\Domain\DomainInfoController::class, 'lists'])->name('admin.domain'); // 列表 | 搜索
  146 + Route::get('/info', [Aside\Domain\DomainInfoController::class, 'info'])->name('admin.domain_info'); // 详情
  147 + Route::get('/delete_info', [Aside\Domain\DomainInfoController::class, 'getDeleteDomainInfo'])->name('admin.domain_delete_info'); // 删除信息
  148 + Route::post('/add', [Aside\Domain\DomainInfoController::class, 'add'])->name('admin.domain_save'); // 添加
  149 + Route::post('/edit', [Aside\Domain\DomainInfoController::class, 'edit'])->name('admin.domain_edit'); // 编辑
  150 + Route::any('/delete', [Aside\Domain\DomainInfoController::class, 'delete'])->name('admin.domain_delete'); // 删除
  151 + Route::get('/delete_list', [Aside\Domain\DomainInfoController::class, 'delete_list'])->name('admin.domain_delete_list'); // 删除列表
  152 + Route::any('/restore', [Aside\Domain\DomainInfoController::class, 'restore'])->name('admin.domain_restore'); // 恢复
  153 + Route::get('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志
  154 + });
  155 +
156 // 自定义页面 模板,头部底部 156 // 自定义页面 模板,头部底部
157 Route::prefix('template')->group(function () { 157 Route::prefix('template')->group(function () {
158 Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template'); 158 Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template');