diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/enums/OrderStatusEnums.java b/eladmin-system/src/main/java/cn/ysk/cashier/enums/OrderStatusEnums.java index 3210e758..34d6a451 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/enums/OrderStatusEnums.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/enums/OrderStatusEnums.java @@ -6,7 +6,7 @@ import lombok.Getter; public enum OrderStatusEnums { REFUNDING("refunding"), REFUND("refund"), - CLOSED("closed"); + CLOSED("closed"), CREATE("create"); private final String value; OrderStatusEnums(String value) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java index 4840ffcd..83721100 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopTableServiceImpl.java @@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.config.security.security.TokenProvider; import cn.ysk.cashier.cons.RedisConstant; +import cn.ysk.cashier.cons.TableConstant; import cn.ysk.cashier.cons.rabbit.RabbitConstants; import cn.ysk.cashier.dto.shop.TbShopTableDto; import cn.ysk.cashier.dto.shop.TbShopTableQueryCriteria; @@ -1075,7 +1076,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() .eq(TbCashierCart::getShopId, createOrderDTO.getShopId()) .eq(TbCashierCart::getUseType, createOrderDTO.getUseType()) - .in(TbCashierCart::getStatus, "create") + .in(TbCashierCart::getStatus, "create", "return") .gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime()) .and(q -> q.eq(TbCashierCart::getMasterId, createOrderDTO.getMasterId()).or().isNull(TbCashierCart::getMasterId)); @@ -1096,10 +1097,21 @@ public class TbShopTableServiceImpl implements TbShopTableService { queryWrapper.eq(TbCashierCart::getTableId, createOrderDTO.getTableId()); } - List cashierCarts = cashierCartMapper + List allCashierCarts = cashierCartMapper .selectList(queryWrapper); - if (cashierCarts.isEmpty() || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && cashierCarts.size() < 2)) { + List cashierCarts = new ArrayList<>(); + TbCashierCart seatCart = null; + for (TbCashierCart allCashierCart : allCashierCarts) { + if (TableConstant.CART_SEAT_ID.equals(allCashierCart.getProductId())) { + seatCart = allCashierCart; + }else if (OrderStatusEnums.CREATE.getValue().equals(allCashierCart.getStatus())) { + cashierCarts.add(allCashierCart); + } + } + + if (allCashierCarts.isEmpty() || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart != null && allCashierCarts.size() < 2) + || (shopEatTypeInfoDTO.isNeedSeatFee() && !shopEatTypeInfoDTO.isTakeout() && seatCart == null)) { throw new BadRequestException("购物车为空或未选择餐位费,请先添加商品或选择餐位费"); }