Commit e6f278b1 by xiaoer.li@freemud.com

modify:均摊

parent 3f2a0c43
...@@ -114,19 +114,30 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -114,19 +114,30 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) { if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) {
return; return;
} }
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult.getSendGoods().stream().filter(goods -> (ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(goods.getActivityType()))).collect(Collectors.toList()); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult
.getSendGoods()
.stream()
.filter(goods -> (ActivityTypeEnum.TYPE_62.getCode().equals(goods.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(goods.getActivityType())))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendActivities)) { if (CollectionUtils.isEmpty(sendActivities)) {
return; return;
} }
List<ShoppingCartGoodsDto.CartGoodsDetailDto> sendGoodsList = shoppingCartGoodsDto.getProducts().stream().filter(product -> (ActivityTypeEnum.TYPE_62.getCode().equals(product.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(product.getActivityType()))).collect(Collectors.toList()); List<ShoppingCartGoodsDto.CartGoodsDetailDto> sendGoodsList = shoppingCartGoodsDto
.getProducts()
.stream()
.filter(product -> (ActivityTypeEnum.TYPE_62.getCode().equals(product.getActivityType()) || ActivityTypeEnum.TYPE_230.getCode().equals(product.getActivityType())))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendGoodsList)) { if (CollectionUtils.isEmpty(sendGoodsList)) {
return; return;
} }
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
//设置商品行活动均摊 //设置商品行活动均摊
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : sendGoodsList) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : sendGoodsList) {
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> first = sendActivities.stream().filter(sendActivity -> ObjectUtils.equals(sendActivity.getActivityCode(), cartGoodsDetailDto.getNodeId())).findFirst(); Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> first =
sendActivities.stream()
.filter(sendActivity -> ObjectUtils.equals(sendActivity.getActivityCode(), cartGoodsDetailDto.getNodeId()))
.findFirst();
if (!first.isPresent()) { if (!first.isPresent()) {
continue; continue;
} }
...@@ -135,18 +146,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService { ...@@ -135,18 +146,37 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName()); ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName());
ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType()); ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType());
if (cartGoodsDetailDto.getActivityType().equals(ActivityTypeEnum.TYPE_230.getCode())) {
cartGoodsDetailDto.setTotalDiscountAmount(cartGoodsDetailDto.getOriginalPrice().intValue());
ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getOriginalPrice().intValue());
}
else {
ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount()); ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount());
}
cartGoodsDetailDto.setActivityDiscountsDtos(Arrays.asList(ProductActivityDiscountsDto)); cartGoodsDetailDto.setActivityDiscountsDtos(Arrays.asList(ProductActivityDiscountsDto));
} }
//设置活动级别的均摊 //设置活动级别的均摊
boolean type230 = false;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivities) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : sendActivities) {
if (ActivityTypeEnum.TYPE_230.getCode().toString().equals(sendActivity.getActivityCode())) {
type230 = true;
}
//设置优惠活动 //设置优惠活动
Integer totalDiscountAmount = sendGoodsList.stream().filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId())).mapToInt(sendGoods -> sendGoods.getTotalDiscountAmount()).sum(); Integer totalDiscountAmount = sendGoodsList
.stream()
.filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId()))
.mapToInt(sendGoods -> sendGoods.getTotalDiscountAmount())
.sum();
Long totalDiscountOriginalAmount = sendGoodsList
.stream()
.filter(sendGoods -> ObjectUtils.equals(sendActivity.getActivityCode(), sendGoods.getNodeId()))
.mapToLong(sendGoods -> sendGoods.getOriginalPrice())
.sum();
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); activityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
activityDiscountsDto.setActivityName(sendActivity.getActivityName()); activityDiscountsDto.setActivityName(sendActivity.getActivityName());
activityDiscountsDto.setActivityType(sendActivity.getActivityType()); activityDiscountsDto.setActivityType(sendActivity.getActivityType());
activityDiscountsDto.setDiscountAmount(0 - totalDiscountAmount); activityDiscountsDto.setDiscountAmount(type230 ? 0 - totalDiscountOriginalAmount.intValue() : 0 - totalDiscountAmount);
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
} }
} }
......
...@@ -148,31 +148,23 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -148,31 +148,23 @@ public class BuySendPromotionService implements IPromotionService {
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendGoods1 = calculationDiscountResult.getSendGoods() == null ? new ArrayList<>() : List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendGoods1 = calculationDiscountResult.getSendGoods() == null ? new ArrayList<>() :
calculationDiscountResult.getSendGoods().stream() calculationDiscountResult.getSendGoods().stream()
.filter(t -> ObjectUtils.equals(ActivityTypeEnum.TYPE_6.getCode(), t.getActivityType()) .filter(t -> ObjectUtils.equals(ActivityTypeEnum.TYPE_6.getCode(), t.getActivityType())
|| ObjectUtils.equals(ActivityTypeEnum.TYPE_61.getCode(), t.getActivityType()) || ObjectUtils.equals(ActivityTypeEnum.TYPE_61.getCode(), t.getActivityType()))
|| ObjectUtils.equals(ActivityTypeEnum.TYPE_230.getCode(), t.getActivityType()))
.collect(Collectors.toList() ); .collect(Collectors.toList() );
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos() == null ? new ArrayList<>() : shoppingCartGoodsDto.getActivityDiscountsDtos();
if (CollectionUtils.isNotEmpty(sendGoods1)) { if (CollectionUtils.isNotEmpty(sendGoods1)) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity = sendGoods1.get(0); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity = sendGoods1.get(0);
boolean type230 = false;
if(ActivityTypeEnum.TYPE_230.getCode().toString().equals(sendActivity.getActivityCode())) {
type230 = true;
}
Integer discountAmount = shoppingCartGoodsDto.getProducts() Integer discountAmount = shoppingCartGoodsDto.getProducts()
.stream() .stream()
.filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType())) .filter(product -> ObjectUtils.equals(product.getActivityType(), sendActivity.getActivityType()))
.mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getTotalDiscountAmount) .mapToInt(ShoppingCartGoodsDto.CartGoodsDetailDto::getTotalDiscountAmount)
.sum(); .sum();
Long totalAmount = sendActivity.getSendGoods().stream()
.mapToLong(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods::getOriginalPrice)
.sum();
//设置优惠活动 //设置优惠活动
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); activityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
activityDiscountsDto.setActivityName(sendActivity.getActivityName()); activityDiscountsDto.setActivityName(sendActivity.getActivityName());
activityDiscountsDto.setActivityType(sendActivity.getActivityType()); activityDiscountsDto.setActivityType(sendActivity.getActivityType());
activityDiscountsDto.setDiscountAmount(type230 ? totalAmount.intValue() :0 - discountAmount); activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
// 设置商品行优惠明细 // 设置商品行优惠明细
...@@ -186,7 +178,7 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -186,7 +178,7 @@ public class BuySendPromotionService implements IPromotionService {
ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode()); ProductActivityDiscountsDto.setActivityCode(sendActivity.getActivityCode());
ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName()); ProductActivityDiscountsDto.setActivityName(sendActivity.getActivityName());
ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType()); ProductActivityDiscountsDto.setActivityType(sendActivity.getActivityType());
ProductActivityDiscountsDto.setDiscountAmount(type230 ? cartGoodsDetailDto.getOriginalPrice().intValue():cartGoodsDetailDto.getTotalDiscountAmount()); ProductActivityDiscountsDto.setDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount());
activityDiscountsDtoList.add(ProductActivityDiscountsDto); activityDiscountsDtoList.add(ProductActivityDiscountsDto);
cartGoodsDetailDto.setActivityDiscountsDtos(activityDiscountsDtoList); 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