1.打票增加代客下单重复校验

This commit is contained in:
2024-08-21 17:00:08 +08:00
parent 6f3dcca911
commit da54cc30b7

View File

@@ -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;
}