OrderController.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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. use App\Services\Kd100Service;
  8. /**
  9. * 订单
  10. * @package App\Http\Controllers\Api
  11. */
  12. class OrderController extends webApp
  13. {
  14. /**
  15. * 列表
  16. * @return array
  17. */
  18. public function index()
  19. {
  20. $params = request()->post();
  21. $pageSize = request()->post('pageSize', 15);
  22. $params['user_id'] = $this->userId;
  23. $datas = OrderService::make()->getDataList($params, $pageSize);
  24. return message(1010, true, $datas);
  25. }
  26. /**
  27. * 验证订单状态
  28. * @return array
  29. */
  30. public function check()
  31. {
  32. if ($data = OrderService::make()->checkOrderStatus($this->userId)) {
  33. return showJson(1010, true, $data);
  34. } else {
  35. return showJson(1009, false);
  36. }
  37. }
  38. /**
  39. * 数量
  40. * @return array
  41. */
  42. public function count()
  43. {
  44. $status = request()->post('status', 1);
  45. $data = OrderService::make()->getCountByStatus($this->userId, $status);
  46. return showJson(1010, true, $data);
  47. }
  48. /**
  49. * 详情
  50. * @return array|mixed
  51. */
  52. public function info()
  53. {
  54. $params = request()->all();
  55. $validator = new OrderValidator();
  56. $params = $validator->check($params, 'info');
  57. if (!is_array($params)) {
  58. return showJson($params, false);
  59. }
  60. $id = isset($params['order_id']) ? intval($params['order_id']) : 0;
  61. if ($id <= 0) {
  62. return showJson(1036, false);
  63. }
  64. $data = OrderService::make()->getOrderInfo($id, $this->userId);
  65. if (empty($data)) {
  66. return showJson(1009, false);
  67. }
  68. return showJson(1010, true, $data);
  69. }
  70. /**
  71. * 下单
  72. * @param OrderValidator $validator
  73. * @return array
  74. */
  75. public function submit(OrderValidator $validator)
  76. {
  77. $params = request()->all();
  78. $params = $validator->check($params, 'submit');
  79. if (!is_array($params)) {
  80. return showJson($params, false);
  81. }
  82. try {
  83. if (!$result = OrderService::make()->createOrder($this->userId, $params)) {
  84. $error = OrderService::make()->getError();
  85. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  86. } else {
  87. return showJson(OrderService::make()->getError(), true, $result);
  88. }
  89. } catch (\Exception $exception) {
  90. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  91. return showJson(1046, false, $error);
  92. }
  93. }
  94. /**
  95. * 支付
  96. * @return array
  97. */
  98. public function pay()
  99. {
  100. $params = request()->all();
  101. $id = isset($params['id'])? $params['id'] : 0;
  102. try {
  103. if (!$result = OrderService::make()->pay($this->userId, $id)) {
  104. $error = OrderService::make()->getError();
  105. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  106. } else {
  107. return showJson(OrderService::make()->getError(), true, $result);
  108. }
  109. } catch (\Exception $exception) {
  110. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  111. return showJson(1046, false, $error);
  112. }
  113. }
  114. /**
  115. * 取消
  116. * @return array
  117. */
  118. public function cancel()
  119. {
  120. $params = request()->all();
  121. $id = isset($params['id'])? $params['id'] : 0;
  122. try {
  123. if (!$result = OrderService::make()->cancel($this->userId, $id)) {
  124. $error = OrderService::make()->getError();
  125. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  126. } else {
  127. return showJson(1002, true, $result);
  128. }
  129. } catch (\Exception $exception) {
  130. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  131. return showJson(1046, false, $error);
  132. }
  133. }
  134. /**
  135. * 收货
  136. * @return array
  137. */
  138. public function complete()
  139. {
  140. $params = request()->all();
  141. $id = isset($params['id'])? $params['id'] : 0;
  142. try {
  143. if (!$result = OrderService::make()->complete($this->userId, $id)) {
  144. $error = OrderService::make()->getError();
  145. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  146. } else {
  147. return showJson(OrderService::make()->getError(), true, $result);
  148. }
  149. } catch (\Exception $exception) {
  150. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  151. return showJson(1046, false, $error);
  152. }
  153. }
  154. /**
  155. * 售后/退款
  156. * @return array
  157. */
  158. public function after()
  159. {
  160. $params = request()->all();
  161. try {
  162. if (!$result = OrderService::make()->after($this->userId, $params)) {
  163. $error = OrderService::make()->getError();
  164. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  165. } else {
  166. return showJson(OrderService::make()->getError(), true, $result);
  167. }
  168. } catch (\Exception $exception) {
  169. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  170. return showJson(1046, false, $error);
  171. }
  172. }
  173. public function logistics()
  174. {
  175. $params = request()->all();
  176. $id = isset($params['id'])? $params['id'] : 0;
  177. try {
  178. if (!$result = OrderService::make()->getDelivery($id)) {
  179. $error = OrderService::make()->getError();
  180. return showJson($error, false, '', $error == 2206 ? '405' : -1);
  181. } else {
  182. return showJson(OrderService::make()->getError(), true, $result);
  183. }
  184. } catch (\Exception $exception) {
  185. $error = ['data' => $exception->getTrace(), 'err' => $exception->getMessage()];
  186. return showJson(1046, false, $error);
  187. }
  188. }
  189. }