Преглед на файлове

订单表新增orderSequence字段

codingliang преди 1 година
родител
ревизия
f2d17c4b1a

+ 2 - 2
src/main/java/com/sqx/modules/errand/service/impl/TbIndentServiceImpl.java

@@ -248,8 +248,8 @@ public class TbIndentServiceImpl extends ServiceImpl<TbIndentDao, TbIndent> impl
         tbIndent.setShopLat(goodsShop.getShopLat());
 
         // 新增,订单支付顺序号
-        if (ObjectUtil.isNotNull(order.getCountOrder())) {
-            tbIndent.setOrderPaySequence(String.valueOf(order.getCountOrder()));
+        if (ObjectUtil.isNotNull(order.getOrderSequence())) {
+            tbIndent.setOrderPaySequence(order.getOrderSequence());
         }
 
         tbIndent.setShopAddressDetail(goodsShop.getDetailedAddress());

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

@@ -96,4 +96,6 @@ public interface AppOrderDao extends BaseMapper<TbOrder> {
      * @return 未完成订单数
      */
     int countUnFinishByShopId(@Param("shopId") Long shopId);
+
+    int countCurDayPayByShopId(@Param("shopId") Long shopId, @Param("payTime") String payTime);
 }

+ 3 - 0
src/main/java/com/sqx/modules/order/entity/TbOrder.java

@@ -144,6 +144,9 @@ public class TbOrder implements Serializable {
     @ApiModelProperty("期待送达时间")
     private Date expectDeliveryTime;
 
+    @ApiModelProperty("订单顺序号(当天)")
+    private String orderSequence;
+
     @ApiModelProperty("商铺名")
     @TableField(exist = false)
     private String shopName;

+ 0 - 2
src/main/java/com/sqx/modules/order/service/AppOrderService.java

@@ -18,8 +18,6 @@ public interface AppOrderService extends IService<TbOrder> {
 
     Result print(Long orderId);
 
-    int selectCurrentOrderSequenceByShopId(TbOrder order, Long shopId);
-
     Result updateOrder(TbOrder order);
 
     Result deleteOrderList(List<Integer> orderId);

+ 30 - 38
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -574,6 +574,9 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             order.setStatus(7);
         }
 
+        // 计算订单顺序号
+        order.setOrderSequence(String.format("%04d", selectCurrentOrderSequenceByShopId(order, order.getShopId())));
+
         // 更新订单状态
         updateById(order);
 
@@ -588,9 +591,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
         // 已接单状态的订单生成跑腿订单
         if (order.getStatus() == 6) {
-            int i = selectCurrentOrderSequenceByShopId(order, order.getShopId());
-            order.setCountOrder(i);
-
             // 如果是外卖订单,则生成一个跑腿的订单
             tbIndentService.insertIndent(order);
 
@@ -602,10 +602,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         if (order.getStatus() == 6 || reservationFlag) {
             // 打印小票
             if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-                // 查询当天店铺所有已支付的订单号,按支付时间排序
-                int sequence = selectCurrentOrderSequenceByShopId(order, goodsShop.getShopId());
-                order.setCountOrder(sequence);
-
                 // 设置订单商品
                 List<OrderGoods> orderGoodsList = orderGoodsDao.selectList(new QueryWrapper<OrderGoods>().eq("order_id", order.getOrderId()));
                 order.setOrderGoodsList(orderGoodsList);
@@ -1523,10 +1519,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         // 查询店铺信息
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
 
-        // 查询当天店铺所有已支付的订单号,按支付时间排序
-        int sequence = selectCurrentOrderSequenceByShopId(tbOrder, shopId);
-        tbOrder.setCountOrder(sequence);
-
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
             FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
         } else {
@@ -1535,27 +1527,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         return Result.success();
     }
 
-    /**
-     * 获取当前店铺当前订单在已支付订单中的序号
-     * @param order 订单信息
-     * @param shopId 店铺id
-     * @return
-     */
-    @Override
-    public 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(order.getOrderId());
-
-            if (index != -1) {
-                return index + 1;
-            }
-        }
-
-        return -1;
-    }
-
     @Transactional
     public Result updateOrders(TbOrder order) {
         String format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
@@ -1579,8 +1550,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             //商家接单
             order.setShopReceivingTime(format1);
 
-            int i = selectCurrentOrderSequenceByShopId(tbOrder, tbOrder.getShopId());
-            tbOrder.setCountOrder(i);
             // 生成跑腿订单
             tbIndentService.insertIndent(tbOrder);
 
@@ -1619,8 +1588,6 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
             // 如果是预约订单,则不再打印小票(订单支付的时候已经打印过了)
             if (!StrUtil.equals(tbOrder.getReservationFlag(), Constant.YES)) {
                 if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
-                    int sequence = selectCurrentOrderSequenceByShopId(tbOrder, shopId);
-                    tbOrder.setCountOrder(sequence);
                     FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
                 }
             }
@@ -2455,6 +2422,31 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         }
     }
 
