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 fcfe737c..bb60c48c 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 @@ -926,9 +926,26 @@ public class TbShopTableServiceImpl implements TbShopTableService { .multiply(removeCartDTO.getNum())); } + ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(cashierCart.getShopId(), cashierCart.getTableId()); + checkTakeOutEmptyAndClear(cashierCart, shopEatTypeInfoDTO); } + /** + * 检查订单购物车是否为空并删除订单 + */ + private void checkTakeOutEmptyAndClear(TbCashierCart cashierCart, ShopEatTypeInfoDTO shopEatTypeInfoDTO) { + if (!TableConstant.OrderInfo.UseType.TAKEOUT.equalsVals(cashierCart.getUseType())) { + return; + } + List cashierCarts = mpCashierCartService.selectByShopEatTypeAndOrderId(shopEatTypeInfoDTO, cashierCart.getMasterId(), cashierCart.getOrderId() == null ? null : cashierCart.getOrderId(), false, TableConstant.OrderInfo.Status.CREATE); + if (cashierCarts.isEmpty() && cashierCart.getOrderId() != null) { + mpOrderDetailService.remove(new LambdaQueryWrapper() + .eq(TbOrderDetail::getOrderId, cashierCart.getOrderId())); + mpOrderInfoService.removeById(cashierCart.getOrderId()); + } + } + @Override public void clearCart(ClearCartDTO clearCartDTO) { ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(clearCartDTO.getShopId(), clearCartDTO.getTableId(), clearCartDTO.getUseType()); @@ -3403,7 +3420,7 @@ public class TbShopTableServiceImpl implements TbShopTableService { for (TbCashierCart allCart : allCarts) { if (switchTableDTO.getCartIds().contains(allCart.getId())) { cashierCarts.add(allCart); - }else if (TableConstant.CART_SEAT_ID.equals(allCart.getProductId())) { + } else if (TableConstant.CART_SEAT_ID.equals(allCart.getProductId())) { seatCart = allCart; } }