OrderController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. namespace App\Http\Controllers\Api\v1;
  3. use App\Http\Controllers\Api\webApp;
  4. use App\Http\Validator\OrderValidator;
  5. use App\Services\Api\MemberService;
  6. use App\Services\Api\OrderService;
  7. /**
  8. * 订单
  9. * @package App\Http\Controllers\Api
  10. */
  11. class OrderController extends webApp
  12. {
  13. /**
  14. * 列表
  15. * @return array
  16. */
  17. public function index()
  18. {
  19. $params = request()->post();
  20. $pageSize = request()->post('pageSize', 15);
  21. $params['user_id'] = $this->userId;
  22. $datas = OrderService::make()->getDataList($params, $pageSize);
  23. return message(1010, true, $datas);
  24. }
  25. /**
  26. * 验证订单状态
  27. * @return array
  28. */
  29. public function check()
  30. {
  31. if ($data = OrderService::make()->checkOrderStatus($this->userId)) {
  32. return showJson(1010, true, $data);
  33. } else {
  34. return showJson(1009, false);
  35. }
  36. }
  37. /**
  38. * 数量
  39. * @return array
  40. */
  41. public function count()
  42. {
  43. $status = request()->post('status', 1);
  44. $data = OrderService::make()->getCountByStatus($this->userId, $status);
  45. return showJson(1010, true, $data);
  46. }
  47. /**
  48. * 详情
  49. * @return array|mixed
  50. */
  51. public function info()
  52. {
  53. $params = request()->all();
  54. $validator = new OrderValidator();
  55. $params = $validator->check($params, 'info');
  56. if (!is_array($params)) {
  57. return showJson($params, false);
  58. }
  59. $id = isset($params['order_id']) ? intval($params['order_id']) : 0;
  60. if ($id <= 0) {
  61. return showJson(1036, false);
  62. }
  63. $data = OrderService::make()->getOrderInfo($id, $this->userId);
  64. if (empty($data)) {
  65. return showJson(1009, false);
  66. }
  67. return showJson(1010, true, $data);
  68. }
  69. /**
  70. * 下单
  71. * @param OrderValidator $validator
  72. * @return array
  73. */
  74. public function submit(OrderValidator $validator)
  75. {
  76. $params = request()->all();
  77. $params = $validator->check($params, 'submit');
  78. if (!is_array($params)) {
  79. return showJson($params, false);
  80. }
  81. try {
  82. if (!$result = OrderService::make()->createOrder($this->userId, $params)) {
  83. $error = OrderService::make()->getError();
  84. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  85. } else {
  86. return showJson(OrderService::make()->getError(), true, $result);
  87. }
  88. } catch (\Exception $exception) {
  89. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  90. return showJson(1046, false, $error);
  91. }
  92. }
  93. }