OrderController.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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. /**
  94. * 支付
  95. * @return array
  96. */
  97. public function pay()
  98. {
  99. $params = request()->all();
  100. $id = isset($params['id'])? $params['id'] : 0;
  101. try {
  102. if (!$result = OrderService::make()->pay($this->userId, $id)) {
  103. $error = OrderService::make()->getError();
  104. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  105. } else {
  106. return showJson(OrderService::make()->getError(), true, $result);
  107. }
  108. } catch (\Exception $exception) {
  109. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  110. return showJson(1046, false, $error);
  111. }
  112. }
  113. /**
  114. * 取消
  115. * @return array
  116. */
  117. public function cancel()
  118. {
  119. $params = request()->all();
  120. $id = isset($params['id'])? $params['id'] : 0;
  121. try {
  122. if (!$result = OrderService::make()->cancel($this->userId, $id)) {
  123. $error = OrderService::make()->getError();
  124. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  125. } else {
  126. return showJson(1002, true, $result);
  127. }
  128. } catch (\Exception $exception) {
  129. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  130. return showJson(1046, false, $error);
  131. }
  132. }
  133. /**
  134. * 收货
  135. * @return array
  136. */
  137. public function complete()
  138. {
  139. $params = request()->all();
  140. $id = isset($params['id'])? $params['id'] : 0;
  141. try {
  142. if (!$result = OrderService::make()->complete($this->userId, $id)) {
  143. $error = OrderService::make()->getError();
  144. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  145. } else {
  146. return showJson(OrderService::make()->getError(), true, $result);
  147. }
  148. } catch (\Exception $exception) {
  149. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  150. return showJson(1046, false, $error);
  151. }
  152. }
  153. }