LogController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers\Admin\Base;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\Enums\ResponseCodeEnum;
  5. use App\Repositories\Models\Base\AppLog;
  6. use App\Services\Base\LogService;
  7. use App\Services\Base\ResourceService;
  8. use Illuminate\Http\Request;
  9. /**
  10. * 日志
  11. */
  12. class LogController extends Controller
  13. {
  14. /**
  15. * @var LogService
  16. */
  17. private $logService;
  18. private $resourceService;
  19. /**
  20. * LogController constructor.
  21. *
  22. * @param LogService $logService
  23. */
  24. public function __construct(LogService $logService, ResourceService $resourceService)
  25. {
  26. parent::__construct();
  27. // $this->middleware('checkUserPermission');
  28. $this->logService = $logService;
  29. $this->resourceService = $resourceService;
  30. }
  31. /**
  32. * 列表
  33. * @param Request $request
  34. *
  35. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  36. * @throws \Prettus\Repository\Exceptions\RepositoryException
  37. */
  38. public function index(Request $request)
  39. {
  40. $logs = $this->logService->handleList($request);
  41. return $this->response->success($logs);
  42. }
  43. /**
  44. * 详情
  45. * @param int $id
  46. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  47. */
  48. public function show(Request $request)
  49. {
  50. $this->validate($request, ['id' => 'required|integer']);
  51. $log = $this->logService->handleProfile($request->get('id'));
  52. return $this->response->success($log);
  53. }
  54. /**
  55. * 上传用户日志
  56. * @param Request $request
  57. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  58. * @throws \Illuminate\Validation\ValidationException
  59. */
  60. public function appUploadLog(Request $request)
  61. {
  62. $this->validate($request, [
  63. 'file' => 'required|file',
  64. 'data' => 'nullable'
  65. ], [], [
  66. 'file' => '文件',
  67. 'data' => '数据',
  68. ]);
  69. $file = $request->file('file');
  70. if (!$file->isFile()) {
  71. return $this->response->fail('请上传一个文件', ResponseCodeEnum::CLIENT_VALIDATION_ERROR);
  72. }
  73. $config = ['log'];
  74. if (!is_array($config)) {
  75. abort(ResponseCodeEnum::SYSTEM_CONFIG_ERROR, '系统文件配置错误');
  76. }
  77. if (!in_array(strtolower($file->getClientOriginalExtension()), $config)) {
  78. return $this->response->fail('文件类型不合法', ResponseCodeEnum::CLIENT_VALIDATION_ERROR);
  79. }
  80. $admin_id = login_admin_id() ? login_admin_id() : $request->get('user_id', 0);
  81. $day = date('Y-m-d');
  82. $fileData = $this->logService->handleUpload($request, "/logs/{$admin_id}", 'public');
  83. if (!$fileData) {
  84. return $this->response->fail('上传文件失败', ResponseCodeEnum::SYSTEM_ERROR);
  85. }
  86. AppLog::query()->create(['day' => $day, 'log' => $fileData, 'admin_id' => $admin_id, 'params' => $request->except(['file'])]);
  87. return $this->response->success(['status' => 1]);
  88. }
  89. }