JobService.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace App\Services\Base;
  3. use App\Contracts\Repositories\Base\JobRepository;
  4. use App\Repositories\Criteria\Base\JobCriteria;
  5. use App\Repositories\Eloquent\Base\JobRepositoryEloquent;
  6. use App\Repositories\Models\Base\Job;
  7. use App\Repositories\Presenters\Base\JobPresenter;
  8. use Illuminate\Http\Request;
  9. use Jiannei\Enum\Laravel\Repositories\Enums\HttpStatusCodeEnum;
  10. use Jiannei\Response\Laravel\Support\Facades\Response;
  11. use Prettus\Validator\Exceptions\ValidatorException;
  12. class JobService
  13. {
  14. /**
  15. * @var JobRepositoryEloquent
  16. */
  17. private $jobRepository;
  18. /**
  19. * JobService constructor.
  20. *
  21. * @param JobRepositoryEloquent $jobRepositoryEloquent
  22. */
  23. public function __construct(JobRepositoryEloquent $jobRepositoryEloquent)
  24. {
  25. $this->jobRepository = $jobRepositoryEloquent;
  26. }
  27. /**
  28. * @param Request $request
  29. *
  30. * @return mixed
  31. * @throws \Prettus\Repository\Exceptions\RepositoryException
  32. */
  33. public function handleList(Request $request)
  34. {
  35. $this->jobRepository->pushCriteria(new JobCriteria($request));
  36. $this->jobRepository->setPresenter(JobPresenter::class);
  37. return $this->jobRepository->searchJobsByPage();
  38. }
  39. /**
  40. * @param $id
  41. *
  42. * @return \Illuminate\Database\Eloquent\Model
  43. */
  44. public function handleProfile($id)
  45. {
  46. $this->jobRepository->setPresenter(JobPresenter::class);
  47. return $this->jobRepository->searchJobBy($id);
  48. }
  49. /**
  50. * @param array $data
  51. *
  52. * @return mixed
  53. * @throws \Prettus\Validator\Exceptions\ValidatorException
  54. */
  55. public function handleStore($data)
  56. {
  57. return $this->jobRepository->create($data);
  58. }
  59. /**
  60. * @param array $data
  61. *
  62. * @return mixed
  63. * @throws \Prettus\Validator\Exceptions\ValidatorException
  64. */
  65. public function handleUpdate($data)
  66. {
  67. $job = $this->jobRepository->update($data, $data['id']);
  68. return $job;
  69. }
  70. /**
  71. * @param $id
  72. * @return int
  73. */
  74. public function handleDelete($id)
  75. {
  76. return $this->jobRepository->delete($id);
  77. }
  78. /**
  79. * 选项数据
  80. * @param Request $request
  81. * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|\Illuminate\Support\Collection|mixed
  82. * @throws \Prettus\Repository\Exceptions\RepositoryException
  83. */
  84. public function handleSelectOptions(Request $request)
  85. {
  86. $this->jobRepository->pushCriteria(new JobCriteria($request));
  87. return $this->jobRepository->all([
  88. 'id',
  89. 'name',
  90. 'code',
  91. 'sort',
  92. ]);
  93. }
  94. }