正在显示
7 个修改的文件
包含
71 行增加
和
65 行删除
| @@ -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'); |
-
请 注册 或 登录 后发表评论