diff --git a/app/Modules/Admin/Http/Middleware/AdminLog.php b/app/Modules/Admin/Http/Middleware/AdminLog.php index c07e6a39374f2679029621ef8af33da17cd52416..34fa6f7119778b42d1dc8effe71b0b08d6ceab20 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 455b2f6d576da6cf3e3c0b3c347218b42e096f1e..cede918b9d4f45f27be2e87a888cd54e78260873 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'); // 编辑登录管理员资料