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,17 +119,12 @@ public class TimeSaleCalculation { ...@@ -119,17 +119,12 @@ 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());
}
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 activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode()); activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode());
activityDiscountsDto.setActualActivityGoodsNumber(goodsDiscount.getActualGoodsNumber()); activityDiscountsDto.setActualActivityGoodsNumber(goodsDiscount.getActualGoodsNumber());
...@@ -138,10 +133,17 @@ public class TimeSaleCalculation { ...@@ -138,10 +133,17 @@ public class TimeSaleCalculation {
activityDiscountsDto.setDiscountAmount(totalDiscountAmount.intValue()); activityDiscountsDto.setDiscountAmount(totalDiscountAmount.intValue());
cartGoods.getActivityDiscountsDtos().add(activityDiscountsDto); cartGoods.getActivityDiscountsDtos().add(activityDiscountsDto);
cartGoods.setTotalDiscountAmount(cartGoods.getTotalDiscountAmount() + totalDiscountAmount.intValue()); cartGoods.setTotalDiscountAmount(cartGoods.getTotalDiscountAmount() + totalDiscountAmount.intValue());
numberMap.put(cartGoods.getSkuId(), actualGoodsNumber - cartGoods.getQty()); // if (numberMap.get(cartGoods.getSkuId()) == null) {
} else { // numberMap.put(cartGoods.getSkuId(), goodsDiscount.getActualGoodsNumber());
cartGoods.setTotalDiscountAmount(0); // }
} // 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