Commit 140c901d by shuhu.hou@freemud.cn

优化购物车逻辑

parent 5ee2d2ae
......@@ -249,9 +249,8 @@ public interface ShoppingCartNewService {
* @param allCartGoodsList
* @param productBeanListSpuClass
*/
default Map<String, List<CartGoods>> addNotProductGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, CartGoods cartGoods
, String goodsId, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, List<CartGoods> allCartGoodsList
, List<ProductBeanDTO> productBeanListSpuClass) {
default void addNotProductGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, CartGoods cartGoods
, String goodsId, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, List<CartGoods> allCartGoodsList) {
// 校验合法性,更新缓存中购物车信息
allCartGoodsList = updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList);
......@@ -262,10 +261,6 @@ public interface ShoppingCartNewService {
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS);
}
Map<String, List<CartGoods>> map = new HashMap<>();
map.put(productBeanListSpuClass.get(0).getName(), allCartGoodsList);
return map;
}
}
......@@ -116,7 +116,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
// 当添加的商品不是商品券时
if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
//添加非商品券商品
addNotProductGoods(requestVo, cartGoods, goodsId, userId, responseVo, allCartGoodsList, productBeanListSpuClass);
addNotProductGoods(requestVo, cartGoods, goodsId, userId, responseVo, allCartGoodsList);
} else {
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this.addProductGoods(requestVo, cartGoods, spuId2, userId, responseVo,
......
......@@ -243,11 +243,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 当添加的商品不是商品券时
if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
//添加非商品券商品
Map<String, List<CartGoods>> map = addNotProductGoods(addShoppingCartGoodsRequestVo, cartGoods, goodsId, userId, shoppingCartGoodsResponseVo, allCartGoodsList, productBeanListSpuClass);
for (Map.Entry<String, List<CartGoods>> entry : map.entrySet()) {
productName = entry.getKey();
allCartGoodsList = entry.getValue();
}
addNotProductGoods(addShoppingCartGoodsRequestVo, cartGoods, goodsId, userId, shoppingCartGoodsResponseVo, allCartGoodsList);
} else {
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this.addProductGoods(addShoppingCartGoodsRequestVo, cartGoods, spuId2, userId, shoppingCartGoodsResponseVo,
......@@ -1030,36 +1026,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
/**
* 添加非商品券商品
*
* @param addShoppingCartGoodsRequestVo
* @param cartGoods
* @param goodsId
* @param userId
* @param shoppingCartGoodsResponseVo
* @param allCartGoodsList
* @param productBeanListSpuClass
*/
private Map<String, List<CartGoods>> addNotProductGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, CartGoods cartGoods
, String goodsId, String userId, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, List<CartGoods> allCartGoodsList
, List<ProductBeanDTO> productBeanListSpuClass) {
//校验合法性,更新缓存中购物车信息
allCartGoodsList = updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList);
// 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
boolean haveCouponProduct = allCartGoodsList.parallelStream().anyMatch(k -> k.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX));
if (haveCouponProduct && isSpecialGoods(addShoppingCartGoodsRequestVo.getPartnerId(), addShoppingCartGoodsRequestVo.getShopId(), userId, addShoppingCartGoodsRequestVo.getAppId(), goodsId, addShoppingCartGoodsRequestVo.getOrderType())) {
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS);
}
Map<String, List<CartGoods>> map = new HashMap<>();
map.put(productBeanListSpuClass.get(0).getName(), allCartGoodsList);
return map;
}
/**
* 添加商品券商品
*
* @param addShoppingCartGoodsRequestVo
......@@ -1101,7 +1067,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON);
}
//校验合法性,更新缓存中购物车信息
allCartGoodsList = updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList);
updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment