Commit 105202ec by xiaoer.li

Merge remote-tracking branch 'remotes/origin/feature/促销算价基于最新master的分支' into qa

parents 61a5e920 ba8f87ef
......@@ -57,7 +57,7 @@ public class CalculationCommonService {
/**
* 使用促销算价赋值行记录
*/
log.info("initShoppingCart:{}", JSON.toJSON(cartGoodsList));
log.info("initShoppingCart={},discountResult={}", JSON.toJSON(cartGoodsList),JSON.toJSON(discountResult));
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goods = null;
if (discountResult != null && CollectionUtils.isNotEmpty(discountResult.getGoods())) {
goods = discountResult.getGoods();
......@@ -65,17 +65,18 @@ public class CalculationCommonService {
long totalOriginalAmount = 0L, totalAmount = 0L, totalPackageAmount = 0L;
long originalAmount = 0L, amount = 0L, packageAmount = 0L;
for (CartGoods cartGoods : cartGoodsList) {
originalAmount = 0L;
amount = 0L;
packageAmount = 0L;
originalAmount = 0L;amount = 0L;packageAmount = 0L;
//原价行记录
originalAmount = cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(originalAmount);
this.rowRealAmount(goods, cartGoods);
//成交价行记录
amount = cartGoods.getAmount();
totalAmount += amount;
//原价行记录
originalAmount = cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(originalAmount);
totalOriginalAmount += originalAmount;
totalOriginalAmount += cartGoods.getOriginalAmount();
//包装费行记录
packageAmount = cartGoods.getPackPrice() * cartGoods.getQty();
cartGoods.setPackPrice(packageAmount);
......@@ -96,34 +97,39 @@ public class CalculationCommonService {
if (find == null) return;
cartGoods.setAmount(find.getRealAmount());
cartGoods.setOriginalAmount(find.getOriginalPrice());
//cartGoods.setOriginalAmount(find.getOriginalPrice());
/**
* 套餐的原价
*/
Long originPrice = 0L;
if (CollectionUtils.isNotEmpty(cartGoods.getProductComboList())) {
for (CartGoods.ComboxGoods com : cartGoods.getProductComboList()) {
originPrice +=com.getFinalPrice()*cartGoods.getQty();
}
}
/**
* 可选搭配
*/
if (CollectionUtils.isNotEmpty(cartGoods.getProductGroupList())) {
Integer type2 = 2;
Map<String, CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial> gChoices = find.getSmallMaterial()
.stream().filter(d -> type2.equals(d.getType()))
.collect(Collectors.toMap(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial::getGoodsId, Function.identity(), (k1, k2) -> k1));
long amount = 0L;
long original = 0L;
//可选搭配
for (CartGoods.ComboxGoods choice : cartGoods.getProductGroupList()) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial mt = gChoices.get(choice.getGoodsId());
if (mt == null) {
amount += choice.getAmount() * cartGoods.getQty();
original += choice.getOriginalPrice() * cartGoods.getQty();
} else {
amount += choice.getAmount() * choice.getQty();
}
else {
amount += mt.getRealAmount();
original += choice.getFinalPrice() * choice.getQty();
choice.setAmount(mt.getRealAmount().longValue());
choice.setOriginalAmount(original);
}
originPrice += choice.getFinalPrice() * choice.getQty();
}
cartGoods.setAmount(cartGoods.getAmount() + amount);
cartGoods.setOriginalAmount(cartGoods.getOriginalMaterialAmount() + original);
}
/**
* 小料
......@@ -141,6 +147,10 @@ public class CalculationCommonService {
}
}
}
if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
cartGoods.setOriginalAmount(originPrice);
}
}
/**
......
......@@ -74,8 +74,8 @@ public class CouponSharingService {
//List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.CouponResults> couponResultsList = calculationDiscountResult.getCouponDiscounts();
List<Integer> asList = Arrays.asList(3, 31);
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> couponResultsList = calculationDiscountResult.getDiscounts();
Optional<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> first = couponResultsList.stream().filter(d -> asList.contains(d.getType())).findFirst();
couponDiscount = first.get().getDiscount().longValue();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount first = couponResultsList.stream().filter(d -> asList.contains(d.getType())).findFirst().orElse(null);
if (first!=null) couponDiscount = first.getDiscount().longValue();
}
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