渲染优惠券时,增加一次遍历,确保优惠券一定可以正常使用
This commit is contained in:
@@ -212,13 +212,21 @@ public class CouponRender implements CartRenderStep {
|
|||||||
MemberCouponDTO platformCoupon = tradeDTO.getPlatformCoupon();
|
MemberCouponDTO platformCoupon = tradeDTO.getPlatformCoupon();
|
||||||
//如果有勾选平台优惠券
|
//如果有勾选平台优惠券
|
||||||
if (platformCoupon != null) {
|
if (platformCoupon != null) {
|
||||||
renderSku(tradeDTO, platformCoupon);
|
for (MemberCoupon canUseCoupon : tradeDTO.getCanUseCoupons()) {
|
||||||
|
if(canUseCoupon.getCouponId().equals(platformCoupon.getMemberCoupon().getCouponId())){
|
||||||
|
renderSku(tradeDTO, platformCoupon);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//计算商家优惠券
|
//计算商家优惠券
|
||||||
Map<String, MemberCouponDTO> map = tradeDTO.getStoreCoupons();
|
Map<String, MemberCouponDTO> map = tradeDTO.getStoreCoupons();
|
||||||
if (map != null && map.size() > 0) {
|
if (map != null && map.size() > 0) {
|
||||||
for (MemberCouponDTO memberCouponDTO : map.values()) {
|
for (MemberCouponDTO memberCouponDTO : map.values()) {
|
||||||
renderSku(tradeDTO, memberCouponDTO);
|
for (MemberCoupon canUseCoupon : tradeDTO.getCanUseCoupons()) {
|
||||||
|
if(canUseCoupon.getCouponId().equals(memberCouponDTO.getMemberCoupon().getCouponId())){
|
||||||
|
renderSku(tradeDTO, memberCouponDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -638,13 +638,15 @@ public class CartServiceImpl implements CartService {
|
|||||||
if (Boolean.FALSE.equals(cartSkuVO.getChecked())) {
|
if (Boolean.FALSE.equals(cartSkuVO.getChecked())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//使用优惠券时判断最新的sku价格。与后面渲染一致
|
||||||
|
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(cartSkuVO.getGoodsSku().getId());
|
||||||
//有促销金额则用促销金额,否则用商品原价
|
//有促销金额则用促销金额,否则用商品原价
|
||||||
if (cartSkuVO.getPromotionMap() != null && !cartSkuVO.getPromotionMap().isEmpty()) {
|
if (cartSkuVO.getPromotionMap() != null && !cartSkuVO.getPromotionMap().isEmpty()) {
|
||||||
if (cartSkuVO.getPromotionMap().keySet().stream().anyMatch(i -> i.contains(PromotionTypeEnum.PINTUAN.name()) || i.contains(PromotionTypeEnum.SECKILL.name()))) {
|
if (cartSkuVO.getPromotionMap().keySet().stream().anyMatch(i -> i.contains(PromotionTypeEnum.PINTUAN.name()) || i.contains(PromotionTypeEnum.SECKILL.name()))) {
|
||||||
cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum()));
|
cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum()));
|
||||||
skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum()));
|
skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getPurchasePrice(), cartSkuVO.getNum()));
|
||||||
} else {
|
} else {
|
||||||
cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(cartSkuVO.getGoodsSku().getPrice(), cartSkuVO.getNum()));
|
cartPrice = CurrencyUtil.add(cartPrice, CurrencyUtil.mul(goodsSku.getPrice(), cartSkuVO.getNum()));
|
||||||
skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getGoodsSku().getPrice(), cartSkuVO.getNum()));
|
skuPrice.put(cartSkuVO.getGoodsSku().getId(), CurrencyUtil.mul(cartSkuVO.getGoodsSku().getPrice(), cartSkuVO.getNum()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user