Przeglądaj źródła

自动取消接口添加反查逻辑

夏文涛 1 rok temu
rodzic
commit
947a796d1c

BIN
lib/rht-pay-1.2.jar


+ 1 - 1
pom.xml

@@ -178,7 +178,7 @@
         <dependency>
             <groupId>io.jsonwebtoken</groupId>
             <artifactId>jjwt</artifactId>
-            <version>0.9.0</version>
+            <version>0.9.1</version>
         </dependency>
         <dependency>
             <groupId>net.sf.json-lib</groupId>

+ 276 - 160
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -13,6 +13,10 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryRequestBean;
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryResponseBean;
+import com.github.wxpay.sdk.WXPay;
 import com.sqx.common.constant.RedisKey;
 import com.sqx.common.exception.SqxException;
 import com.sqx.common.sms.SmsSendResult;
@@ -66,6 +70,8 @@ import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.order.entity.OrderGoods;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.service.AppOrderService;
+import com.sqx.modules.pay.config.WXConfig;
+import com.sqx.modules.pay.config.WechatPayConfig;
 import com.sqx.modules.pay.controller.app.AliPayController;
 import com.sqx.modules.pay.dao.PayDetailsDao;
 import com.sqx.modules.pay.dto.GetPayParamDTO;
@@ -73,7 +79,9 @@ import com.sqx.modules.pay.dto.PayOrderDTO;
 import com.sqx.modules.pay.entity.PayDetails;
 import com.sqx.modules.pay.enums.PayChannelEnum;
 import com.sqx.modules.pay.enums.PaySceneEnum;
+import com.sqx.modules.pay.enums.PayStateEnums;
 import com.sqx.modules.pay.service.NewPayService;
+import com.sqx.modules.pay.service.PayDetailsService;
 import com.sqx.modules.pay.service.WxErrService;
 import com.sqx.modules.pay.vo.AliPayTransactionsParam;
 import com.sqx.modules.pay.vo.PayTransactionsVO;
@@ -123,6 +131,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     @Autowired
     private UserService userService;
     @Autowired
+    private AppOrderService orderService;
+    @Autowired
+    private PayDetailsService payDetailsService;
+    @Autowired
     private OrderGoodsDao orderGoodsDao;
     @Autowired
     private GoodsSkuDao goodsSkuDao;
@@ -181,19 +193,20 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     @Resource
     private RedissonClient redissonClient;
 
+    private final static String RHT_PAY_BASE_URL = "https://api.ekbuyclub.com";
+
     private static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern(DateUtils.TIME_PATTERN1);
 
     @Override
     public int updateOrderPrint(Long orderId) {
         UpdateWrapper wrapper = new UpdateWrapper<>();
         wrapper.eq("order_id", orderId);
-        wrapper.set("is_print",1);
+        wrapper.set("is_print", 1);
         int result = appOrderDao.update(null, wrapper);
         return result;
     }
 
 
