Commit ba65bb08 by 查志伟

套餐无固搭购物车均摊优惠支持

parent 8b57fa97
......@@ -464,7 +464,8 @@ public class CalculationCommonService {
}
//设置行优惠
List<ActivityDiscountsDto> activityDiscountsDtoList = new ArrayList<>();
if (calculationGoods!=null && CollectionUtils.isNotEmpty(calculationGoods.getDiscounts())) {
if (null != calculationGoods) {
if (CollectionUtils.isNotEmpty(calculationGoods.getDiscounts())){
for (GoodsDiscount discount : calculationGoods.getDiscounts()) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(discount.getActivityCode());
......@@ -474,6 +475,28 @@ public class CalculationCommonService {
activityDiscountsDto.setActualActivityGoodsNumber(discount.getActualGoodsNumber());
activityDiscountsDtoList.add(activityDiscountsDto);
}
} else if (CollectionUtils.isNotEmpty(calculationGoods.getSmallMaterial())) {
// fix 若套餐无固定搭配, 促销返回的均摊在父商品上是空的,这时需要把子商品的优惠放到父商品里
Map<Integer, ActivityDiscountsDto> map = new HashMap<>();
calculationGoods.getSmallMaterial().forEach(sm -> {
if (CollectionUtils.isNotEmpty(sm.getDiscounts())) {
sm.getDiscounts().forEach(discount -> {
Integer type = this.convertType(discount.getType());
ActivityDiscountsDto dto = map.getOrDefault(type, new ActivityDiscountsDto());
dto.setActivityCode(discount.getActivityCode());
dto.setActivityName(this.convertName(discount.getType(), discount.getActivityName()));
dto.setActivityType(this.convertType(discount.getType()));
dto.setDiscountAmount(Optional.ofNullable(dto.getDiscountAmount()).orElse(0) + discount.getDiscount().intValue());
dto.setActualActivityGoodsNumber(Optional.ofNullable(dto.getActualActivityGoodsNumber()).orElse(0) + discount.getActualGoodsNumber());
map.put(type, dto);
});
}
});
//存到商品优惠里
map.forEach((type, dto) -> {
activityDiscountsDtoList.add(dto);
});
}
}
cartGoodsDetailDto.setActivityDiscountsDtos(activityDiscountsDtoList);
......
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