Commit d5d599e0 by chongfu.liang

x件y折

parent d022b42f
......@@ -50,7 +50,8 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getSendGoods())) {
return;
}
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> sendActivities = calculationDiscountResult.getSendGoods().stream().filter(goods -> ActivityTypeEnum.TYPE_62.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_104.getCode().equals(goods.getActivityType())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(sendActivities)) {
return;
}
......@@ -83,7 +84,7 @@ public class BuyAndGiftsPromotionService implements IPromotionService {
cartGoods.setCategoryName(product.getName());
cartGoods.setPic(product.getPicture());
cartGoods.setSkuName(product.getName());
cartGoods.setActivityType(ActivityTypeEnum.TYPE_62.getCode());
cartGoods.setActivityType(sendActivity.getActivityType());
cartGoods.setStockLimit(ObjectUtils.equals(1, product.getStockLimit()));
cartGoods.setCustomerCode(product.getCustomerCode());
cartGoods.setUnit(product.getUnit());
......
......@@ -17,6 +17,7 @@ import tk.mybatis.mapper.genid.GenId;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* All rights Reserved, Designed By www.freemud.cn
......@@ -125,11 +126,21 @@ public class XyDiscountServiceImpl implements IPromotionService {
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getApportionGoods())) {
return null;
}
// 0折的x件y折活动
List<String> activityCode = calculationDiscountResult.getDiscounts().stream()
.filter(p -> ActivityTypeEnum.TYPE_104.getCode().equals(p.getType()) && p.getZeroDiscount())
.map(p -> p.getActivityCode()).collect(Collectors.toList());
/*
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> discountGoodsList = calculationDiscountResult.getGoods().stream().filter(p -> org.apache.commons.collections4.CollectionUtils.isNotEmpty(p.getDiscounts())
&& p.getDiscounts().stream().filter(discount -> activityCode.contains(discount.getActivityCode())).count() > 0).collect(Collectors.toList());
*/
List<ApportionGoodsDetail> apportionGoodsDetail = new ArrayList<>();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGood : calculationDiscountResult.getApportionGoods()) {
if (!CollectionUtils.isEmpty(apportionGood.getApportionDetails())) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : apportionGood.getApportionDetails()) {
if (apportionDetail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode())) {
if (apportionDetail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode()) && !activityCode.contains(apportionDetail.getActivityCode())) {
ApportionGoodsDetail detail = new ApportionGoodsDetail();
detail.setActivityApportionAmount(apportionDetail.getActivityApportionAmount());
detail.setActivityCode(apportionDetail.getActivityCode());
......
......@@ -84,19 +84,26 @@ public class GiftSharingService {
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> discountGoodsList = result.getGoods().stream().filter(p -> CollectionUtils.isNotEmpty(p.getDiscounts())
&& p.getDiscounts().stream().filter(discount -> activityCode.contains(discount.getActivityCode())).count() > 0).collect(Collectors.toList());
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = result.getGoods();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> goodsList = result.getSendGoods();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods : discountGoodsList){
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts()
.stream().filter(p -> activityCode.contains(p.getActivityCode())).collect(Collectors.toList());
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : discountList){
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods sendGoods = new ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods();
sendGoods.setCartGoodsUid(UUID.randomUUID().toString());
sendGoods.setGoodsId(discount.getGoodsId());
sendGoods.setCartGoodType(CalculationGoodsType.TYPE_1.getType());
sendGoods.setGoodsQuantity(discount.getActualGoodsNumber());
sendGoods.setOriginalPrice(discount.getSignleDiscount());
sendGoods.setRealAmount(0L);
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendGoods = new ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods> sendGoodsList = new ArrayList<>();
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoodsInfo = new ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods();
sendGoodsInfo.setGoodsId(discount.getGoodsId());
sendGoodsInfo.setOriginalGoodsUid(goods.getOriginalGoodsUid());
sendGoodsInfo.setSendNumber(discount.getActualGoodsNumber());
sendGoodsList.add(sendGoodsInfo);
sendGoods.setSendGoods(sendGoodsList);
sendGoods.setActivityCode(discount.getActivityCode());
sendGoods.setActivityName(discount.getActivityName());
sendGoods.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
goodsList.add(sendGoods);
}
}
......
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