ShopGoodController.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <?php
  2. namespace App\Http\Controllers\Admin\Dwbs;
  3. use App\Http\Controllers\Controller;
  4. use App\Repositories\Enums\ModelStatusEnum;
  5. use App\Repositories\Models\Dwbs\ShopGood;
  6. use App\Services\Dwbs\ShopGoodService;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Cache;
  9. /**
  10. * ShopGood
  11. */
  12. class ShopGoodController extends Controller
  13. {
  14. /**
  15. * @var ShopGoodService
  16. */
  17. private $service;
  18. /**
  19. * ShopGoodController constructor.
  20. *
  21. * @param ShopGoodService $shopGoodService
  22. */
  23. public function __construct(ShopGoodService $service)
  24. {
  25. parent::__construct();
  26. $this->middleware('checkUserPermission');
  27. $this->service = $service;
  28. }
  29. /**
  30. * 列表
  31. * @param Request $request
  32. *
  33. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  34. * @throws \Prettus\Repository\Exceptions\RepositoryException
  35. */
  36. public function index(Request $request)
  37. {
  38. $lists = $this->service->handleList($request);
  39. return $this->response->success($lists);
  40. }
  41. /**
  42. * 新增
  43. * @param Request $request
  44. *
  45. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  46. * @throws \Prettus\Validator\Exceptions\ValidatorException
  47. */
  48. public function store(Request $request)
  49. {
  50. $data = $this->validateData($request, [
  51. 'name' => 'required|string',
  52. 'jifen' => 'required|integer',
  53. 'cover' => 'required|string',
  54. 'nums' => 'required|integer',
  55. 'sort' => 'required|integer',
  56. ], [
  57. 'name' => '礼品名称',
  58. 'jifen' => '兑换积分',
  59. 'cover' => '礼品封面图',
  60. 'nums' => '库存',
  61. 'sort' => '排序',
  62. ]);
  63. $data['status'] = ModelStatusEnum::OK;
  64. $model = $this->service->handleStore($data);
  65. if ($model) {
  66. ShopGood::updateKuCun($model['id'], $model['nums']);
  67. }
  68. return $this->response->created($model, '创建成功');
  69. }
  70. /**
  71. * 详情
  72. * @param Request $request
  73. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  74. */
  75. public function show(Request $request)
  76. {
  77. $this->validate($request, ['id' => 'required|integer']);
  78. $model = $this->service->handleProfile($request->get('id'));
  79. return $this->response->success($model);
  80. }
  81. /**
  82. * 更新
  83. * @param Request $request
  84. *
  85. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  86. * @throws \Prettus\Validator\Exceptions\ValidatorException
  87. */
  88. public function update(Request $request)
  89. {
  90. $data = $this->validateData($request, [
  91. 'id' => 'required|integer',
  92. 'name' => 'required|string',
  93. 'jifen' => 'required|integer',
  94. 'cover' => 'required|string',
  95. // 'nums' => 'required|integer',
  96. 'sort' => 'required|integer',
  97. 'status' => 'required|integer',
  98. ], [
  99. 'name' => '礼品名称',
  100. 'jifen' => '兑换积分',
  101. 'cover' => '礼品封面图',
  102. // 'nums' => '库存',
  103. 'sort' => '排序',
  104. ]);
  105. $model = $this->service->handleUpdate($data);
  106. return $this->response->success($model, '更新成功');
  107. }
  108. /**
  109. * 删除
  110. * @param Request $request
  111. */
  112. public function destroy(Request $request)
  113. {
  114. $this->validate($request, ['id' => 'required|integer']);
  115. $re = $this->service->handleDelete($request->get('id'));
  116. if ($re) {
  117. return $this->response->ok('删除成功');
  118. }
  119. return $this->response->fail('删除失败');
  120. }
  121. /**
  122. * 批量删除
  123. * @param Request $request
  124. */
  125. public function batchDelete(Request $request)
  126. {
  127. $ids = $this->validateData($request, ['ids' => 'required|array']);
  128. $re = $this->service->handleBatchDelete($ids);
  129. if ($re) {
  130. return $this->response->ok('删除成功');
  131. }
  132. return $this->response->fail('删除失败');
  133. }
  134. /**
  135. * 选项
  136. * @must
  137. * @param Request $request
  138. */
  139. public function selectOptions(Request $request)
  140. {
  141. $lists = $this->service->handleSelectOptions($request);
  142. return $this->response->success($lists);
  143. }
  144. /**
  145. * 更新库存
  146. * @param Request $request
  147. *
  148. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  149. * @throws \Prettus\Validator\Exceptions\ValidatorException
  150. */
  151. public function updateGoodNums(Request $request)
  152. {
  153. $data = $this->validateData($request, [
  154. 'id' => 'required|integer',
  155. 'nums' => 'required|integer',
  156. ], [
  157. 'nums' => '库存'
  158. ]);
  159. $model = $this->service->handleUpdate($data);
  160. if ($model) {
  161. ShopGood::updateKuCun($data['id'], $data['nums']);
  162. }
  163. return $this->response->success($model, '更新成功');
  164. }
  165. /**
  166. * 更新库存
  167. * @param Request $request
  168. *
  169. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  170. * @throws \Prettus\Validator\Exceptions\ValidatorException
  171. */
  172. public function reloadGoodKucun(Request $request)
  173. {
  174. ShopGood::reloadKuCun();
  175. return $this->response->success(null, '更新成功');
  176. }
  177. }