Commit 7faae147 by yu.sun

sunyu::update::fix bug about calculate

parent 82e65da2
......@@ -433,8 +433,14 @@ public class ShoppingCartMCoffeeServiceImpl {
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
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)) {
int size = cartGoodsList.size();
......
......@@ -81,26 +81,15 @@ public class CouponDiscountCalculation {
||(ActivityTypeEnum.TYPE_31.getCode().equals(discount.getType())) || (ActivityTypeEnum.TYPE_32.getCode().equals(discount.getType()))))){
//订单级别优惠为空,则清除商品券信息,并且移除用券商品,更新商品价格
if (null != calculationDiscountResult && CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())){
Boolean removeCouponProduct = false;
Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator();
while (cartGoodsIterator.hasNext()){
if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) {
cartGoodsIterator.remove();
removeCouponProduct = true;
//价格变动
shoppingCartGoodsResponseVo.setChanged(true);
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;
}
......@@ -113,22 +102,12 @@ public class CouponDiscountCalculation {
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discounts = calculationDiscountResult.getDiscounts();
if (CollectionUtils.isEmpty(discounts)) {
for (CartGoods cartGoods:cartGoodsList) {
Boolean removeCouponProduct = false;
Iterator<CartGoods> cartGoodsIterator = cartGoodsList.iterator();
while (cartGoodsIterator.hasNext()){
if (StringUtils.isNotEmpty(cartGoodsIterator.next().getCouponCode())) {
cartGoodsIterator.remove();
removeCouponProduct = true;
break;
}
}
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();
//价格变动
shoppingCartGoodsResponseVo.setChanged(true);
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