Commit e8ac2bb5 by chongfu.liang

Merge branch 'feature/20210104-新算价优惠券重复计算问题-lcf'

parents 60cb0f5a 8b287ce3
......@@ -215,6 +215,13 @@ public class CartGoods {
private Integer memberDiscount;
/**
* 当前选择的优惠券优惠
*
*/
private Integer currentCouponDiscount;
/**
* 费率
*/
private Double tax;
......
......@@ -602,8 +602,9 @@ public class CouponServiceImpl implements CouponService {
Product product = new Product();
product.setProductId(StringUtils.isEmpty(cartGood.getSkuId()) ? cartGood.getSpuId() : cartGood.getSkuId());
// 普通商品价格
product.setAmount(cartGood.getAmount().intValue());
totalAmount = totalAmount + cartGood.getAmount();
Integer currentCouponDiscount = cartGood.getCurrentCouponDiscount() != null ? cartGood.getCurrentCouponDiscount() : 0;
product.setAmount(cartGood.getAmount().intValue() + currentCouponDiscount);
totalAmount = totalAmount + product.getAmount();
// todo :小料价格累加到主商品上
if (CollectionUtils.isNotEmpty(cartGood.getProductMaterialList())) {
for (CartGoods.MaterialGoods materialGoods : cartGood.getProductMaterialList()) {
......
......@@ -59,7 +59,7 @@ public class CalculationCommonService {
*/
public void initShoppingCart(CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult
, List<CartGoods> cartGoodsList
, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, String couponCode) {
/**
* 使用促销算价赋值行记录
......@@ -78,7 +78,7 @@ public class CalculationCommonService {
originalAmount = cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(originalAmount);
this.rowRealAmount(goods, cartGoods);
this.rowRealAmount(goods, cartGoods, couponCode);
//成交价行记录
amount = cartGoods.getAmount();
totalAmount += amount;
......@@ -95,7 +95,7 @@ public class CalculationCommonService {
shoppingCartGoodsResponseVo.setTotalDiscountAmount(discountResult == null ? 0L : discountResult.getTotalDiscountAmount());
}
private void rowRealAmount(List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goods, CartGoods cartGoods) {
private void rowRealAmount(List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goods, CartGoods cartGoods, String couponCode) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods
.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid()))
......@@ -104,6 +104,14 @@ public class CalculationCommonService {
if (find == null) return;
cartGoods.setAmount(find.getRealAmount());
cartGoods.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(find.getDiscounts())){
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = find.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
cartGoods.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
//cartGoods.setOriginalAmount(find.getOriginalPrice());
/**
* 套餐的原价
......
......@@ -73,7 +73,7 @@ public class CalculationSharingCartService {
/**
* 用促销价格初始化购物车行记录成交价
*/
calculationCommonService.initShoppingCart(discountResult, cartGoodsList, shoppingCartGoodsResponseVo);
calculationCommonService.initShoppingCart(discountResult, cartGoodsList, shoppingCartGoodsResponseVo, couponPromotionVO != null ? couponPromotionVO.getCouponCode() : null);
/**
* 可用券及券折扣
......
......@@ -76,7 +76,7 @@ public class CalculationSharingEquallyService {
, CreateOrderVo.PremiumExchangeActivity premiumExchangeActivity) {
calculationCommonService.initShoppingCart(discountResult, cartGoodsList, shoppingCartGoodsResponseVo);
calculationCommonService.initShoppingCart(discountResult, cartGoodsList, shoppingCartGoodsResponseVo, couponPromotionVO != null ? couponPromotionVO.getCouponCode() : null);
/**
* 商品券\换购券
*/
......
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