AdminLog.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\AdminUser;
  4. use Closure;
  5. use Illuminate\Routing\Route;
  6. use App;
  7. use Illuminate\Support\Facades\DB;
  8. use Illuminate\Support\Facades\Redis;
  9. class AdminLog
  10. {
  11. /**
  12. * @param \Illuminate\Http\Request $request
  13. * @param Closure $next
  14. */
  15. public function handle($request, Closure $next)
  16. {
  17. $parameters = $request->route()->parameters;
  18. $admin=$request->session()->get('admin');
  19. $admin_id = $admin->id;
  20. //写日志
  21. $name = $parameters['name'] ?? '';
  22. if (!empty($name)||$request->isMethod('post')) {
  23. $id = $parameters['id'] ?? 0;
  24. $route = $request->route();
  25. $current_url = $route->methods[0].":".$route->uri();
  26. $data = [
  27. 'admin_id' => $admin_id,
  28. 'create_at' => date("Y-m-d H:i:s"),
  29. 'update_at' => date("Y-m-d H:i:s"),
  30. 'content' => json_encode($request->all()),
  31. 'url' => $current_url,
  32. 'explain' => $id
  33. ];
  34. DB::table('agent.dbo.admin_log')->insert($data);
  35. }
  36. //设置locale
  37. if (isset($admin->locale)) {
  38. App::setLocale($admin->locale);
  39. }
  40. //定时刷新admin资料
  41. $adminKey="adminuser_$admin_id";
  42. if(!Redis::exists($adminKey)){
  43. $admin = AdminUser::where('id', $admin_id)->first();
  44. $request->session()->put('admin', $admin);
  45. Redis::set($adminKey,json_encode($admin));
  46. Redis::expire($adminKey,600);
  47. }
  48. $adminChannels=json_decode($admin->channel,true);
  49. $request->session()->put('admin_channels', $adminChannels);
  50. $key='AllChannels2';
  51. if(!Redis::exists($key)) {
  52. $Channels = DB::table('QPPlatformDB.dbo.ChannelPackageName')
  53. ->pluck('Remarks', 'Channel')->toArray();
  54. Redis::set($key,json_encode($Channels));
  55. Redis::expire($key, 600);
  56. }else{
  57. $Channels=json_decode(Redis::get($key),true);
  58. }
  59. $request->session()->put('all_channels', $Channels);
  60. return $next($request);
  61. }
  62. }