LogService.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Services\Base;
  3. use App\Contracts\Repositories\Base\LogRepository;
  4. use App\Repositories\Criteria\Base\LogCriteria;
  5. use App\Repositories\Eloquent\Base\LogRepositoryEloquent;
  6. use App\Repositories\Presenters\Base\LogPresenter;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Storage;
  9. use Illuminate\Support\Str;
  10. class LogService
  11. {
  12. /**
  13. * @var LogRepositoryEloquent
  14. */
  15. private $logRepository;
  16. /**
  17. * LogService constructor.
  18. *
  19. * @param LogRepositoryEloquent $logRepositoryEloquent
  20. */
  21. public function __construct(LogRepositoryEloquent $logRepositoryEloquent)
  22. {
  23. $this->logRepository = $logRepositoryEloquent;
  24. }
  25. /**
  26. * @param Request $request
  27. *
  28. * @return mixed
  29. * @throws \Prettus\Repository\Exceptions\RepositoryException
  30. */
  31. public function handleList(Request $request)
  32. {
  33. $this->logRepository->pushCriteria(new LogCriteria($request));
  34. $this->logRepository->setPresenter(LogPresenter::class);
  35. return $this->logRepository->searchLogsByPage();
  36. }
  37. /**
  38. * @param $id
  39. *
  40. * @return \Illuminate\Database\Eloquent\Model
  41. */
  42. public function handleProfile($id)
  43. {
  44. $this->logRepository->setPresenter(LogPresenter::class);
  45. return $this->logRepository->searchLogBy($id);
  46. }
  47. /**
  48. * @param Request $request
  49. *
  50. * @return mixed
  51. * @throws \Prettus\Validator\Exceptions\ValidatorException
  52. */
  53. public function handleStore(Request $request)
  54. {
  55. $log = $this->logRepository->create($request->all());
  56. return $log;
  57. }
  58. /**
  59. * @param Request $request
  60. *
  61. * @return mixed
  62. * @throws \Prettus\Validator\Exceptions\ValidatorException
  63. */
  64. public function handleUpdate(Request $request)
  65. {
  66. $log = $this->logRepository->update($request->all(), $request->get('id'));
  67. return $log;
  68. }
  69. public function handleUpload(Request $request, $dir, $disk = 'public')
  70. {
  71. // 获取上传的文件
  72. $file = $request->file('file');
  73. if (!$file->isFile()) return false;
  74. $dir = config('filesystems.dir_prefix', '') . $dir;
  75. $dir = str_replace('_', DIRECTORY_SEPARATOR, $dir) . DIRECTORY_SEPARATOR . date('Y-m-d');
  76. $newName = Str::random(32) . '.' . $file->getClientOriginalExtension();
  77. $path = Storage::disk($disk)->putFileAs($dir, $file, $newName);
  78. $url = Storage::disk($disk)->url($path);
  79. return [
  80. 'name' => $newName,
  81. 'original_name' => $file->getClientOriginalName(),
  82. 'path' => $path,
  83. 'url' => $url,
  84. 'disk' => $disk,
  85. 'size' => $file->getSize()
  86. ];
  87. }
  88. }