CallBackController.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.sqx.modules.callBack.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  5. import com.sqx.common.constant.RedisKey;
  6. import com.sqx.common.exception.SqxException;
  7. import com.sqx.modules.app.entity.UserEntity;
  8. import com.sqx.modules.app.service.UserService;
  9. import com.sqx.modules.callBack.dto.CallBackDto;
  10. import com.sqx.modules.errand.entity.TbIndent;
  11. import com.sqx.modules.errand.service.TbIndentService;
  12. import com.sqx.modules.order.entity.TbOrder;
  13. import com.sqx.modules.order.service.AppOrderService;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.checkerframework.checker.units.qual.A;
  16. import org.redisson.api.RLock;
  17. import org.redisson.api.RedissonClient;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.PostMapping;
  20. import org.springframework.web.bind.annotation.RequestBody;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import javax.annotation.Resource;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.io.BufferedReader;
  27. import java.io.IOException;
  28. import java.io.InputStreamReader;
  29. @RestController
  30. @RequestMapping("/back")
  31. @Slf4j
  32. public class CallBackController {
  33. @Autowired
  34. TbIndentService tbIndentService;
  35. @Autowired
  36. UserService userService;
  37. @Autowired
  38. AppOrderService appOrderService;
  39. /**
  40. * 回调
  41. */
  42. @PostMapping("/open")
  43. public String back(String expire_time, String sign, String trade_no, String order_no, String state, String note, String courier, String longitude, String latitude, String tel, String update_time) {
  44. UserEntity userEntity = userService.queryByPhone(tel);
  45. if (ObjectUtils.isEmpty(userEntity)) {
  46. log.info("不存在该手机号的骑手:" + tel);
  47. return "success";
  48. }
  49. // 获取骑手订单
  50. TbIndent tbIndent = tbIndentService.findIndentByIndentNumber(order_no);
  51. if (ObjectUtils.isEmpty(tbIndent)) {
  52. log.info("不存在该配送订单:" + order_no);
  53. return "success";
  54. }
  55. // 获取订单id
  56. TbOrder tbOrder = appOrderService.getOne(new QueryWrapper<TbOrder>().eq("order_number", order_no));
  57. if (ObjectUtils.isEmpty(tbOrder)) {
  58. log.info("不存在该订单:" + order_no);
  59. return "success";
  60. }
  61. // 状态
  62. if ("4".equals(state)) {//接单
  63. log.info("骑手接单:" + order_no);
  64. tbOrder.setStatus(3);
  65. appOrderService.updateOrder(tbOrder);
  66. tbIndentService.orderIndentReceiving(userEntity.getUserId(), tbOrder.getOrderId()+"");
  67. } else if ("5".equals(state)) {//取餐
  68. log.info("骑手取餐:" + order_no);
  69. tbIndentService.riderBuyGoods(tbIndent);
  70. } else if ("6".equals(state)) {//完成订单
  71. log.info("骑手完成订单:" + order_no);
  72. tbIndentService.finalizeOrder(userEntity.getUserId(), tbIndent);
  73. }
  74. return "success";
  75. }
  76. }