diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java index bd5f754..997b3b4 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/rabbit/PrintMechineConsumer.java @@ -262,7 +262,7 @@ public class PrintMechineConsumer { tbOrderDetails.parallelStream().forEach(it -> { // 已经打印过的菜品不再打印 - if ("postPay".equals(orderInfo.getUseType()) && isPrint(it.getId())) { + if ("postPay".equals(orderInfo.getUseType()) && isPrint(it)) { return; } String categoryId = tbProductMapper.selectByPrimaryKey(Integer.valueOf(it.getProductId())).getCategoryId(); @@ -300,15 +300,16 @@ public class PrintMechineConsumer { /** * 判断商品是否已打票 - * @param orderDetailId 订单详情id * @return true 已打 false 未打 */ - private boolean isPrint(Integer orderDetailId) { - Object info = redisUtils.getMessage(RedisCst.ORDER_PRINT + orderDetailId); + private boolean isPrint(TbOrderDetail orderDetail) { + String key = RedisCst.ORDER_PRINT + orderDetail.getProductId() + ":" + orderDetail.getProductSkuId(); + String info = redisUtils.getMessage(key); + redisUtils.saveMessage(key, String.valueOf(orderDetail.getNum()), 60 * 60 * 24); if (info == null) { - redisUtils.saveMessage(RedisCst.ORDER_PRINT + orderDetailId, "1", 60 * 60 * 24); return false; } + orderDetail.setNum(orderDetail.getNum() - Integer.parseInt(info)); return true; }