diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index ea5b78e..c078073 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -235,43 +235,47 @@ public class CartService { return Result.fail("参数缺失"); } + boolean isSeatCart = "-999".equals(productId); ShopEatTypeInfoDTO shopEatTypeInfoDTO = shopUtils.checkEatModel(tableId, shopId); String tableCartKey = RedisCst.getTableCartKey(shopId, tableId, userId); - TbProduct tbProduct = productMapper.selectById(Integer.valueOf(productId)); - if (tbProduct == null) { - log.error("该商品不存在 productId:{}", productId); - return Result.fail("该商品不存在"); - } - // 判断商品是否已下架 - TbProductSkuWithBLOBs tbProductSkuWithBLOBs = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId)); - if (tbProductSkuWithBLOBs == null || tbProductSkuWithBLOBs.getIsGrounding().equals(0)) { - rmCart(jsonObject, skuId, tableCartKey); - return Result.fail("商品已下架"); - } - if (tbProduct.getIsStock() == 1) { - // 1:共享库存 0:独立库存 - if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) { - if (tbProduct.getIsPauseSale() == 1) {//是否售罄 - rmCart(jsonObject, skuId, tableCartKey); - return Result.fail("该商品已售罄"); - } - } else { - if (tbProductSkuWithBLOBs.getIsPauseSale() == 1) {//是否售罄 - rmCart(jsonObject, skuId, tableCartKey); - return Result.fail("该商品已售罄"); + TbProductSkuWithBLOBs tbProductSkuWithBLOBs = null; + if (!isSeatCart) { + TbProduct tbProduct = productMapper.selectById(Integer.valueOf(productId)); + if (tbProduct == null) { + log.error("该商品不存在 productId:{}", productId); + return Result.fail("该商品不存在"); + } + // 判断商品是否已下架 + tbProductSkuWithBLOBs = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId)); + if (tbProductSkuWithBLOBs == null || tbProductSkuWithBLOBs.getIsGrounding().equals(0)) { + rmCart(jsonObject, skuId, tableCartKey); + return Result.fail("商品已下架"); + } + if (tbProduct.getIsStock() == 1) { + // 1:共享库存 0:独立库存 + if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) { + if (tbProduct.getIsPauseSale() == 1) {//是否售罄 + rmCart(jsonObject, skuId, tableCartKey); + return Result.fail("该商品已售罄"); + } + } else { + if (tbProductSkuWithBLOBs.getIsPauseSale() == 1) {//是否售罄 + rmCart(jsonObject, skuId, tableCartKey); + return Result.fail("该商品已售罄"); + } } } - } - // 检查耗材 - List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(Integer.valueOf(skuId), Integer.valueOf(shopId), Integer.valueOf(productId)); - if (Objects.nonNull(proskuConList) && !proskuConList.isEmpty()) { - for (TbProskuCon proskuCon : proskuConList) { - if ("1".equals(proskuCon.getStatus())) { - TbConsInfo consInfo = tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); - if ("1".equals(consInfo.getIsCheck())) { - if (N.gt(proskuCon.getSurplusStock(), consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))) { - return Result.fail("商品:".concat(tbProduct.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); + // 检查耗材 + List proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(Integer.valueOf(skuId), Integer.valueOf(shopId), Integer.valueOf(productId)); + if (Objects.nonNull(proskuConList) && !proskuConList.isEmpty()) { + for (TbProskuCon proskuCon : proskuConList) { + if ("1".equals(proskuCon.getStatus())) { + TbConsInfo consInfo = tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId()); + if ("1".equals(consInfo.getIsCheck())) { + if (N.gt(proskuCon.getSurplusStock(), consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))) { + return Result.fail("商品:".concat(tbProduct.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足")); + } } } } @@ -304,7 +308,7 @@ public class CartService { cashierCart.setTotalNumber(buyNum); cashierCart.setNumber(buyNum); cashierCart.setNote(note); - if (type == 0 && isVip == 0 && tbProductSkuWithBLOBs.getSuit() != null + if (tbProductSkuWithBLOBs != null && type == 0 && isVip == 0 && tbProductSkuWithBLOBs.getSuit() != null && tbProductSkuWithBLOBs.getSuit() > 1 && cashierCart.getNumber() < tbProductSkuWithBLOBs.getSuit()) { cashierCartMapper.deleteByPrimaryKey(cashierCart.getId()); continue; @@ -314,7 +318,7 @@ public class CartService { // 设置备注 cashierCart.setNote(note); // 设置打包费 - if (shopEatTypeInfoDTO.isTakeout()) { + if (shopEatTypeInfoDTO.isTakeout() && !isSeatCart) { // 打包费 TbProduct product = productMapper.selectById(Integer.valueOf(productId)); cashierCart.setPackFee(product.getPackFee() != null ? @@ -324,7 +328,8 @@ public class CartService { if (isVip == 1) { cashierCart.setTotalAmount(BigDecimal.ZERO); } else { - cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); + cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()) + .multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee()))); } cashierCart.setUpdatedAt(Instant.now().toEpochMilli()); mpCashierCartMapper.updateById(cashierCart); @@ -1124,7 +1129,12 @@ public class CartService { .set(TbCashierCart::getStatus, "closed")); } String tableCartKey = RedisCst.getTableCartKey(shopId, tableId, userId); - redisUtil.deleteByKey(tableCartKey); + String message = redisUtil.getMessage(tableCartKey); + if (StrUtil.isNotBlank(message)) { + JSONArray jsonArray = JSONObject.parseArray(message); + List collect = jsonArray.stream().filter(info -> "-999".equals(((TbCashierCart) info).getProductId())).collect(Collectors.toList()); + redisUtil.saveMessage(tableCartKey, JSONObject.toJSONString(collect)); + } // redisUtil.saveMessage(tableCartKey, new JSONArray().toJSONString()); JSONObject jsonObject1 = new JSONObject(); jsonObject1.put("status", "success");