TOrderController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. package com.ylx.web.controller.massage;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.ylx.common.annotation.Log;
  5. import com.ylx.common.core.domain.R;
  6. import com.ylx.common.enums.BusinessType;
  7. import com.ylx.common.exception.ServiceException;
  8. import com.ylx.common.utils.StringUtils;
  9. import com.ylx.common.utils.poi.ExcelUtil;
  10. import com.ylx.massage.domain.MaTechnician;
  11. import com.ylx.massage.domain.TOrder;
  12. import com.ylx.massage.enums.Enumproject;
  13. import com.ylx.massage.enums.OrderStatusEnum;
  14. import com.ylx.massage.enums.OrderStatusEnumVo;
  15. import com.ylx.massage.service.TOrderService;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestMethod;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import javax.annotation.Resource;
  24. import javax.servlet.http.HttpServletResponse;
  25. import java.math.BigDecimal;
  26. import java.time.LocalDateTime;
  27. import java.util.List;
  28. import java.util.Optional;
  29. /**
  30. * 订单表 前端控制器
  31. */
  32. @RestController
  33. @Slf4j
  34. @Api(tags = {"订单管理"})
  35. @RequestMapping("api/order/v1")
  36. public class TOrderController {
  37. @Resource
  38. private TOrderService orderService;
  39. /**
  40. * 添加申请
  41. *
  42. * @param order
  43. * @return
  44. */
  45. @Log(title = "新增订单", businessType = BusinessType.INSERT)
  46. @ApiOperation("添加申请")
  47. @RequestMapping(value = "wx/add", method = RequestMethod.POST)
  48. public R<TOrder> add(@RequestBody TOrder order) {
  49. try {
  50. return R.ok(orderService.addOrder(order));
  51. } catch (ServiceException s) {
  52. log.error(s.toString());
  53. return R.fail(s.getMessage());
  54. }
  55. catch (Exception e) {
  56. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  57. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  58. return R.fail("系统异常");
  59. }
  60. }
  61. /**
  62. * 支付订单
  63. *
  64. * @param order
  65. * @return
  66. */
  67. @ApiOperation("支付订单")
  68. @Log(title = "支付订单", businessType = BusinessType.UPDATE)
  69. @RequestMapping(value = "wx/pay", method = RequestMethod.POST)
  70. public R pay(@RequestBody TOrder order) {
  71. try {
  72. return orderService.payOrder(order);
  73. } catch (ServiceException s) {
  74. log.error(s.toString());
  75. return R.fail(s.getMessage());
  76. } catch (Exception e) {
  77. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  78. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  79. return R.fail("系统异常");
  80. }
  81. }
  82. /**
  83. * 取消订单
  84. *
  85. * @param order
  86. * @return
  87. */
  88. @Log(title = "取消订单", businessType = BusinessType.UPDATE)
  89. @ApiOperation("取消订单")
  90. @RequestMapping(value = "wx/cancle", method = RequestMethod.POST)
  91. public R cancle(@RequestBody TOrder order) {
  92. try {
  93. return R.ok(orderService.cancle(order));
  94. } catch (ServiceException s) {
  95. log.error(s.toString());
  96. return R.fail(s.getMessage());
  97. } catch (Exception e) {
  98. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  99. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  100. return R.fail("系统异常");
  101. }
  102. }
  103. /**
  104. * 拒绝订单
  105. *
  106. * @param order
  107. * @return
  108. */
  109. @Log(title = "拒绝订单", businessType = BusinessType.UPDATE)
  110. @ApiOperation("拒绝订单")
  111. @RequestMapping(value = "wx/jujue", method = RequestMethod.POST)
  112. public R jujue(@RequestBody TOrder order) {
  113. try {
  114. return R.ok(orderService.jujue(order));
  115. } catch (ServiceException s) {
  116. log.error(s.toString());
  117. return R.fail(s.getMessage());
  118. } catch (Exception e) {
  119. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  120. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  121. return R.fail("系统异常");
  122. }
  123. }
  124. /**
  125. * 接受订单
  126. *
  127. * @param order
  128. * @return
  129. */
  130. @Log(title = "接受订单", businessType = BusinessType.UPDATE)
  131. @ApiOperation("接受订单")
  132. @RequestMapping(value = "wx/takingOrders", method = RequestMethod.POST)
  133. public R takingOrders(@RequestBody TOrder order) {
  134. try {
  135. orderService.takingOrders(order);
  136. return R.ok();
  137. } catch (ServiceException s) {
  138. log.error(s.toString());
  139. return R.fail(s.getMessage());
  140. } catch (Exception e) {
  141. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  142. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  143. return R.fail("系统异常");
  144. }
  145. }
  146. @Log(title = "出发", businessType = BusinessType.UPDATE)
  147. @ApiOperation("出发")
  148. @RequestMapping(value = "wx/depart", method = RequestMethod.POST)
  149. public R depart(@RequestBody TOrder order) {
  150. try {
  151. orderService.depart(order);
  152. return R.ok();
  153. } catch (ServiceException s) {
  154. log.error(s.toString());
  155. return R.fail(s.getMessage());
  156. } catch (Exception e) {
  157. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  158. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  159. return R.fail("系统异常");
  160. }
  161. }
  162. @Log(title = "到达订单位置", businessType = BusinessType.UPDATE)
  163. @ApiOperation("到达订单位置")
  164. @RequestMapping(value = "wx/reach", method = RequestMethod.POST)
  165. public R reach(@RequestBody TOrder order) {
  166. try {
  167. LambdaQueryWrapper<TOrder> wrapper = new LambdaQueryWrapper<>();
  168. wrapper.eq(TOrder::getcId,order.getcId()).eq(TOrder::getnStatus,OrderStatusEnum.DEPART.getCode());
  169. order.setnStatus(OrderStatusEnum.ARRIVED.getCode());
  170. order.setReachTime(LocalDateTime.now());
  171. order.setArrivalLatitude(Optional.ofNullable(order.getArrivalLatitude()).orElse(BigDecimal.ZERO));
  172. order.setArrivalLongitude(Optional.ofNullable(order.getArrivalLongitude()).orElse(BigDecimal.ZERO));
  173. order.setArrivalPhoto(Optional.ofNullable(order.getArrivalPhoto()).orElse(StringUtils.EMPTY));
  174. return R.ok(orderService.update(order,wrapper));
  175. } catch (ServiceException s) {
  176. log.error(s.toString());
  177. return R.fail(s.getMessage());
  178. } catch (Exception e) {
  179. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  180. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  181. return R.fail("系统异常");
  182. }
  183. }
  184. @Log(title = "开始服务", businessType = BusinessType.UPDATE)
  185. @ApiOperation("开始服务")
  186. @RequestMapping(value = "wx/service", method = RequestMethod.POST)
  187. public R service(@RequestBody TOrder order) {
  188. try {
  189. LambdaQueryWrapper<TOrder> wrapper = new LambdaQueryWrapper<>();
  190. wrapper.eq(TOrder::getcId,order.getcId()).eq(TOrder::getnStatus,OrderStatusEnum.ARRIVED.getCode());
  191. order.setnStatus(OrderStatusEnum.SERVICE.getCode());
  192. order.setStartTime(LocalDateTime.now());
  193. return R.ok(orderService.update(order,wrapper));
  194. } catch (ServiceException s) {
  195. log.error(s.toString());
  196. return R.fail(s.getMessage());
  197. } catch (Exception e) {
  198. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  199. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."+stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  200. return R.fail("系统异常");
  201. }
  202. }
  203. /**
  204. * 确认订单
  205. *
  206. * @param order
  207. * @return
  208. */
  209. @Log(title = "确认服务完成", businessType = BusinessType.UPDATE)
  210. @ApiOperation("确认服务完成")
  211. @RequestMapping(value = "wx/confirm", method = RequestMethod.POST)
  212. public R confirm(@RequestBody TOrder order) {
  213. try {
  214. return R.ok(orderService.confirm(order));
  215. } catch (ServiceException s) {
  216. log.error(s.toString());
  217. return R.fail(s.getMessage());
  218. } catch (Exception e) {
  219. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  220. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."
  221. +stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  222. return R.fail("系统异常");
  223. }
  224. }
  225. /**
  226. * 获取订单信息
  227. *
  228. * @param param
  229. * @return
  230. */
  231. @Log(title = "微信获取订单信息", businessType = BusinessType.OTHER)
  232. @ApiOperation("获取订单信息")
  233. @RequestMapping(value = "wx/getOrder", method = RequestMethod.GET)
  234. public R getOrder(Page<TOrder> page, TOrder param) {
  235. Page<TOrder> all = orderService.getAll(page, param);
  236. return R.ok(all);
  237. }
  238. @Log(title = "微信获取订单信息", businessType = BusinessType.EXPORT)
  239. @ApiOperation("导出")
  240. @RequestMapping(value = "wx/export", method = RequestMethod.GET)
  241. public void export(HttpServletResponse response, Page<TOrder> page, TOrder param) {
  242. Page<TOrder> all = orderService.getAll(page, param);
  243. ExcelUtil<TOrder> util = new ExcelUtil<TOrder>(TOrder.class);
  244. util.exportExcel(response, all.getRecords(), "订单");
  245. }
  246. /**
  247. * 分页查询数据
  248. */
  249. @ApiOperation("分页查询数据")
  250. @RequestMapping(value = "/select", method = RequestMethod.GET)
  251. public R selectSp(Page<TOrder> page, TOrder order) {
  252. LambdaQueryWrapper<TOrder> tOrderLambdaQueryWrapper = new LambdaQueryWrapper<>();
  253. tOrderLambdaQueryWrapper.eq(StringUtils.isNotBlank(order.getcJsId()), TOrder::getcJsId, order.getcJsId()).
  254. eq(StringUtils.isNotBlank(order.getcOpenId()), TOrder::getcOpenId, order.getcOpenId()).
  255. eq(null != order.getnStatus(), TOrder::getnStatus, order.getnStatus());
  256. // 获取查询返回结果
  257. Page<TOrder> pageSelect = orderService.page(page, tOrderLambdaQueryWrapper);
  258. return R.ok(pageSelect);
  259. }
  260. @ApiOperation("更新订单数据")
  261. @Log(title = "更新订单数据", businessType = BusinessType.OTHER)
  262. @RequestMapping(value = "/update", method = RequestMethod.POST)
  263. public R update(@RequestBody TOrder borrow) {
  264. try {
  265. return R.ok(orderService.updateAddressById(borrow));
  266. } catch (ServiceException s) {
  267. log.error(s.toString());
  268. return R.fail(s.getMessage());
  269. } catch (Exception e) {
  270. StackTraceElement stackTraceElement= e.getStackTrace()[0];
  271. log.error("系统出错,错误信息:"+ e +" at "+stackTraceElement.getClassName()+"."
  272. +stackTraceElement.getMethodName()+":"+stackTraceElement.getLineNumber());
  273. return R.fail("系统异常");
  274. }
  275. }
  276. @ApiOperation("删除数据")
  277. @RequestMapping(value = "/del", method = RequestMethod.POST)
  278. public R del(@RequestBody TOrder borrow) {
  279. return R.ok(orderService.removeById(borrow));
  280. }
  281. @ApiOperation("根据id查询")
  282. @RequestMapping(value = "/getByid", method = RequestMethod.POST)
  283. public R<TOrder> getByid(@RequestBody TOrder borrow) {
  284. return R.ok(orderService.getById(borrow.getcId()));
  285. }
  286. @ApiOperation("订单状态")
  287. @RequestMapping(value = "/getStatus", method = RequestMethod.GET)
  288. public R getStatus() {
  289. List<Enumproject> statusEnum = OrderStatusEnumVo.getStatusEnum();
  290. return R.ok(statusEnum);
  291. }
  292. }