ServiceOrderController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <?php
  2. namespace app\api\controller;
  3. use app\adminapi\logic\works\ServiceWorkLogic;
  4. use app\api\lists\recharge\ServiceOrderLists;
  5. use app\api\logic\ServiceOrderLogic;
  6. use app\api\validate\ServiceOrderValidate;
  7. use think\facade\Log;
  8. /**
  9. * 订单类
  10. */
  11. class ServiceOrderController extends BaseApiController
  12. {
  13. /**
  14. * 订单列表
  15. * @return \think\response\Json
  16. */
  17. public function lists()
  18. {
  19. return $this->dataLists(new ServiceOrderLists());
  20. }
  21. /**
  22. * 订单详情
  23. * @return \think\response\Json
  24. */
  25. public function detail()
  26. {
  27. $params = (new ServiceOrderValidate())->goCheck('detail',[
  28. 'user_id' => $this->userId,
  29. ]);
  30. $result = ServiceOrderLogic::detail($params);
  31. if (false === $result) {
  32. return $this->fail(ServiceOrderLogic::getError());
  33. }
  34. return $this->data($result);
  35. }
  36. /**
  37. * 订单支付详情
  38. * @return \think\response\Json
  39. */
  40. public function orderPayInfo()
  41. {
  42. $params = (new ServiceOrderValidate())->goCheck('detail',[
  43. 'user_id' => $this->userId,
  44. ]);
  45. $result = ServiceOrderLogic::orderPayInfo($params);
  46. if (false === $result) {
  47. return $this->fail(ServiceOrderLogic::getError());
  48. }
  49. return $this->data($result);
  50. }
  51. public function getMasterWorker()
  52. {
  53. $params = (new ServiceOrderValidate())->goCheck('worker',[
  54. 'user_id' => $this->userId,
  55. ]);
  56. $result = ServiceOrderLogic::getMasterWorker($params);
  57. if (false === $result) {
  58. return $this->fail(ServiceOrderLogic::getError());
  59. }
  60. return $this->data($result);
  61. }
  62. /**
  63. * 提交订单
  64. * @return \think\response\Json
  65. */
  66. public function submitOrder()
  67. {
  68. $params = (new ServiceOrderValidate())->post()->goCheck('add', [
  69. 'user_id' => $this->userId,
  70. 'terminal' => $this->userInfo['terminal'],
  71. 'user_info' => $this->userInfo
  72. ]);
  73. Log::write(json_encode($params,JSON_UNESCAPED_UNICODE));
  74. $result = ServiceOrderLogic::submitOrder($params);
  75. if (false === $result) {
  76. return $this->fail(ServiceOrderLogic::getError());
  77. }
  78. return $this->data($result);
  79. }
  80. /**
  81. * 取消订单
  82. * @return \think\response\Json
  83. */
  84. public function cancelOrder()
  85. {
  86. $params = (new ServiceOrderValidate())->post()->goCheck('cancel', [
  87. 'user_id' => $this->userId,
  88. 'terminal' => $this->userInfo['terminal'],
  89. 'user_info' => $this->userInfo
  90. ]);
  91. $result = ServiceOrderLogic::cancelOrder($params);
  92. if (false === $result) {
  93. return $this->fail(ServiceOrderLogic::getError());
  94. }
  95. // 订单取消通知【给用户】
  96. $res = event('Notice', [
  97. 'scene_id' => 122,
  98. 'params' => [
  99. 'user_id' => $params['user_id']
  100. ]
  101. ]);
  102. return $this->success('取消成功', [], 1, 1);
  103. }
  104. /**
  105. * 确认报价订单
  106. * @return \think\response\Json
  107. */
  108. public function confirmOrder()
  109. {
  110. $params = (new ServiceOrderValidate())->post()->goCheck('price', [
  111. 'user_id' => $this->userId,
  112. 'user_info' => $this->userInfo
  113. ]);
  114. $result = ServiceOrderLogic::confirmOrder($params);
  115. if (false === $result) {
  116. return $this->fail(ServiceOrderLogic::getError());
  117. }
  118. return $this->success('已确认报价,工程师即将开始服务', [], 1, 1);
  119. }
  120. /**
  121. * 用户确认服务完成
  122. * @return \think\response\Json
  123. */
  124. public function confirmServiceFinish()
  125. {
  126. $params = (new ServiceOrderValidate())->post()->goCheck('finished', [
  127. 'user_id' => $this->userId,
  128. 'user_info' => $this->userInfo
  129. ]);
  130. $result = ServiceOrderLogic::confirmServiceFinish($params);
  131. if (false === $result) {
  132. return $this->fail(ServiceOrderLogic::getError());
  133. }
  134. // 订单完成通知【给用户】
  135. $res = event('Notice', [
  136. 'scene_id' => 120,
  137. 'params' => [
  138. 'user_id' => $params['user_id']
  139. ]
  140. ]);
  141. return $this->success('已确认服务完成', [], 1, 1);
  142. }
  143. /**
  144. * 提交尾款订单
  145. * @return \think\response\Json
  146. */
  147. public function submitFinalOrder()
  148. {
  149. $params = (new ServiceOrderValidate())->post()->goCheck('final', [
  150. 'user_id' => $this->userId,
  151. 'terminal' => $this->userInfo['terminal'],
  152. 'user_info' => $this->userInfo
  153. ]);
  154. Log::write(json_encode($params,JSON_UNESCAPED_UNICODE));
  155. $result = ServiceOrderLogic::submitFinalOrder($params);
  156. if (false === $result) {
  157. return $this->fail(ServiceOrderLogic::getError());
  158. }
  159. return $this->data($result);
  160. }
  161. /**
  162. * 重置订单优惠券
  163. * @return \think\response\Json
  164. */
  165. public function cancelOrderCoupon()
  166. {
  167. $params = (new ServiceOrderValidate())->post()->goCheck('cancelOrderCoupon', [
  168. 'user_id' => $this->userId,
  169. 'user_info' => $this->userInfo
  170. ]);
  171. $result = ServiceOrderLogic::cancelOrderCoupon($params);
  172. if (false === $result) {
  173. return $this->fail(ServiceOrderLogic::getError());
  174. }
  175. return $this->success('保存成功', [], 1, 1);
  176. }
  177. public function firmOrderLists()
  178. {
  179. return $this->dataLists(new ServiceOrderLists());
  180. }
  181. public function firmOrderSave()
  182. {
  183. $params = (new ServiceOrderValidate())->post()->goCheck('firmOrderSave', [
  184. 'user_id' => $this->userId,
  185. 'user_info' => $this->userInfo
  186. ]);
  187. $result = ServiceOrderLogic::firmOrderSave($params);
  188. if (false === $result) {
  189. return $this->fail(ServiceOrderLogic::getError());
  190. }
  191. return $this->success('保存成功', [], 1, 1);
  192. }
  193. public function isServiceWithin()
  194. {
  195. $params = (new ServiceOrderValidate())->get()->goCheck('LonLat', [
  196. 'user_id' => $this->userId,
  197. 'user_info' => $this->userInfo
  198. ]);
  199. $result = ServiceOrderLogic::isService($params);
  200. if (false === $result) {
  201. return $this->fail(ServiceOrderLogic::getError(),['is_service'=>0]);
  202. }
  203. return $this->success('服务区域内', ['is_service'=>1], 1, 1);
  204. }
  205. }