Commit 74400eeb by ping.wu

特价活动优惠数量返回

parent a716e420
...@@ -105,7 +105,7 @@ public class TimeSaleCalculation { ...@@ -105,7 +105,7 @@ public class TimeSaleCalculation {
return; return;
} }
// 商品实际享受优惠的数量: key:skuId; value:实际数量 // 商品实际享受优惠的数量: key:skuId; value:实际数量
Map<String, Integer> numberMap = new HashMap<>(); // Map<String, Integer> numberMap = new HashMap<>();
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1));
...@@ -119,29 +119,31 @@ public class TimeSaleCalculation { ...@@ -119,29 +119,31 @@ public class TimeSaleCalculation {
// throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN); // throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN);
// } // }
// cartGoods.setCustomerCode(goods.getArtNo()); // cartGoods.setCustomerCode(goods.getArtNo());
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), Arrays.asList(ActivityTypeEnum.TYPE_21.getCode(), ActivityTypeEnum.TYPE_2.getCode())); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), Arrays.asList(ActivityTypeEnum.TYPE_2.getCode(), ActivityTypeEnum.TYPE_21.getCode(), ActivityTypeEnum.TYPE_23.getCode()));
if (goodsDiscount == null) { if (goodsDiscount == null) {
continue; continue;
} }
if (numberMap.get(cartGoods.getSkuId()) == null) { Long totalDiscountAmount = goodsDiscount.getDiscount();
numberMap.put(cartGoods.getSkuId(), goods.getActualGoodsNumber()); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
} activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode());
Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId()); activityDiscountsDto.setActualActivityGoodsNumber(goodsDiscount.getActualGoodsNumber());
if (actualGoodsNumber > 0) { activityDiscountsDto.setActivityName(goodsDiscount.getActivityName());
Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goods.getDiscountAmount() * actualGoodsNumber / goods.getActualGoodsNumber() : goods.getDiscountAmount() * cartGoods.getQty() / goods.getActualGoodsNumber(); activityDiscountsDto.setActivityType(ActivityTypeEnum.TYPE_2.getCode());
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); activityDiscountsDto.setDiscountAmount(totalDiscountAmount.intValue());
activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode()); cartGoods.getActivityDiscountsDtos().add(activityDiscountsDto);
activityDiscountsDto.setActualActivityGoodsNumber(goodsDiscount.getActualGoodsNumber()); cartGoods.setTotalDiscountAmount(cartGoods.getTotalDiscountAmount() + totalDiscountAmount.intValue());
activityDiscountsDto.setActivityName(goodsDiscount.getActivityName()); // if (numberMap.get(cartGoods.getSkuId()) == null) {
activityDiscountsDto.setActivityType(ActivityTypeEnum.TYPE_2.getCode()); // numberMap.put(cartGoods.getSkuId(), goodsDiscount.getActualGoodsNumber());
activityDiscountsDto.setDiscountAmount(totalDiscountAmount.intValue()); // }
cartGoods.getActivityDiscountsDtos().add(activityDiscountsDto); // Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId());
cartGoods.setTotalDiscountAmount(cartGoods.getTotalDiscountAmount() + totalDiscountAmount.intValue()); // if (actualGoodsNumber > 0) {
numberMap.put(cartGoods.getSkuId(), actualGoodsNumber - cartGoods.getQty()); // Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goods.getDiscountAmount() * actualGoodsNumber / goods.getActualGoodsNumber() : goods.getDiscountAmount() * cartGoods.getQty() / goods.getActualGoodsNumber();
} else { //
cartGoods.setTotalDiscountAmount(0); // numberMap.put(cartGoods.getSkuId(), actualGoodsNumber - cartGoods.getQty());
} // } else {
// cartGoods.setTotalDiscountAmount(0);
// }
} }
} }
......
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