清空购物车保留餐位费信息
This commit is contained in:
@@ -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<TbProskuCon> 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<TbProskuCon> 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<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());
|
||||
JSONObject jsonObject1 = new JSONObject();
|
||||
jsonObject1.put("status", "success");
|
||||
|
||||
Reference in New Issue
Block a user