作者 李美松

更新代码

... ... @@ -73,6 +73,7 @@ class ServerInformationController extends BaseController
*/
public function edit(ServerInformationRequest $serverInformationRequest, ServerInformationLogic $serverInformationLogic)
{
$serverInformationRequest->validate([
'id' => 'required|integer',
], [
... ...
... ... @@ -39,12 +39,11 @@ class ServerInformationLogic extends BaseLogic
{
$request = $this->param ?? [];
$service = new ServerInformation();
$this->extracted($request, $service);
$this->extracted($request, $service, $service->FieldsArray());
if ($this->checkIp($request['ip'])) {
return $this->fail('服务器信息添加失败,ip已存在');
}
DB::beginTransaction();
if ($service->save()) {
$original = $service->getOriginal();
$original['type'] = $request['type'];
... ... @@ -166,18 +165,18 @@ class ServerInformationLogic extends BaseLogic
}
/**
* 提取数据
* @param array $request
* @param $service
* @param $service
* @param array $original
* @return void
*/
public function extracted(array $request, $service, array $original = [])
public function extracted(array $request, $service, array $original)
{
$service->type = trim($request['type']) ?? $original['type']; // 服务器类型
$service->ip = trim($request['ip']) ?? $original['ip']; // 服务器ip
$service->title = trim($request['title']) ?? $original['title']; // 服务器标题
$service->belong_to = trim($request['belong_to']) ?? $original['belong_to']; // 服务器归属
$service->sshpass = trim($request['sshpass']) ?? $original['sshpass']; // ssh密码
$service->ports = trim($request['ports']) ?? $original['ports']; // ssh端口
$request = array_intersect_key($request, $original);
foreach ($request as $key => $value) {
$service->$key = trim($value) ?? $original[$key];
}
}
/**
... ...
... ... @@ -10,7 +10,6 @@ use App\Http\Logic\Aside\BaseLogic;
use App\Http\Logic\Aside\Devops\ServerInformationLogic;
use App\Models\Aside\Domain\DomainInfo;
use App\Models\Aside\Domain\DomainInfoLog;
use App\Models\Devops\ServerInformation;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
... ... @@ -27,8 +26,6 @@ class DomainInfoLogic extends BaseLogic
{
parent::__construct();
$this->model = new ServerInformation();
$this->param = $this->requestAll;
}
... ... @@ -46,7 +43,7 @@ class DomainInfoLogic extends BaseLogic
return $this->fail('域名已存在!');
}
$domain = new DomainInfo();
$this->extracted($request, $domain);
$this->extracted($request, $domain, $domain->FieldsArray());
DB::beginTransaction();
if ($domain->save()) {
$original = $domain->getOriginal();
... ... @@ -77,9 +74,11 @@ class DomainInfoLogic extends BaseLogic
$request = $this->param;
$this->extracted($request, $domain, $original);
// 检查ip是否存在
if ($domain->domain != $request['domain']) {
if ($this->checkDomain($request['domain'])) {
$this->fail('域名信息修改失败,域名已存在', Code::USER_ERROR);
if(array_key_exists('domain', $request)){
if ($domain->domain != $request['domain']) {
if ($this->checkDomain($request['domain'])) {
$this->fail('域名信息修改失败,域名已存在', Code::USER_ERROR);
}
}
}
DB::beginTransaction();
... ... @@ -179,18 +178,13 @@ class DomainInfoLogic extends BaseLogic
* @param $domain
* @param array $original
* @return void
* @throws AsideGlobalException
* @throws BsideGlobalException
*/
public function extracted(array $request, $domain, array $original = [])
public function extracted(array $request, $domain, array $original)
{
$domain->domain = trim($request['domain']) ?? $original['domain'];
$domain->belong_to = trim($request['belong_to']) ?? $original['belong_to']; // 域名归属 1 - 公司 2 - 客户
$domain->status = trim($request['status']) ?? $original['status']; // 域名状态 0 - 正常 1 - 关闭
$domain->domain_start_time = trim($request['domain_start_time']) ?? $original['domain_start_time']; // 域名开始时间
$domain->domain_end_time = trim($request['domain_end_time']) ?? $original['domain_end_time'];
$domain->certificate_start_time = trim($request['certificate_start_time']) ?? $original['certificate_start_time']; // 证书开始时间
$domain->certificate_end_time = trim($request['certificate_end_time']) ?? $original['certificate_end_time']; // 证书结束时间
$request = array_intersect_key($request, $original);
foreach ($request as $key => $value) {
$domain->$key = trim($value) ?? $original[$key];
}
}
/**
... ...
... ... @@ -410,22 +410,22 @@ class Logic
public function log($log, int $action = ServerInformationLog::ACTION_ADD, array $original = [], array $revised = [], string $remarks = ''): bool
{
// $action 1:添加 2:修改 3:删除 4:恢复
$actionArr = $log->actionArr();
$actionStr = $actionArr[$action];
$ip = request()->getClientIp();
$url = request()->getRequestUri();
$method = request()->getMethod();
$userId = $this->uid ?? 0;
$log->user_id = $userId;
$log->action = $actionStr;
$actionArr = $log->actionArr();
$actionStr = $actionArr[$action];
$ip = request()->getClientIp();
$url = request()->getRequestUri();
$method = request()->getMethod();
$userId = $this->uid ?? 0;
$log->user_id = $userId;
$log->action = $actionStr;
$log->original = json_encode($original);
$log->revised = json_encode($revised);
$log->ip = $ip;
$log->url = $url;
$log->method = $method;
$log->remarks = $remarks;
$log->revised = json_encode($revised);
$log->ip = $ip;
$log->url = $url;
$log->method = $method;
$log->remarks = $remarks;
DB::beginTransaction();
if($log->save()){
if ($log->save()) {
DB::commit();
return true;
}
... ...
... ... @@ -25,20 +25,27 @@ class ServerInformationRequest extends FormRequest
*/
public function rules()
{
$required = 'required';
// 编辑时不需要验证必填
if ($this->getRequestUri() != '/a/devops/server/add') {
$required = '';
}
return [
'type' => [ 'required', Rule::in( array_keys( ( new ServerInformation )->ServiceArray() ) ) ],
'ip' => 'required|ip',
'title' => 'required|max:200',
'belong_to' => 'required|integer|in:1,2', // 1:公司 2:客户
'sshpass' => 'required|max:100',
'ports' => 'required|integer|min:1|max:65535',
'type' => [
$required, Rule::in(array_keys((new ServerInformation)->ServiceArray()))
],
'ip' => $required . '|ip',
'title' => $required . '|max:200',
'belong_to' => $required . '|integer|in:1,2', // 1:公司 2:客户
'sshpass' => $required . '|max:100',
'ports' => $required . '|integer|min:1|max:65535',
];
}
public function messages()
{
$service_array = ( new ServerInformation )->ServiceArray();
$serviceStr = implode( ', ', $service_array );
$service_array = (new ServerInformation)->ServiceArray();
$serviceStr = implode(', ', $service_array);
return [
'type.required' => '服务器类型不能为空',
'type.integer' => '服务器类型格式不正确',
... ...
... ... @@ -32,14 +32,19 @@ class DomainInfoRequest extends FormRequest
$domain = new DomainInfo();
$status_tot_keys = array_keys($domain->StatusToArray());
$belong_to_keys = array_keys($domain->BelongToArray());
# 编辑时不需要验证必填
$required = 'required';
if ($this->getRequestUri() != '/a/domain/add') {
$required = '';
}
return [
'domain' => 'required|max:200|validate_domain',
'domain' => $required . '|max:200|validate_domain',
'belong_to' => [
'required',
$required,
Rule::in($belong_to_keys)
],
'status' => [
'required',
$required,
Rule::in($status_tot_keys)
]
];
... ...
... ... @@ -6,7 +6,6 @@ use \Illuminate\Support\Facades\Route;
use \App\Http\Controllers\Aside;
//必须登录验证的路由组
Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染默认要加上web的中间件
Route::middleware(['aloginauth'])->group(function () {
Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white');
... ... @@ -117,18 +116,6 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫
Route::post('/save_follow', [Aside\Task\TaskController::class, 'save_follow'])->name('admin.task_save_follow');
});
// 域名
Route::prefix('domain')->group(function () {
Route::get('/', [Aside\Domain\DomainInfoController::class, 'lists'])->name('admin.domain'); // 列表 | 搜索
Route::get('/info', [Aside\Domain\DomainInfoController::class, 'info'])->name('admin.domain_info'); // 详情
Route::get('/delete_info', [Aside\Domain\DomainInfoController::class, 'getDeleteDomainInfo'])->name('admin.domain_delete_info'); // 删除信息
Route::post('/add', [Aside\Domain\DomainInfoController::class, 'add'])->name('admin.domain_save'); // 添加
Route::post('/edit', [Aside\Domain\DomainInfoController::class, 'edit'])->name('admin.domain_edit'); // 编辑
Route::any('/delete', [Aside\Domain\DomainInfoController::class, 'delete'])->name('admin.domain_delete'); // 删除
Route::get('/delete_list', [Aside\Domain\DomainInfoController::class, 'delete_list'])->name('admin.domain_delete_list'); // 删除列表
Route::any('/restore', [Aside\Domain\DomainInfoController::class, 'restore'])->name('admin.domain_restore'); // 恢复
Route::get('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志
});
//运维
Route::prefix('devops')->group(function () {
... ... @@ -153,6 +140,19 @@ Route::middleware(['web','accesstoken'])->group(function (){ //admin皜脫
});
});
// 域名
Route::prefix('domain')->group(function () {
Route::get('/', [Aside\Domain\DomainInfoController::class, 'lists'])->name('admin.domain'); // 列表 | 搜索
Route::get('/info', [Aside\Domain\DomainInfoController::class, 'info'])->name('admin.domain_info'); // 详情
Route::get('/delete_info', [Aside\Domain\DomainInfoController::class, 'getDeleteDomainInfo'])->name('admin.domain_delete_info'); // 删除信息
Route::post('/add', [Aside\Domain\DomainInfoController::class, 'add'])->name('admin.domain_save'); // 添加
Route::post('/edit', [Aside\Domain\DomainInfoController::class, 'edit'])->name('admin.domain_edit'); // 编辑
Route::any('/delete', [Aside\Domain\DomainInfoController::class, 'delete'])->name('admin.domain_delete'); // 删除
Route::get('/delete_list', [Aside\Domain\DomainInfoController::class, 'delete_list'])->name('admin.domain_delete_list'); // 删除列表
Route::any('/restore', [Aside\Domain\DomainInfoController::class, 'restore'])->name('admin.domain_restore'); // 恢复
Route::get('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志
});
// 自定义页面 模板,头部底部
Route::prefix('template')->group(function () {
Route::get('/', [\App\Http\Controllers\Aside\TemplateController::class, 'index'])->name('admin.template');
... ...