OrderController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. namespace App\Http\Controllers\Admin\Dwbs;
  3. use App\Exports\Dwbs\UserOrderGoodExport;
  4. use App\Http\Controllers\Controller;
  5. use App\Http\Resources\Dwbs\OrderResource;
  6. use App\Services\Dwbs\OrderService;
  7. use Illuminate\Http\Request;
  8. use Maatwebsite\Excel\Facades\Excel;
  9. /**
  10. * Order
  11. */
  12. class OrderController extends Controller
  13. {
  14. /**
  15. * @var OrderService
  16. */
  17. private $service;
  18. /**
  19. * OrderController constructor.
  20. *
  21. * @param OrderService $orderService
  22. */
  23. public function __construct(OrderService $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|max:200',
  52. 'sort' => 'required|integer',
  53. 'status' => 'required|integer',
  54. ], []);
  55. $model = $this->service->handleStore($data);
  56. return $this->response->created($model, '创建成功');
  57. }
  58. /**
  59. * 详情
  60. * @param Request $request
  61. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  62. */
  63. public function show(Request $request)
  64. {
  65. $this->validate($request, ['id' => 'required|integer']);
  66. $model = $this->service->handleProfile($request->get('id'));
  67. return $this->response->success($model);
  68. }
  69. /**
  70. * 更新
  71. * @param Request $request
  72. *
  73. * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
  74. * @throws \Prettus\Validator\Exceptions\ValidatorException
  75. */
  76. public function update(Request $request)
  77. {
  78. $data = $this->validateData($request, [
  79. 'id' => 'required|integer',
  80. 'name' => 'required|string|max:200',
  81. 'sort' => 'required|integer',
  82. 'status' => 'required|integer',
  83. ], []);
  84. $model = $this->service->handleUpdate($data);
  85. return $this->response->success($model, '更新成功');
  86. }
  87. /**
  88. * 删除
  89. * @param Request $request
  90. */
  91. public function destroy(Request $request)
  92. {
  93. $this->validate($request, ['id' => 'required|integer']);
  94. $re = $this->service->handleDelete($request->get('id'));
  95. if ($re) {
  96. return $this->response->ok('删除成功');
  97. }
  98. return $this->response->fail('删除失败');
  99. }
  100. /**
  101. * 批量删除
  102. * @param Request $request
  103. */
  104. public function batchDelete(Request $request)
  105. {
  106. $ids = $this->validateData($request, ['ids' => 'required|array']);
  107. $re = $this->service->handleBatchDelete($ids);
  108. if ($re) {
  109. return $this->response->ok('删除成功');
  110. }
  111. return $this->response->fail('删除失败');
  112. }
  113. /**
  114. * 选项
  115. * @must
  116. * @param Request $request
  117. */
  118. public function selectOptions(Request $request)
  119. {
  120. $lists = $this->service->handleSelectOptions($request);
  121. return $this->response->success($lists);
  122. }
  123. /**
  124. * 导出
  125. * @param Request $request
  126. * @return \Symfony\Component\HttpFoundation\BinaryFileResponse
  127. * @throws \Illuminate\Validation\ValidationException
  128. */
  129. public function exportUserOrderGood(Request $request)
  130. {
  131. $data = $this->validateData($request, [
  132. 'start_day' => 'required|date',
  133. 'end_day' => 'required|date',
  134. 'limit' => 'required|integer|max:1000',
  135. ], [
  136. 'start_day' => '开始时间',
  137. 'end_day' => '结束时间',
  138. 'limit' => '前多少名',
  139. ]);
  140. $file_name = time() . '.xlsx';
  141. return Excel::download(new UserOrderGoodExport($data), $file_name);
  142. }
  143. }