Просмотр исходного кода

修改非当天支付订单序号查询报错问题

codingliang 1 год назад
Родитель
Сommit
18a09bfed7

+ 1 - 2
src/main/java/com/sqx/modules/order/dao/AppOrderDao.java

@@ -3,7 +3,6 @@ package com.sqx.modules.order.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.sqx.modules.order.entity.OrderGoods;
 import com.sqx.modules.order.entity.TbOrder;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -73,7 +72,7 @@ public interface AppOrderDao extends BaseMapper<TbOrder> {
 
     List<TbOrder> selectMakeOrdersList(LocalDateTime minusMinutes);
 
-    List<Long> selectCurrentOrderSequenceByShopId(@Param("shopId") Long shopId);
+    List<Long> selectCurrentOrderSequenceByShopId(@Param("shopId") Long shopId, @Param("payTime") String payTime);
 
     /**
      * 统计用户当天在当前店铺参与某次活动的次数

+ 13 - 11
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -600,7 +600,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 打印小票
             if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
                 // 查询当天店铺所有已支付的订单号,按支付时间排序
-                int sequence = selectCurrentOrderSequenceByShopId(order.getOrderId(), goodsShop.getShopId());
+                int sequence = selectCurrentOrderSequenceByShopId(order, goodsShop.getShopId());
                 order.setCountOrder(sequence);
 
                 // 设置订单商品
@@ -1516,7 +1516,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
 
         // 查询当天店铺所有已支付的订单号,按支付时间排序
-        int sequence = selectCurrentOrderSequenceByShopId(orderId, shopId);
+        int sequence = selectCurrentOrderSequenceByShopId(tbOrder, shopId);
         tbOrder.setCountOrder(sequence);
 
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
@@ -1529,20 +1529,22 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     /**
      * 获取当前店铺当前订单在已支付订单中的序号
-     * @param orderId
-     * @param shopId
+     * @param order 订单信息
+     * @param shopId 店铺id
      * @return
      */
-    private int selectCurrentOrderSequenceByShopId(Long orderId, Long shopId) {
-        List<Long> orderIds = appOrderDao.selectCurrentOrderSequenceByShopId( shopId);
+    private int selectCurrentOrderSequenceByShopId(TbOrder order, Long shopId) {
+        if (Integer.valueOf(Constant.YES).equals(order.getIsPay())) {
+            List<Long> orderIds = appOrderDao.selectCurrentOrderSequenceByShopId(shopId, order.getPayTime());
 
-        int index = orderIds.indexOf(orderId);
+            int index = orderIds.indexOf(order.getOrderId());
 
-        if (index == -1) {
-            throw new RuntimeException("当前订单不在已支付订单列表中");
+            if (index != -1) {
+                return index + 1;
+            }
         }
 
-        return index + 1;
+        return -1;
     }
 
     @Transactional
@@ -1609,7 +1611,7 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
                     int sequence = -1;
                     // 查询当天店铺所有已支付的订单号,按支付时间排序
                     try {
-                        sequence = selectCurrentOrderSequenceByShopId(tbOrder.getOrderId(), shopId);
+                        sequence = selectCurrentOrderSequenceByShopId(tbOrder, shopId);
                     } catch (Exception e) {
                         log.warn("打印非当天已支付订单,订单id:{}", order.getOrderId());
                     }

+ 1 - 1
src/main/resources/mapper/order/OrderMapper.xml

@@ -408,7 +408,7 @@
         where
               is_pay = 1
           and shop_id = #{shopId}
-          and date(pay_time) = date(now())
+          and date(pay_time) = date(#{payTime})
         order by pay_time asc
     </select>