From 2f521d5dc99dfe794b637c64613e921f0dee38b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 19 Nov 2024 09:40:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=B4=E6=97=B6=E8=8F=9C=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashier/dto/shoptable/UpdateCartDTO.java | 2 - .../impl/shopimpl/TbShopTableServiceImpl.java | 39 ++++++++++++------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateCartDTO.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateCartDTO.java index db07564f..e5497eef 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateCartDTO.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/shoptable/UpdateCartDTO.java @@ -10,9 +10,7 @@ import javax.validation.constraints.NotNull; public class UpdateCartDTO { @NotNull private Integer cartId; - @NotNull private Integer skuId; - @NotNull private Integer productId; @NotNull private Integer shopId; 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 4396fa49..471b2c1c 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 @@ -429,23 +429,30 @@ public class TbShopTableServiceImpl implements TbShopTableService { cashierCartRepository.deleteById(updateCartDTO.getCartId()); return null; } - TbProductSku productSku = productMapper.selectSkuByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getSkuId()); - TbProduct product = productMapper.selectByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getProductId()); - if (product == null || productSku == null) { - throw new BadRequestException("商品不存在或已下架, id: " + updateCartDTO.getSkuId()); + + TbProduct product = null; + if (updateCartDTO.getProductId() != null && updateCartDTO.getSkuId() != null) { + TbProductSku productSku = productMapper.selectSkuByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getSkuId()); + product = productMapper.selectByIdAndShopId(updateCartDTO.getShopId(), updateCartDTO.getProductId()); + if (product == null || productSku == null) { + throw new BadRequestException("商品不存在或已下架, id: " + updateCartDTO.getSkuId()); + } + + tbCashierCart.setCoverImg(product.getCoverImg()); + tbCashierCart.setIsSku(product.getTypeEnum()); + tbCashierCart.setName(product.getName()); + tbCashierCart.setProductId(String.valueOf(product.getId())); + tbCashierCart.setSalePrice(productSku.getSalePrice()); + tbCashierCart.setSkuId(productSku.getId().toString()); + tbCashierCart.setCategoryId(product.getCategoryId()); } - tbCashierCart.setCoverImg(product.getCoverImg()); + tbCashierCart.setCreatedAt(System.currentTimeMillis()); - tbCashierCart.setIsSku(product.getTypeEnum()); - tbCashierCart.setName(product.getName()); - tbCashierCart.setProductId(String.valueOf(product.getId())); - tbCashierCart.setSalePrice(productSku.getSalePrice()); - tbCashierCart.setSkuId(productSku.getId().toString()); tbCashierCart.setTradeDay(DateUtils.getDay()); tbCashierCart.setStatus("create"); - tbCashierCart.setSalePrice(productSku.getSalePrice()); - tbCashierCart.setTotalAmount(new BigDecimal(updateCartDTO.getNum()).multiply(productSku.getSalePrice())); + tbCashierCart.setSalePrice(tbCashierCart.getSalePrice()); + tbCashierCart.setTotalAmount(new BigDecimal(updateCartDTO.getNum()).multiply(tbCashierCart.getSalePrice())); tbCashierCart.setNote(updateCartDTO.getNote()); if (updateCartDTO.getIsPack() != null) { @@ -453,7 +460,9 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setPackFee(BigDecimal.ZERO); tbCashierCart.setTotalAmount(tbCashierCart.getSalePrice().multiply(BigDecimal.valueOf(updateCartDTO.getNum()))); } else { - tbCashierCart.setPackFee(new BigDecimal(updateCartDTO.getNum()).multiply(product.getPackFee())); + if (product != null) { + tbCashierCart.setPackFee(new BigDecimal(updateCartDTO.getNum()).multiply(product.getPackFee())); + } tbCashierCart.setTotalAmount(tbCashierCart.getSalePrice().multiply(BigDecimal.valueOf(updateCartDTO.getNum())) .add(tbCashierCart.getPackFee())); } @@ -467,7 +476,6 @@ public class TbShopTableServiceImpl implements TbShopTableService { tbCashierCart.setTotalNumber(updateCartDTO.getNum()); tbCashierCart.setNumber(updateCartDTO.getNum()); - tbCashierCart.setCategoryId(product.getCategoryId()); tbCashierCartMapper.updateById(tbCashierCart); if (tbCashierCart.getOrderId() != null && StrUtil.isNotBlank(updateCartDTO.getNote())) { @@ -1707,7 +1715,8 @@ public class TbShopTableServiceImpl implements TbShopTableService { private void updateCartAndStock(List newAddCashierCarts, TbOrderInfo orderInfo, ShopEatTypeInfoDTO shopEatTypeInfoDTO) { // 更新购物车记录的orderId for (TbCashierCart cashierCart : newAddCashierCarts) { - if (!"-999".equals(cashierCart.getProductId())) { + // 不为座位费临时菜扣除库存 + if (!"-999".equals(cashierCart.getProductId()) && cashierCart.getIsTemporary() != null && cashierCart.getIsTemporary() == 0) { TbProduct product = productMapper.selectById(cashierCart.getProductId()); TbProductSku productSku = productSkuRepository.findById(Integer.valueOf(cashierCart.getSkuId())).orElse(null);