From 3679aba3d6e53bbf87a2e539a5dcc674c5fdc7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E4=B8=91=E8=B7=AF=E4=BA=BA?= <2278757482@qq.com> Date: Fri, 8 Apr 2022 17:21:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E7=9A=84=E6=93=8D=E4=BD=9C=E8=AE=B0=E5=BD=95AdminLog=E4=B8=AD?= =?UTF-8?q?=E9=97=B4=E4=BB=B6=EF=BC=9A=E8=AE=B0=E5=BD=95=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E4=B8=8E=E5=A4=B1=E8=B4=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E7=8A=B6=E6=80=81=E4=B8=8E=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Http/Middleware/AdminLog.php | 38 +++++++++++++++++-- app/Modules/Admin/Routes/web.php | 4 +- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/app/Modules/Admin/Http/Middleware/AdminLog.php b/app/Modules/Admin/Http/Middleware/AdminLog.php index c07e6a3..34fa6f7 100644 --- a/app/Modules/Admin/Http/Middleware/AdminLog.php +++ b/app/Modules/Admin/Http/Middleware/AdminLog.php @@ -2,12 +2,15 @@ namespace App\Modules\Admin\Http\Middleware; +use App\Traits\Json; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\URL; class AdminLog { + use Json; + /** * Handle an incoming request. * @@ -19,13 +22,11 @@ class AdminLog { $guard = 'admin'; - $resource = $next($request); - $method = strtoupper($request->getMethod()); if ($method != 'GET'){ $ip_agent = get_client_info(); - \App\Modules\Admin\Entities\Log\AdminLog::getInstance()->create([ + $admin_log = \App\Modules\Admin\Entities\Log\AdminLog::getInstance()->create([ 'request_data' => json_encode($request->all()), 'admin_id' => !empty(auth($guard)->user()) ? auth($guard)->user()->admin_id : 0, 'created_ip' => $ip_agent['ip'] ?? get_ip(), @@ -35,9 +36,38 @@ class AdminLog 'log_method' => $method, 'log_duration' => microtime(true) - LARAVEL_START, 'request_url' => URL::full() ?? get_this_url(), + // 默认值 + 'log_status' => 0, ]); + + $log_status = 0; + try{ + $response = $next($request); + + // 获取返回data内容 + $response_body_content = $response->getData(); + + // 根据接口响应,存储返回状态与文本提示语 + $log_status = $response_body_content->status; + $log_description = empty($adminlog->log_description) ? $response_body_content->msg : $adminlog->log_description; + }catch(\Exception $e){ + $log_description = $e->getMessage(); + $response = $this->errorJson($log_description); + } + + // 同步更新响应状态与文本,在`handler`层可能会被异常终止 + $admin_log->update( + [ + 'log_duration' => microtime(true) - LARAVEL_START, + // 根据接口响应,存储返回状态与文本提示语 + 'log_status' => $log_status, + 'description' => $log_description, + ] + ); + + return $response; } - return $resource; + return $next($request); } } diff --git a/app/Modules/Admin/Routes/web.php b/app/Modules/Admin/Routes/web.php index 455b2f6..cede918 100644 --- a/app/Modules/Admin/Routes/web.php +++ b/app/Modules/Admin/Routes/web.php @@ -18,7 +18,7 @@ use App\Modules\Admin\Http\Middleware\AdminLog; use App\Modules\Admin\Http\Middleware\CheckIpBlacklist; Route::prefix(cnpscy_config('admin_prefix')) - ->middleware(CheckIpBlacklist::class) + ->middleware([CheckIpBlacklist::class, AdminLog::class]) ->group(function() { // Route::get('/', 'AdminController@index'); //后台管理路由 @@ -34,7 +34,7 @@ Route::prefix(cnpscy_config('admin_prefix')) Route::post('getRabcList', 'AuthController@getRabcList')->middleware(CheckAuth::class); }); - Route::middleware([CheckAuth::class, AdminLog::class])->group(function () { + Route::middleware([CheckAuth::class])->group(function () { // 首页 Route::get('indexs', 'IndexController@index'); // 编辑登录管理员资料 -- Gitee