Commit a05eb89c by chongfu.liang

fix

parent e3af43f5
......@@ -139,30 +139,50 @@ public class GiftSharingService {
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts()
.stream().filter(p -> activityCode.contains(p.getActivityCode())).collect(Collectors.toList());
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : discountList){
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods sendGoods = new CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods();
sendGoods.setCartGoodsUid(UUID.randomUUID().toString());
sendGoods.setGoodsId(discount.getGoodsId());
sendGoods.setCartGoodType(CalculationGoodsType.TYPE_1.getType());
sendGoods.setGoodsQuantity(discount.getActualGoodsNumber());
sendGoods.setOriginalPrice(goods.getOriginalPrice());
sendGoods.setDiscountAmount(discount.getDiscount());
sendGoods.setOriginalGoodsUid(goods.getCartGoodsUid());
sendGoods.setRealAmount(0L);
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> goodsDiscounts = new ArrayList<>();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = new CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount();
goodsDiscount.setActivityCode(discount.getActivityCode());
goodsDiscount.setActivityDesc(discount.getActivityDesc());
goodsDiscount.setActivityName(discount.getActivityName());
goodsDiscount.setActualGoodsNumber(discount.getActualGoodsNumber());
goodsDiscount.setDiscount(discount.getDiscount());
goodsDiscount.setGoodsId(discount.getGoodsId());
goodsDiscount.setSignleDiscount(discount.getSignleDiscount());
goodsDiscount.setType(ActivityTypeEnum.TYPE_1040.getCode());
goodsDiscounts.add(goodsDiscount);
sendGoods.setDiscounts(goodsDiscounts);
goodsList.add(sendGoods);
sendQty += discount.getActualGoodsNumber();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods oldSendGoods = goodsList.stream().filter(p -> p.getGoodsId().equals(discount.getGoodsId()) && ObjectUtils.equals(p.getCartGoodType(), 1)).findFirst().orElse(null);
if (oldSendGoods != null){ // 表明赠品原来有
Integer goodsQuantity = oldSendGoods.getGoodsQuantity();
sendQty = goodsQuantity + discount.getActualGoodsNumber();
oldSendGoods.setGoodsQuantity(sendQty);
Long discountAmount = oldSendGoods.getDiscountAmount();
discountAmount = discountAmount + discount.getDiscount();
oldSendGoods.setDiscountAmount(discountAmount);
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount oldDiscount = oldSendGoods.getDiscounts().stream().filter(p -> p.getActivityCode().equals(discount.getActivityCode()) && ObjectUtils.equals(p.getType(), ActivityTypeEnum.TYPE_1040.getCode())).findFirst().orElse(null);
if (oldDiscount != null){
oldDiscount.setActualGoodsNumber(sendQty);
oldDiscount.setDiscount(discountAmount);
}
} else {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods sendGoods = new CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods();
sendGoods.setCartGoodsUid(UUID.randomUUID().toString());
sendGoods.setGoodsId(discount.getGoodsId());
sendGoods.setCartGoodType(CalculationGoodsType.TYPE_1.getType());
sendGoods.setGoodsQuantity(discount.getActualGoodsNumber());
sendGoods.setOriginalPrice(goods.getOriginalPrice());
sendGoods.setDiscountAmount(discount.getDiscount());
sendGoods.setOriginalGoodsUid(goods.getCartGoodsUid());
sendGoods.setRealAmount(0L);
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> goodsDiscounts = new ArrayList<>();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = new CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount();
goodsDiscount.setActivityCode(discount.getActivityCode());
goodsDiscount.setActivityDesc(discount.getActivityDesc());
goodsDiscount.setActivityName(discount.getActivityName());
goodsDiscount.setActualGoodsNumber(discount.getActualGoodsNumber());
goodsDiscount.setDiscount(discount.getDiscount());
goodsDiscount.setGoodsId(discount.getGoodsId());
goodsDiscount.setSignleDiscount(discount.getSignleDiscount());
goodsDiscount.setType(ActivityTypeEnum.TYPE_1040.getCode());
goodsDiscounts.add(goodsDiscount);
sendGoods.setDiscounts(goodsDiscounts);
goodsList.add(sendGoods);
sendQty += discount.getActualGoodsNumber();
}
if (goods.getDiscountAmount() != null && discount.getDiscount() != null){
goods.setDiscountAmount(goods.getDiscountAmount() - discount.getDiscount());
}
......
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