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

小票打印新增店铺订单序号信息

codingliang 2 лет назад
Родитель
Сommit
8e6ec61ce9

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

@@ -72,5 +72,5 @@ public interface AppOrderDao extends BaseMapper<TbOrder> {
 
     List<TbOrder> selectMakeOrdersList(String minute);
 
-
+    List<Long> selectCurrentOrderSequenceByShopId(@Param("shopId") Long shopId);
 }

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

@@ -63,6 +63,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import java.util.stream.IntStream;
 
 @Service
 @Slf4j
@@ -749,9 +750,17 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
     @Override
     public Result print(Long orderId) {
+        // 查询订单信息
         TbOrder tbOrder = selectOrderByIds(orderId);
         Long shopId = tbOrder.getShopId();
+
+        // 查询店铺信息
         GoodsShop goodsShop = goodsShopDao.selectById(shopId);
+
+        // 查询当天店铺所有已支付的订单号,按支付时间排序
+        int sequence = selectCurrentOrderSequenceByShopId(orderId, shopId);
+        tbOrder.setCountOrder(sequence);
+
         if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
             FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
         } else {
@@ -760,6 +769,24 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         return Result.success();
     }
 
+    /**
+     * 获取当前店铺当前订单在已支付订单中的序号
+     * @param orderId
+     * @param shopId
+     * @return
+     */
+    private int selectCurrentOrderSequenceByShopId(Long orderId, Long shopId) {
+        List<Long> orderIds = appOrderDao.selectCurrentOrderSequenceByShopId( shopId);
+
+        int index = orderIds.indexOf(orderId);
+
+        if (index == -1) {
+            throw new RuntimeException("当前订单不在已支付订单列表中");
+        }
+
+        return index + 1;
+    }
+
     @Transactional
     public Result updateOrders(TbOrder order) {
         String format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
@@ -803,6 +830,9 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
 
             SenInfoCheckUtil.sendMsg(userEntity.getOpenId(), one.getValue(), msgList, 1);
             if (StringUtils.isNotEmpty(goodsShop.getSnCode())) {
+                // 查询当天店铺所有已支付的订单号,按支付时间排序
+                int sequence = selectCurrentOrderSequenceByShopId(tbOrder.getOrderId(), shopId);
+                tbOrder.setCountOrder(sequence);
                 FeiYunUtils.print(goodsShop.getSnCode(), null, tbOrder);
             }
         } else if (order.getStatus() == 3) {

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

@@ -294,6 +294,7 @@ public class FeiYunUtils {
             StringBuilder stringBuilder=new StringBuilder();
             int max = Integer.parseInt(commonInfoService.findOne(420).getValue());
             for (int i=0;i<max;i++){
+                stringBuilder.append("<C>").append("#").append(tbOrder.getCountOrder()).append("-").append("墨轩云").append("</C><BR>");
                 stringBuilder.append("<CB>").append(tbOrder.getShopName()).append("</CB><BR>");
                 if(tbOrder.getOrderType()==1){
                     stringBuilder.append("<BOLD>类型:").append("到店取餐</BOLD><BR>");

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

@@ -401,4 +401,16 @@
         select * from tb_order where status=6 and now() >= DATE_ADD(shop_receiving_time, INTERVAL #{minute} MINUTE )
     </select>
 
+    <select id="selectCurrentOrderSequenceByShopId" resultType="java.lang.Long">
+        select
+               order_id
+        from
+             tb_order
+        where
+              is_pay = 1
+          and shop_id = #{shopId}
+          and date(pay_time) = date(now())
+        order by pay_time asc
+    </select>
+
 </mapper>