-
-
+    /**
+     * 获取当前店铺当前订单在已支付订单中的序号
+     * @param order 订单信息
+     * @param shopId 店铺id
+     * @return 支付顺序
+     */
+    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(order.getOrderId());
+        //
+        //     if (index != -1) {
+        //         return index + 1;
+        //     }
+        //
+        //     int count = appOrderDao.countCurDayPayByShopId(shopId);
+        //
+        //     return count + 1;
+        // }
+        //
+        // return -1;
+
+        int count = appOrderDao.countCurDayPayByShopId(shopId, order.getPayTime());
+
+        return count + 1;
+    }
 }

+ 4 - 4
src/main/java/com/sqx/modules/utils/fieYun/FeiYunUtils.java

@@ -719,7 +719,7 @@ public class FeiYunUtils {
                 }
 
                 if (bplatformNameType_start != null) {
-                    stringBuilder.append(bplatformNameType_start).append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云商").append(bplatformNameType_end);
+                    stringBuilder.append(bplatformNameType_start).append("#").append(tbOrder.getOrderSequence()).append("-").append("墨轩云商").append(bplatformNameType_end);
                 }
                 if (bshopName_start != null) {
                     stringBuilder.append(bshopName_start).append(tbOrder.getShopName()).append(bshopName_end);
@@ -806,7 +806,7 @@ public class FeiYunUtils {
 
                         case "platform_name":
                             if (isCheck == 1) {
-                                goodStringBuilder.append(start.toString()).append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云商").append(end.toString());
+                                goodStringBuilder.append(start.toString()).append("#").append(tbOrder.getOrderSequence()).append("-").append("墨轩云商").append(end.toString());
                             }
                             break;
                         case "shop_name":
@@ -1092,7 +1092,7 @@ public class FeiYunUtils {
                             break;
                         case "platform_name":
                             if (isCheck == 1) {
-                                payStringBuilder.append(start.toString()).append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云商").append(end.toString());
+                                payStringBuilder.append(start.toString()).append("#").append(tbOrder.getOrderSequence()).append("-").append("墨轩云商").append(end.toString());
                             }
                             break;
                         case "shop_name":
@@ -1316,7 +1316,7 @@ public class FeiYunUtils {
                         case "platform_name":
 
                             if (isCheck == 1) {
-                                userStringBuilder.append(start.toString()).append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云商").append(end.toString());
+                                userStringBuilder.append(start.toString()).append("#").append(tbOrder.getOrderSequence()).append("-").append("墨轩云商").append(end.toString());
                             }
                             break;
                         case "shop_name":

+ 11 - 0
src/main/resources/mapper/order/OrderMapper.xml

@@ -452,4 +452,15 @@
         where shop_id = #{shopId} and status in (6, 3)
     </select>
 
+    <select id="countCurDayPayByShopId" resultType="java.lang.Integer">
+        select
+            count(order_id)
+        from
+            tb_order
+        where
+            is_pay = 1
+          and shop_id = #{shopId}
+          and date(pay_time) = date(#{payTime})
+    </select>
+
 </mapper>