<?php

namespace app\admin\middleware;

use app\utility\BusinessLog;

class AdminLog
{

    /**
     * 处理请求
     *
     * @param \think\Request $param
     * @param \Closure $next
     * @return Response
     */
    public function handle($request, \Closure $next)
    {
        //得到要log的数据
        $adminId = $request->user_id;
        $pathInfo = $request->pathinfo();
        $host = $request->server("HTTP_HOST");
        $uri = $request->server("REQUEST_URI");
        $ua = $request->server("HTTP_USER_AGENT");
        $ip = $request->ip();

        //request参数 url上参数
        $requestData = $request->request();

        //body请求参数
        $param = $request->param();

        //放入数组
        $content = [
            "admin_id" => $adminId,
            "host" => $host,
            "uri" => $uri,
            "ua" => $ua,
            "ip" => $ip,
            "request_param" => json_encode($requestData),
            "body_param" => json_encode($param),
            "path_info" => '/' . $pathInfo,
            "create_date" => date("Y-m-d"),
            "create_time" => date("Y-m-d H:i:s")
        ];

        //log
        $log = new BusinessLog();
        $log->log($content);

        //返回
        return $next($request);
    }
}