Commit 9d1da20e by ping.wu

商品券优惠后金额修改

parent 8d6ee10d
...@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -74,38 +75,52 @@ public class CouponDiscountCalculation { ...@@ -74,38 +75,52 @@ public class CouponDiscountCalculation {
*/ */
public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) { public void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
// 当couponCode不为空时,需计算优惠价格 if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getCouponDiscounts())
long couponDiscount = 0; || !calculationDiscountResult.getCouponDiscounts().stream().anyMatch(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getActivityType())
if (couponPromotionVO != null && StringUtils.isNotEmpty(couponPromotionVO.getCouponCode()) ||(ActivityTypeEnum.TYPE_31.getCode().equals(discount.getActivityType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getActivityType())) ))) {
&& calculationDiscountResult != null) { return;
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.CouponResults> couponResultsList = calculationDiscountResult.getCouponDiscounts();
if (CollectionUtils.isNotEmpty(couponResultsList)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.CouponResults couponResults : couponResultsList) {
couponDiscount = couponDiscount + (couponResults.getDiscountAmount() == null ? 0 : couponResults.getDiscountAmount());
}
}
} }
shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = calculationDiscountResult.getGoods();
//循环购物车商品券 if (CollectionUtils.isEmpty(goodsList)) {
return;
}
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1));
for (CartGoods cartGoods : cartGoodsList) { for (CartGoods cartGoods : cartGoodsList) {
if (cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) { //商品券商品
String spqId = cartGoods.getCartGoodsUid().substring(CommonsConstant.COUPON_PREFIX.length()); if (StringUtils.isNotBlank(cartGoods.getCouponCode())) {
// 计算优惠信息时,已将券校验过,放在map中 // String couponCode = cartGoods.getCouponCode();
Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult == null ? new HashMap<>() : calculationDiscountResult.getValidCouponMap(); // // 计算优惠信息时,已将券校验过,放在map中
if (MapUtils.isNotEmpty(validCouponMap)) { // Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId); // if (MapUtils.isNotEmpty(validCouponMap)) {
if (checkSpqInfoResponseDto != null) { // CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice()); // if (checkSpqInfoResponseDto != null) {
cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId()); // cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId()); // cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
cartGoods.setQty(1); // cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId());
cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode()); // cartGoods.setQty(1);
cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName()); // cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
} // cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
// }
// }
if (goodsMap.get(cartGoods.getGoodsId()) == null) {
continue;
} }
cartGoods.setAmount(goodsMap.get(cartGoods.getGoodsId()).getRealAmount());
} }
} }
// 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0;
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.CouponResults> couponResultsList = calculationDiscountResult.getCouponDiscounts();
if (CollectionUtils.isNotEmpty(couponResultsList)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.CouponResults couponResults : couponResultsList) {
couponDiscount = couponDiscount + (couponResults.getDiscountAmount() == null ? 0 : couponResults.getDiscountAmount());
}
}
shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount);
} }
......
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