Commit 7faae147 by yu.sun

sunyu::update::fix bug about calculate

parent 82e65da2
...@@ -433,8 +433,14 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -433,8 +433,14 @@ public class ShoppingCartMCoffeeServiceImpl {
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode, calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null); cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null);
// 促销算价若未返回优惠信息有可能会变更购物车数据,重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService); // 促销算价若未返回优惠信息有可能会变更购物车数据,重新存储最新购物车,并进行新一次的算价
if (shoppingCartGoodsResponseVo.getChanged()) {
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo,null);
}
//把月卡放到最后 //把月卡放到最后
if (CollectionUtils.isNotEmpty(cartGoodsList)) { if (CollectionUtils.isNotEmpty(cartGoodsList)) {
int size = cartGoodsList.size(); int size = cartGoodsList.size();
......
...@@ -81,26 +81,15 @@ public class CouponDiscountCalculation { ...@@ -81,26 +81,15 @@ public class CouponDiscountCalculation {
||(ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))))){ ||(ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))))){
//订单级别优惠为空,则清除商品券信息,并且移除用券商品,更新商品价格 //订单级别优惠为空,则清除商品券信息,并且移除用券商品,更新商品价格
if (null != calculationDiscountResult && CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())){ if (null != calculationDiscountResult && CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())){
Boolean removeCouponProduct = false;
Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator(); Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator();
while (cartGoodsIterator.hasNext()){ while (cartGoodsIterator.hasNext()){
if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) { if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) {
cartGoodsIterator.remove(); cartGoodsIterator.remove();
removeCouponProduct = true; //价格变动
shoppingCartGoodsResponseVo.setChanged(true);
break; break;
} }
} }
Iterator<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> couponProduct = calculationDiscountResult.getGoods().iterator();
for (CartGoods cartGoods : cartGoodsList) {
while (removeCouponProduct && couponProduct.hasNext()){
if (couponProduct.next().getCartGoodsUid().equals(cartGoods.getCartGoodsUid())){
calculationDiscountResult.setTotalAmount(calculationDiscountResult.getTotalAmount() - couponProduct.next().getRealAmount());
calculationDiscountResult.setOriginalTotalAmount(calculationDiscountResult.getOriginalTotalAmount() - couponProduct.next().getOriginalPrice());
couponProduct.remove();
break;
}
}
}
} }
return; return;
} }
...@@ -113,22 +102,12 @@ public class CouponDiscountCalculation { ...@@ -113,22 +102,12 @@ public class CouponDiscountCalculation {
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = calculationDiscountResult.getDiscounts(); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = calculationDiscountResult.getDiscounts();
if (CollectionUtils.isEmpty(discounts)) { if (CollectionUtils.isEmpty(discounts)) {
for (CartGoods cartGoods:cartGoodsList) { for (CartGoods cartGoods:cartGoodsList) {
Boolean removeCouponProduct = false;
Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator(); Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator();
while (cartGoodsIterator.hasNext()){ while (cartGoodsIterator.hasNext()){
if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) { if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) {
cartGoodsIterator.remove(); cartGoodsIterator.remove();
removeCouponProduct = true; //价格变动
break; shoppingCartGoodsResponseVo.setChanged(true);
}
}
Iterator<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> couponProduct = calculationDiscountResult.getGoods().iterator();
while (removeCouponProduct && couponProduct.hasNext()){
if (couponProduct.next().getCartGoodsUid().equals(cartGoods.getCartGoodsUid())){
calculationDiscountResult.setTotalAmount(calculationDiscountResult.getTotalAmount() - couponProduct.next().getRealAmount());
calculationDiscountResult.setOriginalTotalAmount(calculationDiscountResult.getOriginalTotalAmount() - couponProduct.next().getOriginalPrice());
couponProduct.remove();
break; break;
} }
} }
......
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