Base.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\Admin\middleware;
  4. use think\facade\Db;
  5. use think\facade\Lang;
  6. use think\facade\Log;
  7. class Base
  8. {
  9. /**
  10. * 处理请求
  11. *
  12. * @param \think\Request $request
  13. * @param \Closure $next
  14. * @return Response
  15. */
  16. public function handle($request, \Closure $next)
  17. {
  18. $response = $next($request);
  19. $token = $request->param("token");
  20. $username=$_SERVER['REMOTE_ADDR'];
  21. $rolename="";
  22. if($request->root()=="/Api"){
  23. return $response;
  24. }
  25. if(isset($token)&& $token!=""){
  26. $userinfo = GetUserInfo($token);
  27. if($userinfo['code']==0){
  28. $username=isset($userinfo['data']['nickname']) ?$userinfo['data']['nickname']: "";
  29. $rolename = Db::name("role")->where("id","=",$userinfo['data']['roleid'])->find();
  30. $rolename = empty($rolename)? ["role_name"=>""] : $rolename;
  31. }
  32. }
  33. if($request->controller()!=""){
  34. $data = [
  35. "info"=>$this->checkLang($request),
  36. "action"=>$request->root(),
  37. "url"=>$request->controller()."/".$request->action(),
  38. "param"=>json_encode($request->param(),JSON_UNESCAPED_UNICODE),
  39. "name"=>$username,
  40. "rolename"=>isset($rolename)&& $rolename!="" ? $rolename['role_name']:"",
  41. "addtime"=>date("Y-m-d H:i:s")
  42. ];
  43. Db::name("system_log")->save($data);
  44. }
  45. return $response;
  46. }
  47. private function checkLang($request){
  48. $lang = Lang::get();
  49. $controller = $request->rule()->getRule();
  50. if($controller!="" && isset($lang[$controller])){
  51. return $lang[$controller];
  52. }else{
  53. return $controller;
  54. }
  55. }
  56. }