清空购物车保留餐位费信息

This commit is contained in:
2024-09-27 17:10:14 +08:00
parent a10500241e
commit 8a467a22ec

View File

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