Commit 809cde27 by 刘鹏飞

Merge remote-tracking branch 'remotes/origin/feature/coco-payGift-刘鹏飞' into qa

parents 91ec3d82 f12264c0
...@@ -22,6 +22,7 @@ import com.freemud.application.sdk.api.log.ApiLog; ...@@ -22,6 +22,7 @@ import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
...@@ -61,15 +62,17 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -61,15 +62,17 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
gifeProductIds = products.stream().filter(product -> Objects.equals(product.getActivityType(),ActivityTypeEnum.TYPE_63.getCode())).map(CartGoods::getGoodsId).collect(Collectors.toList()); gifeProductIds = products.stream().filter(product -> Objects.equals(product.getActivityType(),ActivityTypeEnum.TYPE_63.getCode())).map(CartGoods::getGoodsId).collect(Collectors.toList());
} }
// 第二件优惠活动,在点餐页需要给优惠商品单独显示一行 Map<String,CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsDiscountsMap = new HashMap<>();
// 第二件优惠活动Map
Map<String,CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> goodsDiscountsMap = new HashMap<>(); Map<String,CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> halfDiscountsMap = new HashMap<>();
// 商品优惠信息 // 商品优惠信息
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsDiscounts = discountResult.getGoods(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsDiscounts = discountResult.getGoods();
if(goodsDiscounts == null || goodsDiscounts.isEmpty()){ if(goodsDiscounts == null || goodsDiscounts.isEmpty()){
return; return;
} }
goodsDiscountsMap = goodsDiscounts.stream().collect(Collectors.toMap(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, g -> g,(k1,k2)->k1));
goodsDiscounts.forEach(goodsDiscount ->{ goodsDiscounts.forEach(goodsDiscount ->{
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> oneGoodsDiscounts = goodsDiscount.getDiscounts(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> oneGoodsDiscounts = goodsDiscount.getDiscounts();
if(oneGoodsDiscounts == null || oneGoodsDiscounts.isEmpty()){ if(oneGoodsDiscounts == null || oneGoodsDiscounts.isEmpty()){
...@@ -77,7 +80,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -77,7 +80,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
} }
oneGoodsDiscounts.forEach(discount -> { oneGoodsDiscounts.forEach(discount -> {
if(Objects.equals(discount.getType(),ActivityTypeEnum.TYPE_53.getCode())){ if(Objects.equals(discount.getType(),ActivityTypeEnum.TYPE_53.getCode())){
goodsDiscountsMap.put(goodsDiscount.getCartGoodsUid() + "-" + discount.getGoodsId(),discount); halfDiscountsMap.put(goodsDiscount.getCartGoodsUid() + "-" + discount.getGoodsId(),discount);
} }
}); });
...@@ -98,13 +101,14 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -98,13 +101,14 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
Integer num = 0; Integer num = 0;
// 商品优惠的金额 // 商品优惠的金额
Long discountAmount = 0L; Long discountAmount = 0L;
if(goodsDiscountsMap.get(product.getCartGoodsUid() + "-" + product.getGoodsId()) != null){ if(halfDiscountsMap.get(product.getCartGoodsUid() + "-" + product.getGoodsId()) != null){
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = goodsDiscountsMap.get(product.getCartGoodsUid() + "-" + product.getGoodsId()); CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount = halfDiscountsMap.get(product.getCartGoodsUid() + "-" + product.getGoodsId());
if(discount == null){ if(discount == null){
return; return;
} }
num = discount.getActualGoodsNumber(); num = discount.getActualGoodsNumber();
for(int i = 0 ; i < num ; i++){ for(int i = 0 ; i < num ; i++){
// 第二件优惠活动,在点餐页需要给优惠商品单独显示一行
// 复制商品加到购物车 // 复制商品加到购物车
discountAmount = discount.getDiscount(); discountAmount = discount.getDiscount();
Long newPrice = product.getOriginalPrice() - discountAmount; Long newPrice = product.getOriginalPrice() - discountAmount;
...@@ -125,7 +129,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -125,7 +129,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
// 只要符合条件就需要设置为空 // 只要符合条件就需要设置为空
// 因为前端指挥在半价行、赠品行上打标 // 因为前端指挥在半价行、赠品行上打标
// 前端是从商品活动信息中查找活动,在商品列表中找商品 // 前端是从商品活动信息中查找活动,在商品列表中找商品
if(gifeProductIds.contains(product.getGoodsId()) || !Objects.equals(num,0)){ if((gifeProductIds.contains(product.getGoodsId()) && ObjectUtils.equals(product.getActivityType(),ActivityTypeEnum.TYPE_63)) || !Objects.equals(num,0)){
product.setGoodsId(null); product.setGoodsId(null);
} }
...@@ -136,6 +140,8 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -136,6 +140,8 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
product.setActivityType(null); product.setActivityType(null);
} }
// 商品的现单价使用促销返回的现单价
product.setFinalPrice(goodsDiscountsMap.get(product.getCartGoodsUid()).getNowPrice());
newProducts.add(product); newProducts.add(product);
} }
......
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