Commit ed35712b by 徐康

Merge remote-tracking branch 'origin/feature/xukang_20210609_麦咖啡p7v2' into…

Merge remote-tracking branch 'origin/feature/xukang_20210609_麦咖啡p7v2' into feature/xukang_20210609_麦咖啡p7v2
parents 9bf008de cc92303f
......@@ -954,7 +954,7 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo, payCardPrice);
//如果促销返回的商品里有月享卡2.0的虚拟商品,重新保存一次购物车
if(CollectionUtils.isNotEmpty(cartGoodsList) && cartGoodsList.stream().anyMatch(cartGoods -> cartGoods.getSkuId().equals("9999"))){
if(CollectionUtils.isNotEmpty(cartGoodsList) && cartGoodsList.stream().anyMatch(cartGoods -> cartGoods.getSkuId().equals("9999") || cartGoods.getSkuId().equals("9998"))){
// 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
}
......
......@@ -18,6 +18,7 @@ import cn.freemud.utils.BarcodeUtil;
import cn.freemud.utils.ExceptionUtils;
import cn.freemud.utils.LogUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.log.ApiLog;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
......@@ -30,6 +31,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -167,6 +169,7 @@ public class CouponDiscountCalculation {
List<CartGoods> newCartGoodsList = new ArrayList<>();
boolean haveB3S1Fav = false;
for (int i = 0; i < cartGoodsList.size(); i++) {
CartGoods cartGoods = cartGoodsList.get(i);
cartGoods.setIsB3S1CouponGoods(0);
......@@ -202,6 +205,7 @@ public class CouponDiscountCalculation {
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> b3S1DiscountOptional = discountsNew.stream()
.filter(t -> ActivityTypeEnum.TYPE_35.getCode().equals(t.getType())).findFirst();
if(b3S1DiscountOptional.isPresent()) {
haveB3S1Fav = true;
if(cartGoods.getQty() > b3S1DiscountOptional.get().getActualGoodsNumber()) {
int newNum = cartGoods.getQty() - b3S1DiscountOptional.get().getActualGoodsNumber();
cartGoods.setQty(b3S1DiscountOptional.get().getActualGoodsNumber());
......@@ -225,6 +229,28 @@ public class CouponDiscountCalculation {
}
cartGoodsList.addAll(newCartGoodsList);
if(haveB3S1Fav) {
List<CartGoods> nowCartGoodsList = new ArrayList<>();
AtomicBoolean changed = new AtomicBoolean();
changed.set(false);
if(CollectionUtils.isNotEmpty(cartGoodsList)){
ApiLog.debug("合并买3赠1商品券 【merge-before】 : {} ", JSONObject.toJSONString(cartGoodsList));
cartGoodsList.forEach(newCartGood -> {
int index;
if ((index = nowCartGoodsList.indexOf(newCartGood)) >= 0) {
changed.set(true);
nowCartGoodsList.get(index).setQty(nowCartGoodsList.get(index).getQty() + newCartGood.getQty());
} else {
nowCartGoodsList.add(newCartGood);
}
});
}
if(changed.get()) {
cartGoodsList.clear();
cartGoodsList.addAll(nowCartGoodsList);
}
}
// 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0;
if (CollectionUtils.isNotEmpty(couponDiscounts)) {
......
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