Commit 140c901d by shuhu.hou@freemud.cn

优化购物车逻辑

parent 5ee2d2ae
...@@ -249,9 +249,8 @@ public interface ShoppingCartNewService { ...@@ -249,9 +249,8 @@ public interface ShoppingCartNewService {
* @param allCartGoodsList * @param allCartGoodsList
* @param productBeanListSpuClass * @param productBeanListSpuClass
*/ */
default Map<String, List<CartGoods>> addNotProductGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, CartGoods cartGoods default void addNotProductGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, CartGoods cartGoods
, String goodsId, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, List<CartGoods> allCartGoodsList , String goodsId, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, List<CartGoods> allCartGoodsList) {
, List<ProductBeanDTO> productBeanListSpuClass) {
// 校验合法性,更新缓存中购物车信息 // 校验合法性,更新缓存中购物车信息
allCartGoodsList = updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList); allCartGoodsList = updateCartGoodsLegal(cartGoods, userId, shoppingCartGoodsResponseVo, addShoppingCartGoodsRequestVo, allCartGoodsList);
...@@ -262,10 +261,6 @@ public interface ShoppingCartNewService { ...@@ -262,10 +261,6 @@ public interface ShoppingCartNewService {
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价” // 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS); 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 { ...@@ -116,7 +116,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
// 当添加的商品不是商品券时 // 当添加的商品不是商品券时
if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) { if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
//添加非商品券商品 //添加非商品券商品
addNotProductGoods(requestVo, cartGoods, goodsId, userId, responseVo, allCartGoodsList, productBeanListSpuClass); addNotProductGoods(requestVo, cartGoods, goodsId, userId, responseVo, allCartGoodsList);
} else { } else {
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null // 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this.addProductGoods(requestVo, cartGoods, spuId2, userId, responseVo, this.addProductGoods(requestVo, cartGoods, spuId2, userId, responseVo,
......
...@@ -243,11 +243,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -243,11 +243,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 当添加的商品不是商品券时 // 当添加的商品不是商品券时
if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) { if (!spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
//添加非商品券商品 //添加非商品券商品
Map<String, List<CartGoods>> map = addNotProductGoods(addShoppingCartGoodsRequestVo, cartGoods, goodsId, userId, shoppingCartGoodsResponseVo, allCartGoodsList, productBeanListSpuClass); addNotProductGoods(addShoppingCartGoodsRequestVo, cartGoods, goodsId, userId, shoppingCartGoodsResponseVo, allCartGoodsList);
for (Map.Entry<String, List<CartGoods>> entry : map.entrySet()) {
productName = entry.getKey();
allCartGoodsList = entry.getValue();
}
} else { } else {
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null // 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this.addProductGoods(addShoppingCartGoodsRequestVo, cartGoods, spuId2, userId, shoppingCartGoodsResponseVo, this.addProductGoods(addShoppingCartGoodsRequestVo, cartGoods, spuId2, userId, shoppingCartGoodsResponseVo,
...@@ -1030,36 +1026,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -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 * @param addShoppingCartGoodsRequestVo
...@@ -1101,7 +1067,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1101,7 +1067,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, ShoppingCartConstant.HAS_OTHER_ACTIVITY_WHEN_ADD_GOODS_COUPON); 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