GoodController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. namespace App\Http\Controllers\Admin\Dwbs;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\Enums\ModelStatusEnum;
  5. use App\Services\Dwbs\GoodService;
  6. use Illuminate\Http\Request;
  7. /**
  8. * 产品管理
  9. */
  10. class GoodController extends Controller
  11. {
  12. /**
  13. * @var GoodService
  14. */
  15. private $service;
  16. /**
  17. * GoodController constructor.
  18. *
  19. * @param GoodService $goodService
  20. */
  21. public function __construct(GoodService $service)
  22. {
  23. parent::__construct();
  24. $this->middleware('checkUserPermission');
  25. $this->service = $service;
  26. }
  27. /**
  28. * 列表
  29. * @param Request $request
  30. *
  31. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  32. * @throws \Prettus\Repository\Exceptions\RepositoryException
  33. */
  34. public function index(Request $request)
  35. {
  36. $lists = $this->service->handleList($request);
  37. return $this->response->success($lists);
  38. }
  39. /**
  40. * 新增
  41. * @param Request $request
  42. *
  43. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  44. * @throws \Prettus\Validator\Exceptions\ValidatorException
  45. */
  46. public function store(Request $request)
  47. {
  48. $data = $this->validateData($request, [
  49. 'name' => 'required|string',
  50. 'cover' => 'required|string',
  51. 'xuefen' => 'required|integer',
  52. ], [
  53. 'name' => '产品名称',
  54. 'cover' => '产品封面图',
  55. 'xuefen' => '产品学分',
  56. ]);
  57. $data['status'] = ModelStatusEnum::OK;
  58. $model = $this->service->handleStore($data);
  59. return $this->response->created($model, '创建成功');
  60. }
  61. /**
  62. * 详情
  63. * @param Request $request
  64. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  65. */
  66. public function show(Request $request)
  67. {
  68. $this->validate($request, ['id' => 'required|integer']);
  69. $model = $this->service->handleProfile($request->get('id'));
  70. return $this->response->success($model);
  71. }
  72. /**
  73. * 更新
  74. * @param Request $request
  75. *
  76. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  77. * @throws \Prettus\Validator\Exceptions\ValidatorException
  78. */
  79. public function update(Request $request)
  80. {
  81. $data = $this->validateData($request, [
  82. 'id' => 'required|integer',
  83. 'name' => 'required|string',
  84. 'cover' => 'required|string',
  85. 'xuefen' => 'required|integer',
  86. 'status' => 'required|integer',
  87. ], [
  88. 'name' => '产品名称',
  89. 'cover' => '产品封面图',
  90. 'xuefen' => '产品学分',
  91. ]);
  92. $model = $this->service->handleUpdate($data);
  93. return $this->response->success($model, '更新成功');
  94. }
  95. /**
  96. * 删除
  97. * @param Request $request
  98. */
  99. public function destroy(Request $request)
  100. {
  101. $this->validate($request, ['id' => 'required|integer']);
  102. $re = $this->service->handleDelete($request->get('id'));
  103. if ($re) {
  104. return $this->response->ok('删除成功');
  105. }
  106. return $this->response->fail('删除失败');
  107. }
  108. /**
  109. * 批量删除
  110. * @param Request $request
  111. */
  112. public function batchDelete(Request $request)
  113. {
  114. $ids = $this->validateData($request, ['ids' => 'required|array']);
  115. $re = $this->service->handleBatchDelete($ids);
  116. if ($re) {
  117. return $this->response->ok('删除成功');
  118. }
  119. return $this->response->fail('删除失败');
  120. }
  121. /**
  122. * 选项
  123. * @must
  124. * @param Request $request
  125. */
  126. public function selectOptions(Request $request)
  127. {
  128. $lists = $this->service->handleSelectOptions($request);
  129. return $this->response->success($lists);
  130. }
  131. }