-
     @Override
     public void insertOrder(Long userId, Long shopId, Long goodsId, Integer num, Long skuId, String skuMessage, Integer orderType) {
         // 判断当前时间是否在店铺营业范围内
@@ -298,6 +311,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 判断店铺当前时间是否营业时间范围内
+     *
      * @param shopId 店铺id
      * @return boolean
      */
@@ -386,7 +400,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     @Override
     public Result deleteOrder(Long userId, Long orderId) {
         TbOrder order = appOrderDao.selectById(orderId);
-        if(order.getIsPay()==1){
+        if (order.getIsPay() == 1) {
             return Result.error("拼单已经支付,无法取消!");
         }
         appOrderDao.delete(new QueryWrapper<TbOrder>().eq("user_id", userId).eq("order_id", orderId));
@@ -533,7 +547,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 检查活动信息
-     * @param activityId 活动id
+     *
+     * @param activityId  活动id
      * @param parentOrder 订单信息
      */
     private void checkActivity(Long activityId, TbOrder parentOrder) {
@@ -570,14 +585,14 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         Long orderId = tbOrder.getOrderId();
         List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
                 new QueryWrapper<OrderGoods>()
-                    .eq("order_id", orderId));
-        for(int a = 0; a< orderGoodsList.size(); a++){
+                        .eq("order_id", orderId));
+        for (int a = 0; a < orderGoodsList.size(); a++) {
             Integer goodsNum = orderGoodsList.get(a).getGoodsNum();
             Long goodsId = orderGoodsList.get(a).getGoodsId();
             GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
                     new QueryWrapper<GoodsShopRelevancy>()
-                        .eq("shop_id", shopId1)
-                        .eq("goods_id", goodsId));
+                            .eq("shop_id", shopId1)
+                            .eq("goods_id", goodsId));
             GoodsShopRelevancy goodsShopRelevancy1 = new GoodsShopRelevancy();
             goodsShopRelevancy1.setId(goodsShopRelevancy.getId());
 
@@ -613,7 +628,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         boolean reservationFlag = StrUtil.equals(order.getReservationFlag(), Constant.YES);
 
         // 店铺自动接单且当前订单不是预约订单
-        if(autoAccept && !reservationFlag) {
+        if (autoAccept && !reservationFlag) {
             // 6制作中
             order.setStatus(6);
             order.setShopReceivingTime(currentTimeStr);
@@ -690,7 +705,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                         // 设置店铺名称
                         order.setShopName(goodsShop.getShopName());
 
-                        FeiYunUtils.print(goodsShop.getSnCode(), null, order,null);
+                        FeiYunUtils.print(goodsShop.getSnCode(), null, order, null);
                     } catch (Exception e) {
                         log.error("订单:{},小票打印失败,失败原因:{}", order.getOrderId(), e);
                     }
@@ -710,7 +725,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             if (ObjectUtil.isNull(order)) {
                 throw new SqxException("无效的订单id");
             }
-            if(order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0){
+            if (order.getAutoSendOrder() != null && order.getAutoSendOrder() == 0) {
                 throw new SqxException("当前订单为自动派单,不能手动完成!");
             }
 
@@ -819,6 +834,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 用户钱包新增消费记录
+     *
      * @param order 订单信息
      */
     private void addConsumeRecordInUserMoneyDetail(TbOrder order) {
@@ -832,10 +848,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 发送订单接单消息
-     * @param order 订单信息
-     * @param goodsShop 店铺信息
+     *
+     * @param order        订单信息
+     * @param goodsShop    店铺信息
      * @param mpPushConfig 小程序推送设置
-     * @param userEntity 用户信息
+     * @param userEntity   用户信息
      */
     private void sendOrderAcceptMessage(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
         List<String> msgList = new ArrayList<>();
@@ -852,10 +869,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 添加订单消息并推送消息
-     * @param order 订单信息
-     * @param goodsShop 店铺信息
+     *
+     * @param order        订单信息
+     * @param goodsShop    店铺信息
      * @param mpPushConfig 小程序推送设置
-     * @param userEntity 用户信息
+     * @param userEntity   用户信息
      */
     private void addOrderMessageAndPush(TbOrder order, GoodsShop goodsShop, CommonInfo mpPushConfig, UserEntity userEntity) {
         String currentDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
@@ -890,31 +908,32 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         userMsgList.add(order.getOrderCode());
         userMsgList.add(goodsShop.getShopName());
         userMsgList.add(currentDateStr);
-        SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), mpPushConfig.getValue(), userMsgList,1);
+        SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), mpPushConfig.getValue(), userMsgList, 1);
 
         // 无个推
         // userService.pushToSingle("下单成功", "亲爱的用户您好,您已下单成功,请等待商家接单!", userEntity.getClientid());
 
         // 商户端消息推送
-        List<String> shopMsgShopList=new ArrayList<>();
+        List<String> shopMsgShopList = new ArrayList<>();
         shopMsgShopList.add(order.getOrderNumber());
         shopMsgShopList.add(order.getPayMoney().toString());
         shopMsgShopList.add(order.getPayTime());
         shopMsgShopList.add("生意来了,立即去接单>");
-        if(StringUtils.isNotEmpty(shopUser.getShopOpenId())){
-            SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate.getValue(), shopMsgShopList,7);
+        if (StringUtils.isNotEmpty(shopUser.getShopOpenId())) {
+            SenInfoCheckUtil.sendShopMsg(shopUser.getShopOpenId(), shopTemplate.getValue(), shopMsgShopList, 7);
         }
-        if(StringUtils.isNotEmpty(shopUser.getShopClientId())){
-            userService.pushToSingleShop("下单成功","生意来了,立即去接单>",shopUser.getShopClientId());
+        if (StringUtils.isNotEmpty(shopUser.getShopClientId())) {
+            userService.pushToSingleShop("下单成功", "生意来了,立即去接单>", shopUser.getShopClientId());
         }
     }
 
     /**
      * 更新优惠券状态 更新订单状态
+     *
      * @param order 订单信息
      */
     private void updateCouponState(TbOrder order) {
-        if(order.getCouponId()!=null){
+        if (order.getCouponId() != null) {
             TbCouponUser tbCouponUser = new TbCouponUser();
             tbCouponUser.setId(order.getCouponId());
             tbCouponUser.setStatus(1);
@@ -924,6 +943,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 生成取餐号
+     *
      * @return 订单号
      */
     private String generateOrderCode() {
@@ -931,7 +951,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         TbOrder preOrder = orderGoodsDao.selectByPayTime(format);
 
         String orderCode;
-        if(preOrder == null) {
+        if (preOrder == null) {
             String a = new SimpleDateFormat("yyyyMMdd").format(new Date());
             orderCode = a + "001";
         } else {
@@ -944,7 +964,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 计算店铺收益 店铺订单收益=订单应付金额+订单使用的优惠券金额-跑腿费用
-     * @param order 订单信息
+     *
+     * @param order     订单信息
      * @param goodsShop 店铺信息
      */
     private void calcShopIncome(TbOrder order, GoodsShop goodsShop) {
@@ -965,6 +986,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 校验订单优惠券信息
+     *
      * @param order 订单信息
      * @return 使用的优惠券金额
      */
@@ -979,23 +1001,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         // 订单应付金额
         BigDecimal payMoney = order.getPayMoney();
 
-        if(!tbCouponUser.getUserId().equals(userId)){
+        if (!tbCouponUser.getUserId().equals(userId)) {
             throw new SqxException("优惠券与登录用户不匹配");
         }
-        if(tbCouponUser.getStatus()!=0){
+        if (tbCouponUser.getStatus() != 0) {
             throw new SqxException("该优惠券已失效");
         }
-        if(tbCouponUser.getMinMoney().doubleValue() > payMoney.doubleValue()){
+        if (tbCouponUser.getMinMoney().doubleValue() > payMoney.doubleValue()) {
             throw new SqxException("订单金额不足,无法使用该优惠券");
         }
-        if(tbCouponUser.getShopId() != 0 && !tbCouponUser.getShopId().equals(order.getShopId())){
+        if (tbCouponUser.getShopId() != 0 && !tbCouponUser.getShopId().equals(order.getShopId())) {
             throw new SqxException("优惠券使用错误,请刷新后重试");
         }
 
         BigDecimal couponUserMoney = tbCouponUser.getMoney();
         payMoney = payMoney.subtract(couponUserMoney);
         //如果使用红包后,订单价格小于0,则改为0.01元
-        if(payMoney.doubleValue() <= 0){
+        if (payMoney.doubleValue() <= 0) {
             payMoney = new BigDecimal("0.01");
         }
 
@@ -1012,21 +1034,22 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 校验配送范围、配送费
-     * @param order 订单信息
+     *
+     * @param order     订单信息
      * @param addressId 用户收货地址id
      * @param goodsShop 店铺信息
      */
     private void checkAddress(TbOrder order, Long addressId, GoodsShop goodsShop) {
         // 如果时外卖订单
         if (order.getOrderType() == 2) {
-            if(addressId == null){
+            if (addressId == null) {
                 throw new SqxException("请填写地址地址!");
             }
             Address address = addressService.getById(addressId);
 
             // 计算用户位置到商户位置的距离,并判断是否在配送范围内
             double distance = DistanceUtil.distance(goodsShop.getShopLat(), goodsShop.getShopLng(), address.getLat(), address.getLng());
-            if(distance > goodsShop.getDistributionDistance()){
+            if (distance > goodsShop.getDistributionDistance()) {
                 throw new SqxException("超出商家配送范围,无法点餐!");
             }
 
@@ -1041,8 +1064,8 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
             // 店铺开启了配送费满减
             if (enableFullReductionFlag == 0) {
-                if(shopErrandMoney.doubleValue() > 0
-                        && order.getPayMoney().doubleValue() < exemptMinMoney.doubleValue()){
+                if (shopErrandMoney.doubleValue() > 0
+                        && order.getPayMoney().doubleValue() < exemptMinMoney.doubleValue()) {
                     // 跑腿费加入订单总金额
                     order.setPayMoney(order.getPayMoney().add(shopErrandMoney));
                     order.setErrandMoneyIsShop("本单未达到商家满减金额,跑腿费由用户承担");
@@ -1064,11 +1087,11 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             order.setErrandMoney(shopErrandMoney);
 
             // 判断订单金额是否大于最低起送金额
-            if(goodsShop.getMinimumDelivery() == null){
+            if (goodsShop.getMinimumDelivery() == null) {
                 goodsShop.setMinimumDelivery(BigDecimal.valueOf(0));
             }
 
-            if(order.getPayMoney().doubleValue() < goodsShop.getMinimumDelivery().doubleValue()){
+            if (order.getPayMoney().doubleValue() < goodsShop.getMinimumDelivery().doubleValue()) {
                 throw new SqxException("订单金额未满足最低起送金额!");
             }
 
@@ -1093,6 +1116,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 计算商品总价格和商品总打包费
+     *
      * @param parentOrder 订单信息
      */
     private void calcOrderPriceAndPack(TbOrder parentOrder) {
@@ -1103,10 +1127,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         // 商品总价格 初始为0,商品总价格包含总打包费
         BigDecimal payMoney = BigDecimal.valueOf(0);
         List<TbOrder> orderList = selectOrderByParentId(parentOrder.getOrderId());
-        if(orderList.size() == 0){
+        if (orderList.size() == 0) {
             throw new SqxException("订单不存在,请刷新后重试!");
         }
-        for(int i = 0; i < orderList.size(); i++) {
+        for (int i = 0; i < orderList.size(); i++) {
             Long orderId = orderList.get(i).getOrderId();
             List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
                     new QueryWrapper<OrderGoods>()
@@ -1150,23 +1174,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         // 获取订单商品信息
         List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(
                 new QueryWrapper<OrderGoods>()
-                    .eq("order_id", orderId));
-        for(int b = 0; b < orderGoodsList.size(); b++){
+                        .eq("order_id", orderId));
+        for (int b = 0; b < orderGoodsList.size(); b++) {
             OrderGoods orderGoods = orderGoodsList.get(b);
             Long goodsId = orderGoods.getGoodsId();
             Goods goods = goodsDao.selectById(goodsId);
-            if(goods == null || goods.getStatus().equals(1)) {
+            if (goods == null || goods.getStatus().equals(1)) {
                 // TODO ??感觉有问题??
                 orderGoodsDao.deleteById(orderGoods.getId());
-                throw new SqxException("商品:"+orderGoods.getGoodsName()+",不存在,请刷新后重试!");
+                throw new SqxException("商品:" + orderGoods.getGoodsName() + ",不存在,请刷新后重试!");
             }
 
             GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(
                     new QueryWrapper<GoodsShopRelevancy>()
-                        .eq("goods_id", goodsId)
-                        .eq("shop_id", order.getShopId()));
+                            .eq("goods_id", goodsId)
+                            .eq("shop_id", order.getShopId()));
             int i = goodsShopRelevancyDao.selectGoodsCount(orderId, goodsId);
-            if(goodsShopRelevancy.getInventory() < i){
+            if (goodsShopRelevancy.getInventory() < i) {
                 throw new SqxException("库存不足");
             }
         }
@@ -1360,17 +1384,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 //        pages.setOptimizeCountSql(false);
 //        pages.setSearchCount(false);
 //        pages.setTotal()
-        if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
-            queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
+            queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
-            queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
+            queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
-            queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
+            queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
-            queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
+            queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
         }
         IPage<TbOrder> tbOrderIPage = appOrderDao.selectAllOrderAdmin(pages, queryDto);
         for (int i = 0; i < tbOrderIPage.getRecords().size(); i++) {
@@ -1384,17 +1408,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     @Override
     public ExcelData excelAllOrderAdmin(OrderQueryDto queryDto) {
-        if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
-            queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
+            queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
-            queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
+            queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
-            queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
+            queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
-            queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
+            queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
         }
         List<TbOrder> tbOrderIPage = appOrderDao.excelAllOrderAdmin(queryDto);
 //        for (int i = 0; i < tbOrderIPage.size(); i++) {
@@ -1405,46 +1429,64 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         ExcelData data = new ExcelData();
         data.setName("订单列表");
         List<String> titles = new ArrayList();
-        titles.add("编号");titles.add("下单用户");titles.add("用户头像");titles.add("手机号");
-        titles.add("商铺信息"); titles.add("订单类型");titles.add("配送信息");titles.add("骑手昵称");
-        titles.add("骑手电话"); titles.add("订单号");titles.add("内容");titles.add("商品总价(元)");
+        titles.add("编号");
+        titles.add("下单用户");
+        titles.add("用户头像");
+        titles.add("手机号");
+        titles.add("商铺信息");
+        titles.add("订单类型");
+        titles.add("配送信息");
+        titles.add("骑手昵称");
+        titles.add("骑手电话");
+        titles.add("订单号");
+        titles.add("内容");
+        titles.add("商品总价(元)");
         titles.add("优惠金额(元)");
         titles.add("参与活动名称");
         titles.add("活动优惠金额(元)");
-        titles.add("打包费(元/个 具体按照数量计算)");titles.add("跑腿费(元)");titles.add("支付金额(元)");
-        titles.add("跑腿费说明"); titles.add("订单备注");titles.add("支付时间");titles.add("支付方式");
-        titles.add("取餐号"); titles.add("状态");titles.add("是否转单");titles.add("骑手站点");
-        titles.add("商铺类型名称");titles.add("优惠券类型");
+        titles.add("打包费(元/个 具体按照数量计算)");
+        titles.add("跑腿费(元)");
+        titles.add("支付金额(元)");
+        titles.add("跑腿费说明");
+        titles.add("订单备注");
+        titles.add("支付时间");
+        titles.add("支付方式");
+        titles.add("取餐号");
+        titles.add("状态");
+        titles.add("是否转单");
+        titles.add("骑手站点");
+        titles.add("商铺类型名称");
+        titles.add("优惠券类型");
 
         data.setTitles(titles);
         List<List<Object>> rows = new ArrayList();
-        for(TbOrder order:tbOrderIPage){
+        for (TbOrder order : tbOrderIPage) {
             List<Object> row = new ArrayList();
             row.add(order.getOrderId());
             row.add(order.getUserName());
             row.add(order.getAvatar());
             row.add(order.getPhone());
-            StringBuffer stringBuffer=new StringBuffer();
-            stringBuffer.append("店铺名称:").append(StringUtils.isNotBlank(order.getShopName())?order.getShopName():"")
-                    .append("\n").append("店铺电话:").append(StringUtils.isNotBlank(order.getShopPhone())?order.getShopPhone():"")
-                    .append("\n").append("店铺地址:").append(StringUtils.isNotBlank(order.getDetailedAddress())?order.getDetailedAddress():"");
+            StringBuffer stringBuffer = new StringBuffer();
+            stringBuffer.append("店铺名称:").append(StringUtils.isNotBlank(order.getShopName()) ? order.getShopName() : "")
+                    .append("\n").append("店铺电话:").append(StringUtils.isNotBlank(order.getShopPhone()) ? order.getShopPhone() : "")
+                    .append("\n").append("店铺地址:").append(StringUtils.isNotBlank(order.getDetailedAddress()) ? order.getDetailedAddress() : "");
             row.add(stringBuffer.toString());
-            if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==1){
+            if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 1) {
                 row.add("到店取餐");
-            }else if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==2){
+            } else if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 2) {
                 row.add("外卖配送");
-            }else if(order.getOrderTypeExtra()!=null && order.getOrderTypeExtra()==3){
+            } else if (order.getOrderTypeExtra() != null && order.getOrderTypeExtra() == 3) {
                 row.add("商家配送");
-            }else{
+            } else {
                 row.add("");
             }
-            if(StringUtils.isNotEmpty(order.getAddress())){
+            if (StringUtils.isNotEmpty(order.getAddress())) {
                 JSONObject jsonObject = JSONObject.parseObject(order.getAddress());
 
-                stringBuffer=new StringBuffer();
+                stringBuffer = new StringBuffer();
                 stringBuffer.append("订餐人:").append(jsonObject.getString("userName")).append("\n").append("订餐人电话:").append(jsonObject.getString("userPhone")).append("\n").append("订餐地址:").append(jsonObject.getString("addressDetail"));
                 row.add(stringBuffer.toString());
-            }else{
+            } else {
                 row.add("-");
             }
             row.add(order.getRiderNickName());
@@ -1474,42 +1516,42 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             row.add(order.getRemark());
             row.add(order.getPayTime());
             //支付方式  1微信支付  2余额支付  3支付宝支付
-            if(order.getPayType()!=null && order.getPayType()==1){
+            if (order.getPayType() != null && order.getPayType() == 1) {
                 row.add("微信支付");
-            }else if(order.getPayType()!=null && order.getPayType()==2){
+            } else if (order.getPayType() != null && order.getPayType() == 2) {
                 row.add("余额支付");
-            }else if(order.getPayType()!=null && order.getPayType()==3){
+            } else if (order.getPayType() != null && order.getPayType() == 3) {
                 row.add("支付宝支付");
-            }else{
+            } else {
                 row.add("");
             }
 
             row.add(order.getOrderCode());
             //订单状态 0待结算 1待支付 2直接购买(未支付) 7商家待接单 8商家拒绝接单 6制作中  3待取餐/派送中 4已完成 5已取消
-            if(order.getStatus()!=null && order.getStatus()==0){
+            if (order.getStatus() != null && order.getStatus() == 0) {
                 row.add("待结算");
-            }else if(order.getStatus()!=null && order.getStatus()==1){
+            } else if (order.getStatus() != null && order.getStatus() == 1) {
                 row.add("待支付");
-            }else if(order.getStatus()!=null && order.getStatus()==2){
+            } else if (order.getStatus() != null && order.getStatus() == 2) {
                 row.add("直接购买(未支付)");
-            }else if(order.getStatus()!=null && order.getStatus()==3){
+            } else if (order.getStatus() != null && order.getStatus() == 3) {
                 row.add("待取餐/派送中");
-            }else if(order.getStatus()!=null && order.getStatus()==4){
+            } else if (order.getStatus() != null && order.getStatus() == 4) {
                 row.add("已完成");
-            }else if(order.getStatus()!=null && order.getStatus()==5){
+            } else if (order.getStatus() != null && order.getStatus() == 5) {
                 row.add("已取消");
-            }else if(order.getStatus()!=null && order.getStatus()==6){
+            } else if (order.getStatus() != null && order.getStatus() == 6) {
                 row.add("制作中");
-            }else if(order.getStatus()!=null && order.getStatus()==7){
+            } else if (order.getStatus() != null && order.getStatus() == 7) {
                 row.add("商家待接单");
-            }else if(order.getStatus()!=null && order.getStatus()==8){
+            } else if (order.getStatus() != null && order.getStatus() == 8) {
                 row.add("商家拒绝接单");
-            }else{
+            } else {
                 row.add("");
             }
-            if(order.getIsRider()!=null && order.getIsRider()==1){
+            if (order.getIsRider() != null && order.getIsRider() == 1) {
                 row.add("是");
-            }else{
+            } else {
                 row.add("");
             }
             row.add(order.getStationName());
@@ -1558,7 +1600,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                     .eq("order_id", records.get(i).getOrderId()));
             tbOrderIPage.getRecords().get(i).setOrderGoodsList(orderGoodsList);
             //判断骑手是否接单 status13为待骑手接单
-            if(records.get(i).getOrderTypeExtra()==2&&"2".equals(records.get(i).getIndentState())){
+            if (records.get(i).getOrderTypeExtra() == 2 && "2".equals(records.get(i).getIndentState())) {
                 tbOrderIPage.getRecords().get(i).setStatus(13);
             }
         }
@@ -1586,12 +1628,12 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder.getCouponId());
             tbOrder.setCouponMoney(tbCouponUser.getMoney());
         }
-        GoodsShop goodsShop=goodsShopDao.selectById(tbOrder.getShopId());
-        if(goodsShop!=null){
+        GoodsShop goodsShop = goodsShopDao.selectById(tbOrder.getShopId());
+        if (goodsShop != null) {
             tbOrder.setShopName(goodsShop.getShopName());
             tbOrder.setShopPhone(goodsShop.getPhone());
         }
-        if(tbOrder.getOrderTypeExtra()==2&&"2".equals(tbOrder.getIndentState())){
+        if (tbOrder.getOrderTypeExtra() == 2 && "2".equals(tbOrder.getIndentState())) {
             tbOrder.setStatus(13);
         }
         List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", tbOrder.getOrderId()));
@@ -1623,7 +1665,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     public Result updateGoodsNum(Long orderGoodsId, Integer type, Integer num, Long shopId) {
         // type = 1增加商品数  = 2 减少商品数
         OrderGoods orderGoods = orderGoodsDao.selectById(orderGoodsId);
-        if(orderGoods==null){
+        if (orderGoods == null) {
             return Result.error("系统繁忙,请稍后再试!");
         }
         GoodsShopRelevancy goodsShopRelevancy = goodsShopRelevancyDao.selectOne(new QueryWrapper<GoodsShopRelevancy>()
@@ -1757,7 +1799,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
             if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
                 if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder,null);
+                    FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder, null);
                 }
             }
         } else if (order.getStatus() == 3) {
@@ -1817,9 +1859,9 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             if (tbOrder.getStatus().equals(4)) {
                 return Result.success();
             }
-            log.info("操作完成订单4:"+order.getOrderId());
+            log.info("操作完成订单4:" + order.getOrderId());
             Result result = this.accomplishOrder(order.getOrderId());
-            if("500".equals(String.valueOf(result.get("code")))){
+            if ("500".equals(String.valueOf(result.get("code")))) {
                 return result;
             }
             //管理端完成订单,则消息通知用户
@@ -1941,6 +1983,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 微信支付退款
+     *
      * @param payDetails 支付订单
      */
     private boolean wechatPayRefund(PayDetails payDetails) {
@@ -1971,24 +2014,23 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         RLock lock = redissonClient.getLock(String.format(RedisKey.FINISH_ORDER_LOCK, orderId));
         lock.lock();
         try {
-            return accomplishOrders(orderId,1);
+            return accomplishOrders(orderId, 1);
         } finally {
             lock.unlock();
         }
     }
 
     /**
-     *
      * @param orderId
-     * @param type 1用户操作 2自动任务超时直接完成订单
+     * @param type    1用户操作 2自动任务超时直接完成订单
      * @return
      */
     @Transactional
     @Override
     public Result accomplishOrders(Long orderId, Integer type) {
-        log.info("订单id:"+orderId+",类型:"+type);
+        log.info("订单id:" + orderId + ",类型:" + type);
         TbOrder tbOrder = appOrderDao.selectById(orderId);
-        log.info("订单状态 :"+tbOrder.getStatus());
+        log.info("订单状态 :" + tbOrder.getStatus());
         if (tbOrder.getStatus().equals(4)) {
             log.info("订单id【{}】,订单状态为【4】,属于已完成状态,直接返回", orderId);
             log.info("订单id【{}】,accomplishOrders逻辑执行完成", orderId);
@@ -1997,7 +2039,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
         if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder().equals(0)) {
-            if (type==1){
+            if (type == 1) {
                 if (indent == null || !"4".equals(indent.getIndentState())) {
                     log.info("订单id【{}】,请等待骑手送达!", orderId);
                     return Result.error("请等待骑手送达!");
@@ -2038,13 +2080,13 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         BigDecimal errandMoney = BigDecimal.ZERO;
         if (tbOrder.getOrderType() != 1) {
             //判断是否达到商家满减  如果达到商家满减 跑腿费让商家承担
-            if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder()==0){
+            if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 0) {
                 errandMoney = tbOrder.getErrandMoney();
                 /*if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
                     sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
                 }*/
                 sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
-            }else{
+            } else {
                 sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
                 errandMoney = tbOrder.getErrandMoney();
             }
@@ -2057,7 +2099,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
         // 商家配送短信服务费
         BigDecimal smsSendMoney = BigDecimal.ZERO;
-        if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder() == 1) {
+        if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
             // 查询短信发送结果
             if (ObjectUtil.isNotNull(indent)) {
                 TbIndentSmsSendLog smsSendLog = smsSendLogService.getSendSuccessByOrderId(indent.getIndentId());
@@ -2084,12 +2126,12 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             activityDiscountAmount = activityPartRecord.getDiscountAmount();
         }
 
-        if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder()==1){
+        if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
             //如果达到商家满减 则商家不加上配送费
-            if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
-                shopMoney=shopMoney.add(tbOrder.getErrandMoney());
+            if (!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())) {
+                shopMoney = shopMoney.add(tbOrder.getErrandMoney());
             }
-        }else{
+        } else {
             /*if("本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
                 shopMoney=shopMoney.subtract(tbOrder.getErrandMoney());
             }*/
@@ -2133,33 +2175,33 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             contentBuffer.append("(本单为商家优惠券,商家补贴)");
         }
         //计算积分
-        String flag=commonInfoService.findOne(436).getValue();
-        if("1".equals(flag)){
+        String flag = commonInfoService.findOne(436).getValue();
+        if ("1".equals(flag)) {
             try {
                 UserIntegralDetails userIntegralDetails = new UserIntegralDetails();
-                String rules=commonInfoService.findOne(437).getValue();
+                String rules = commonInfoService.findOne(437).getValue();
                 //积分过期规则 -1永不过期
 //                String overdue= commonInfoService.findOne(438).getValue();
-                String maxIntegral= commonInfoService.findOne(439).getValue();
-                String[] split = rules.split(",",5);
-                int am1= Integer.parseInt(split[0]);
+                String maxIntegral = commonInfoService.findOne(439).getValue();
+                String[] split = rules.split(",", 5);
+                int am1 = Integer.parseInt(split[0]);
                 int av1 = Integer.parseInt(split[1]);
-                int mx= Integer.parseInt(split[2]);
+                int mx = Integer.parseInt(split[2]);
                 int am2 = Integer.parseInt(split[3]);
-                int av2= Integer.parseInt(split[4]);
-                double amount= tbOrder.getPayMoney().doubleValue();
-                int intergral=0;
-                if (amount>am1){
-                    if(amount<mx){
-                        intergral=intergral+(int)(amount/am1)*av1;
-                    } else if (amount>=mx+am2){
-                        int count= (int) ((amount-mx)/am2);
-                        intergral=intergral+(mx/am1)*av1+count*av2;
-                    }else{
-                        intergral=intergral+(mx/am1)*av1;
+                int av2 = Integer.parseInt(split[4]);
+                double amount = tbOrder.getPayMoney().doubleValue();
+                int intergral = 0;
+                if (amount > am1) {
+                    if (amount < mx) {
+                        intergral = intergral + (int) (amount / am1) * av1;
+                    } else if (amount >= mx + am2) {
+                        int count = (int) ((amount - mx) / am2);
+                        intergral = intergral + (mx / am1) * av1 + count * av2;
+                    } else {
+                        intergral = intergral + (mx / am1) * av1;
                     }
                 }
-                int max =Math.min(Integer.parseInt(maxIntegral), intergral);
+                int max = Math.min(Integer.parseInt(maxIntegral), intergral);
                 userIntegralDetails.setContent("完成订单获得积分");
                 userIntegralDetails.setClassify(4);
                 userIntegralDetails.setType(1);
@@ -2176,7 +2218,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                 //添加积分
                 userIntegralDao.addUserIntegral(max, tbOrder.getUserId());
             } catch (NumberFormatException e) {
-                log.error("订单{}====积分入账异常{}",orderId, e.getMessage());
+                log.error("订单{}====积分入账异常{}", orderId, e.getMessage());
             }
         }
 
@@ -2321,7 +2363,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
 
     @Override
-    public Result userCancelOrder(Long orderId){
+    public Result userCancelOrder(Long orderId) {
         RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
         lock.lock();
         try {
@@ -2481,7 +2523,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     }
 
     @Override
-    public Result adminCancelOrder(Long orderId){
+    public Result adminCancelOrder(Long orderId) {
         RLock lock = redissonClient.getLock(String.format(RedisKey.CANCEL_ORDER_LOCK, orderId));
         lock.lock();
         try {
@@ -2495,7 +2537,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     public Result adminCancelOrders(Long orderId) {
         String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         TbOrder tbOrder = appOrderDao.selectById(orderId);
-        if(tbOrder.getStatus()==5 || tbOrder.getStatus() == 8){
+        if (tbOrder.getStatus() == 5 || tbOrder.getStatus() == 8) {
             return Result.success();
         }
         if (tbOrder.getIsPay() == 0) {
@@ -2669,10 +2711,10 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     }
 
     @Override
-    public Result selectOrder(Long userId, Integer orderId,Integer page, Integer limit) {
+    public Result selectOrder(Long userId, Integer orderId, Integer page, Integer limit) {
         HashMap hashMap = new HashMap();
         Page<TbOrder> pages = new Page(page, limit);
-        IPage<TbOrder> tbOrderList = baseMapper.selectOrderPage(pages, userId,orderId);
+        IPage<TbOrder> tbOrderList = baseMapper.selectOrderPage(pages, userId, orderId);
         BigDecimal money = new BigDecimal(0);
         ArrayList list = new ArrayList();
         for (int i = 0; i < tbOrderList.getRecords().size(); i++) {
@@ -2703,14 +2745,87 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                 return Result.error("该订单不存在");
             }
             Integer status = tbOrder.getStatus();
-            if (status!=0) {
+            if (status != 0) {
                 return Result.error("当前订单不是待结算订单");
             }
-            tbOrder.setStatus(5);
-            baseMapper.updateById(tbOrder);
+
+            //region
+            WXConfig config = new WXConfig();
+//            当前都是小程序支付
+            config.setAppId(commonInfoService.findOne(74).getValue());
+            //微信商户key
+            config.setKey(commonInfoService.findOne(250).getValue());
+            //微信商户号mchId
+            config.setMchId(commonInfoService.findOne(251).getValue());
+            WXPay wxpay = new WXPay(config);
+
+            WechatPayConfig wechatMchConfig = WechatPayConfig.builder()
+                    .appId(commonInfoService.findOne(45).getValue())
+                    .mchId(commonInfoService.findOne(434).getValue())
+                    .mchKey(commonInfoService.findOne(435).getValue())
+                    .h5Url(commonInfoService.findOne(19).getValue())
+                    .build();
+
+            Integer state = tbOrder.getState();
+            if (0 == state) {
+//                    状态为待支付需要调用支付系统订单查询接口判断支付系统对应的订单状态
+                Map<String, String> data = new HashMap<>();
+                String orderNumber = tbOrder.getOrderNumber();
+                //商户订单号
+                data.put("out_trade_no", orderNumber);
+                Map<String, String> response = wxpay.orderQuery(data);
+                String trade_state = response.get("trade_state");
+                //SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)
+                if (ObjectUtils.isNotEmpty(trade_state)) {
+                    if ("NOTPAY".equals(trade_state)) {
+                        tbOrder.setStatus(5);
+                    } else if ("SUCCESS".equals(trade_state)) {
+                        tbOrder.setPayType(1);
+                        orderService.updateOrderAfterPaySuccess(tbOrder);
+                    }
+                } else {
+                    RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), RHT_PAY_BASE_URL);
+                    QrcodeQueryRequestBean qqrb = new QrcodeQueryRequestBean();
+                    qqrb.setTraceno(orderNumber);// 商户流水号
+                    QrcodeQueryResponseBean response2 = qrcodePay.query(qqrb);
+                    String respCode = response2.getRespCode();
+                    log.info("超时任务处理订单【{}】查询支付结果,支付通知信息:{}", orderNumber, response2);
+//                        0未支付,1支付成功,2支付失败,4退款中,5退款成功,6退款失败
+                    if ("0".equals(respCode)) {
+                        tbOrder.setStatus(5);
+                    } else if ("1".equals(respCode)) {
+                        PayDetails payDetails = payDetailsService.getByOrderNo(orderNumber);
+                        if (!ObjectUtil.isNull(payDetails)) {
+                            payDetails.setState(PayStateEnums.PAY_SUCCESS.getStateCode());
+                            payDetails.setPayTime(response2.getTransDate() + " " + response2.getTransTime());
+                            payDetails.setTradeNo(response2.getChannelOrderno());
+                            payDetails.setRemark("Scheduled RHT PAY SUCCESS");
+                            payDetailsService.updateDetail(payDetails);
+                        } else {
+                            log.error("超时任务处理订单【{}】支付成功,但未获取到支付订单!支付通知信息:{}", orderNumber, response2);
+                        }
+                        tbOrder.setPayType(1);
+                        orderService.updateOrderAfterPaySuccess(tbOrder);
+                    }
+
+                }
+            } else {
+                tbOrder.setStatus(5);
+            }
+
+            //list为空不要执行
+            if (tbOrder.getStatus().intValue() == 5) {
+                baseMapper.updateById(tbOrder);
+            }
+
+            //endregion
             return Result.success();
+        } catch (Exception e) {
+            log.error("超时订单自动取消任务运行失败失败原因:{}", e.getMessage());
+            return Result.error("自动取消订单异常");
         } finally {
             lock.unlock();
+
         }
     }
 
@@ -2718,17 +2833,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
     public PayTransactionsVO getTransactionsParam(Long userId, PayOrderDTO payOrderDTO) {
         TbOrder order = prepareOrder(userId, payOrderDTO);
         Integer status = order.getStatus();
-        if (status==0) {
+        if (status == 0) {
             //            获取超时时间
             Long timeOut = order.getTimeOut();
             if (ObjectUtils.isNotEmpty(timeOut)) {
                 long time = new Date().getTime();
 
-                if (timeOut<time) {
+                if (timeOut < time) {
                     throw new SqxException("订单已过期!");
                 }
             }
-        }else {
+        } else {
 
             // 支付时,订单状态改为 0
             order.setStatus(0);
@@ -2736,7 +2851,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
 //            超时时间15分钟
             Date date = new Date();
-            long time1 = date.getTime()+15*60*1000;
+            long time1 = date.getTime() + 15 * 60 * 1000;
             order.setTimeOut(time1);
         }
         // 更新订单
@@ -2749,7 +2864,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 设置支付方式 1表示微信支付、4或5表示支付宝支付
             Integer type = payOrderDTO.getType();
 
-           // 微信支付
+            // 微信支付
             if (type == 1) {
                 UserEntity userEntity = userService.queryByUserId(userId);
 
@@ -2779,17 +2894,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     @Override
     public Result selectAllOrderTotalPrice(OrderQueryDto queryDto) {
-        if(org.springframework.util.StringUtils.hasText(queryDto.getEndTime())){
-            queryDto.setEndTime(queryDto.getEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getEndTime())) {
+            queryDto.setEndTime(queryDto.getEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())){
-            queryDto.setPayEndTime(queryDto.getPayEndTime()+" 23:59:59");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayEndTime())) {
+            queryDto.setPayEndTime(queryDto.getPayEndTime() + " 23:59:59");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getStartTime())){
-            queryDto.setStartTime(queryDto.getStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getStartTime())) {
+            queryDto.setStartTime(queryDto.getStartTime() + " 00:00:00");
         }
-        if(org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())){
-            queryDto.setPayStartTime(queryDto.getPayStartTime()+" 00:00:00");
+        if (org.springframework.util.StringUtils.hasText(queryDto.getPayStartTime())) {
+            queryDto.setPayStartTime(queryDto.getPayStartTime() + " 00:00:00");
         }
         BigDecimal totalPrice = appOrderDao.selectAllOrderTotalPrice(queryDto);
 
@@ -2803,6 +2918,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 更新订单状态和支付顺序
+     *
      * @param order 订单信息
      */
     private void updateOrderStatusAndSequence(TbOrder order) {