Commit 74400eeb by ping.wu

特价活动优惠数量返回

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