Commit 3e97c8c5 by 胡敬轩

Merge remote-tracking branch 'remotes/origin/feature/20210828-华莱士新算价互斥同享改版' into qa

parents c6a042f3 5cd53047
...@@ -224,13 +224,15 @@ public class ActivityAdapter { ...@@ -224,13 +224,15 @@ public class ActivityAdapter {
couponAvailableCartInfo.setStoreId(storeId); couponAvailableCartInfo.setStoreId(storeId);
couponAvailableCartInfo.setChannelIdList(orgCodes); couponAvailableCartInfo.setChannelIdList(orgCodes);
boolean newCalculation = CollectionUtils.isNotEmpty(discountResult.getCouponSharedExclusive());
couponAvailableCartInfo.setNewCalculation(newCalculation);
Long totalMealDiscountAmount = 0L;//套餐优惠不算在内 Long totalMealDiscountAmount = 0L;//套餐优惠不算在内
// Long sendDiscountAmount = 0L;//赠送和换购商品优惠不算在内 // Long sendDiscountAmount = 0L;//赠送和换购商品优惠不算在内
// Long sendRealAmount = 0L;//赠送和换购商品实付不算在内 // Long sendRealAmount = 0L;//赠送和换购商品实付不算在内
if(discountResult!=null){ if(discountResult!=null){
boolean newCalculation = CollectionUtils.isNotEmpty(discountResult.getCouponSharedExclusive());
if(newCalculation){
couponAvailableCartInfo.setNewCalculation(newCalculation);
buildOrderDiscount(couponAvailableCartInfo,discountResult.getDiscounts(),discountResult.getCouponSharedExclusive());
}
//已使用券 //已使用券
if(CollectionUtils.isNotEmpty(discountResult.getDiscounts())){ if(CollectionUtils.isNotEmpty(discountResult.getDiscounts())){
List<String> couponCodes = discountResult.getDiscounts().stream().filter(discount -> Objects.equals(discount.getType(),ActivityTypeEnum.TYPE_3.getCode()) List<String> couponCodes = discountResult.getDiscounts().stream().filter(discount -> Objects.equals(discount.getType(),ActivityTypeEnum.TYPE_3.getCode())
...@@ -427,4 +429,52 @@ public class ActivityAdapter { ...@@ -427,4 +429,52 @@ public class ActivityAdapter {
} }
cartProduct.setDiscounts(cartProductDiscountList); cartProduct.setDiscounts(cartProductDiscountList);
} }
private void buildOrderDiscount(CouponAvailableCartInfo couponAvailableCartInfo,List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts, Set<ActivityTypeSharedExclusive> couponSharedExclusive){
if(CollectionUtils.isEmpty(discounts)){
return;
}
HashMap<Integer,Integer> cashExclusiveMap = new HashMap<>();
HashMap<Integer,Integer> cashMultipleMap = new HashMap<>();
HashMap<Integer,Integer> discountExclusiveMap = new HashMap<>();
HashMap<Integer,Integer> discountMultipleMap = new HashMap<>();
for(ActivityTypeSharedExclusive sharedExclusive : couponSharedExclusive){
if(Objects.equals(sharedExclusive.getActivityType(),ActivityTypeEnum.TYPE_3.getCode())){
cashExclusiveMap.put(sharedExclusive.getSharedExclusiveActivityType(),sharedExclusive.getSharedExclusive());
cashMultipleMap.put(sharedExclusive.getSharedExclusiveActivityType(),sharedExclusive.getMultiple());
}
if(Objects.equals(sharedExclusive.getActivityType(),ActivityTypeEnum.TYPE_31.getCode())){
discountExclusiveMap.put(sharedExclusive.getSharedExclusiveActivityType(),sharedExclusive.getSharedExclusive());
discountMultipleMap.put(sharedExclusive.getSharedExclusiveActivityType(),sharedExclusive.getMultiple());
}
}
List<CouponAvailableCartInfo.Discount> cartDiscountList = new ArrayList<>();
for(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : discounts){
if(Objects.equals(discount.getType(),ActivityTypeEnum.TYPE_310.getCode())){
continue;
}
CouponAvailableCartInfo.Discount cartProductDiscount = new CouponAvailableCartInfo.Discount();
BeanUtils.copyProperties(discount,cartProductDiscount);
//是否与代金券互斥
boolean cashExclusive = Objects.equals(cashExclusiveMap.get(discount.getType()),YesOrNoEnum.YES.getCode());
cartProductDiscount.setCashExclusive(cashExclusive);
//是否与代金券叠加门槛
boolean cashMultiple = !Objects.equals(cashMultipleMap.get(discount.getType()),YesOrNoEnum.NO.getCode());
cartProductDiscount.setCashMultiple(cashMultiple);
//是否与折扣券互斥
boolean discountExclusive = Objects.equals(discountExclusiveMap.get(discount.getType()),YesOrNoEnum.YES.getCode());
cartProductDiscount.setDiscountExclusive(discountExclusive);
//是否与折扣券叠加门槛
boolean discountMultiple = !Objects.equals(discountMultipleMap.get(discount.getType()),YesOrNoEnum.NO.getCode());
cartProductDiscount.setDiscountMultiple(discountMultiple);
cartDiscountList.add(cartProductDiscount);
}
couponAvailableCartInfo.setDiscounts(cartDiscountList);
}
} }
...@@ -60,4 +60,49 @@ public class CouponAvailableCartInfo { ...@@ -60,4 +60,49 @@ public class CouponAvailableCartInfo {
* 是否是新版互斥同享算价 * 是否是新版互斥同享算价
*/ */
private boolean newCalculation = false; private boolean newCalculation = false;
//活动总优惠 newCalculation=true时封装
private List<Discount> discounts;
@Data
public static class Discount{
/**
* 活动号
*/
private String activityCode;
/**
* 活动名称
*/
private String activityName;
/**
* 折扣金额
*/
private Long discount;
/**
* 活动类型
*/
private Integer type;
/**
* 当前活动实际优惠的商品数量
*/
private Integer actualGoodsNumber;
//是否与代金券互斥
private boolean cashExclusive = false;
//是否与代金券叠加门槛
private boolean cashMultiple = true;
//是否与折扣券互斥
private boolean discountExclusive = false;
//是否与折扣券叠加门槛
private boolean discountMultiple = true;
}
} }
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