diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java index 99356df..7587e0d 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/OrderService.java @@ -177,6 +177,32 @@ public class OrderService { }else if (exists != null && skuWithBLOBs.getSuit() != null && skuWithBLOBs.getSuit() != 0 && number < skuWithBLOBs.getSuit()){ redisUtil.deleteByKey(RedisCst.ORDER_CART_EXISTS + cartId); delCart(masterId, cartId); + if (StrUtil.isNotBlank(cart.getOrderId()) && StrUtil.isNotBlank(cart.getTableId())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") + .eq(TbCashierCart::getShopId, cart.getShopId()); + + TbCashierCart finalCart = cart; + queryWrapper.eq(TbCashierCart::getTableId, cart.getTableId()) + .and(query -> { + query.eq(TbCashierCart::getMasterId, finalCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + }) + .and(query -> { + query.eq(TbCashierCart::getOrderId, finalCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); + + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + + if (list.isEmpty()) { + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(finalCart.getOrderId())); + } + } return Result.success(CodeEnum.SUCCESS, masterId); } @@ -497,6 +523,32 @@ public class OrderService { cashierCartMapper.deleteByPrimaryKey(cartId); + if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .notIn(TbCashierCart::getStatus, "final", "refund", "closed", "pending") + .eq(TbCashierCart::getShopId, cashierCart.getShopId()); + + queryWrapper.eq(TbCashierCart::getTableId, cashierCart.getTableId()) + .and(query -> { + query.eq(TbCashierCart::getMasterId, cashierCart.getMasterId()) + .or() + .isNull(TbCashierCart::getMasterId) + .or() + .eq(TbCashierCart::getMasterId, ""); + }) + .and(query -> { + query.eq(TbCashierCart::getOrderId, cashierCart.getOrderId()) + .or() + .isNull(TbCashierCart::getOrderId); + }); + + List list = mpCashierCartMapper.selectList(queryWrapper.eq(TbCashierCart::getStatus, "create")); + + if (list.isEmpty()) { + tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId())); + } + } + return Result.success(CodeEnum.SUCCESS); } @@ -1082,13 +1134,10 @@ public class OrderService { List productSkuPos = new ArrayList<>(); List skuIds = new ArrayList<>(); ArrayList ids = new ArrayList<>(); - StringBuilder proName = new StringBuilder(); for (TbCashierCart cashierCart : list) { -// if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) { -// orderId = Integer.parseInt(cashierCart.getOrderId()); -// proName.append(cashierCart.getName()).append(","); -// continue; -// } + if (StrUtil.isNotBlank(cashierCart.getOrderId())) { + orderId = Integer.parseInt(cashierCart.getOrderId()); + } ids.add(cashierCart.getId()); // 数量减少, 返还库存