package com.sqx.modules.callBack.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.sqx.common.constant.RedisKey; import com.sqx.common.exception.SqxException; import com.sqx.modules.app.entity.UserEntity; import com.sqx.modules.app.service.UserService; import com.sqx.modules.callBack.dto.CallBackDto; import com.sqx.modules.errand.entity.TbIndent; import com.sqx.modules.errand.service.TbIndentService; import com.sqx.modules.order.entity.TbOrder; import com.sqx.modules.order.service.AppOrderService; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @RestController @RequestMapping("/back") @Slf4j public class CallBackController { @Autowired TbIndentService tbIndentService; @Autowired UserService userService; @Autowired AppOrderService appOrderService; /** * 回调 */ @PostMapping("/open") 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) { UserEntity userEntity = userService.queryByPhone(tel); if (ObjectUtils.isEmpty(userEntity)) { log.info("不存在该手机号的骑手:" + tel); return "success"; } // 获取骑手订单 TbIndent tbIndent = tbIndentService.findIndentByIndentNumber(order_no); if (ObjectUtils.isEmpty(tbIndent)) { log.info("不存在该配送订单:" + order_no); return "success"; } // 获取订单id TbOrder tbOrder = appOrderService.getOne(new QueryWrapper().eq("order_number", order_no)); if (ObjectUtils.isEmpty(tbOrder)) { log.info("不存在该订单:" + order_no); return "success"; } // 状态 if ("4".equals(state)) {//接单 log.info("骑手接单:" + order_no); tbOrder.setStatus(3); appOrderService.updateOrder(tbOrder); tbIndentService.orderIndentReceiving(userEntity.getUserId(), tbOrder.getOrderId()+""); } else if ("5".equals(state)) {//取餐 log.info("骑手取餐:" + order_no); tbIndentService.riderBuyGoods(tbIndent); } else if ("6".equals(state)) {//完成订单 log.info("骑手完成订单:" + order_no); tbIndentService.finalizeOrder(userEntity.getUserId(), tbIndent); } return "success"; } }