LogController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Log;
  4. use App\Services\LogService;
  5. use Exception;
  6. use Illuminate\Contracts\Foundation\Application;
  7. use Illuminate\Contracts\Pagination\LengthAwarePaginator;
  8. use Illuminate\Http\RedirectResponse;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Http\Response;
  11. use Illuminate\Routing\Redirector;
  12. use Illuminate\Support\Facades\Auth;
  13. use Illuminate\Support\Facades\Gate;
  14. use Illuminate\Support\Facades\Validator;
  15. use function GuzzleHttp\Psr7\str;
  16. class LogController extends Controller
  17. {
  18. /**
  19. * Display a listing of the resource.
  20. *
  21. * @param Request $request
  22. * @return Application|LengthAwarePaginator|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
  23. */
  24. public function index(Request $request)
  25. {
  26. if (!Gate::allows('日志-查询')) {
  27. return redirect(url('/'));
  28. }
  29. //没有查询条件,默认展示最近50条
  30. if (!$request->has('created_at_start') &&
  31. !$request->has('created_at_end') &&
  32. !$request->has('operation') &&
  33. !$request->has('type') &&
  34. !$request->has('description')
  35. ) {
  36. $logs = Log::query()
  37. ->orderBy('id', 'desc')
  38. ->paginate(50);
  39. return view('maintenance.log.index', ['logs' => $logs]);
  40. }
  41. //不传开始时间提示错误信息并返回
  42. if (!$request->has('created_at_start')) {
  43. session()->flash('warning', '请选择开始时间');
  44. return view('maintenance.log.index', ['logs' => null]);
  45. }
  46. $query = Log::query();
  47. if ($request->has('operation')) {
  48. $query->where('operation', 'like', $request->operation . '%');
  49. }
  50. if ($request->has('type')) {
  51. $query->where('type', 'like', $request->type . '%');
  52. }
  53. if ($request->has('description')) {
  54. $str = $request->description;
  55. $str = trim($str, '\\');
  56. $str = str_replace('\\', '\\\\', $str);
  57. $query->where('description', 'like', '%' . $str . '%');
  58. }
  59. if ($request->has('created_at_start')) {
  60. $query->where('created_at', '>=', $request->created_at_start);
  61. }
  62. if ($request->has('created_at_end')) {
  63. $query->where('created_at', '<=', $request->created_at_end);
  64. }
  65. $query->orderByDesc('id');
  66. $logs = $query->paginate($request->paginate??50);
  67. return view('maintenance.log.index', ['logs' => $logs]);
  68. }
  69. /**
  70. * Display the specified resource.
  71. *
  72. * @param Log $log
  73. * @return Response
  74. */
  75. public function show(Log $log)
  76. {
  77. return view('maintenance.log.show', ['log' => $log]);
  78. }
  79. /**
  80. * Remove the specified resource from storage.
  81. *
  82. * @param Log $log
  83. * @return array|Response
  84. * @throws Exception
  85. */
  86. public function destroy(Log $log)
  87. {
  88. // if(!Gate::allows('物流公司-删除')){ return redirect(url('/')); }
  89. // app('LogService')->log(__METHOD__,__FUNCTION__,$log->toJson(),Auth::user()['id']);
  90. // $re=$log->delete();
  91. // return ['success'=>$re];
  92. }
  93. public function syncRedisLogs()
  94. {
  95. LogService::syncRedisLogs();
  96. return redirect('maintenance/log');
  97. }
  98. }