Commit 352f7b26 by xiaoer.li@freemud.com

对接促销算价Alpha->fix

parent f031f802
......@@ -21,10 +21,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST;
......@@ -66,11 +64,11 @@ public class CalculationCommonService {
originalAmount = 0L;
amount = 0L;
packageAmount = 0L;
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid())).findFirst().get();
if (find == null) continue;
//CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid())).findFirst().get();
//if (find == null) continue;
this.rowRealAmount(goods, cartGoods);
//成交价行记录
//amount += find.getRealAmount() * cartGoods.getQty();
amount += find.getRealAmount();
cartGoods.setAmount(amount);
totalAmount += amount;
//原价行记录
......@@ -89,6 +87,32 @@ public class CalculationCommonService {
shoppingCartGoodsResponseVo.setTotalDiscountAmount(discountResult == null ? 0L : discountResult.getTotalDiscountAmount());
}
private void rowRealAmount(List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goods, CartGoods cartGoods) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods
.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid()))
.findFirst()
.get();
if (find == null) return;
cartGoods.setAmount(find.getRealAmount());
if (CollectionUtils.isEmpty(cartGoods.getProductGroupList())) return;
Map<String, CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial> choices = find.getSmallMaterial()
.stream().filter(d -> "2".equals(d.getType()))
.collect(Collectors.toMap(CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial::getGoodsId, Function.identity(), (k1, k2) -> k1));
long amount = 0L;
for (CartGoods.ComboxGoods choice : cartGoods.getProductGroupList()) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.SmallMaterial mt = choices.get(choice.getGoodsId());
if (mt != null) {
amount = choice.getAmount() * cartGoods.getQty();
} else {
amount = mt.getRealAmount();
choice.setAmount(mt.getRealAmount().longValue());
}
}
cartGoods.setAmount(cartGoods.getAmount() + amount);
}
/**
* 设置行记录享受的优惠及总优惠
*
......@@ -471,9 +495,10 @@ public class CalculationCommonService {
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : goodsList) {
dis = goods.getDiscounts()
.stream()
.filter(g -> types.contains(types)).findFirst().orElse(null);
.filter(g -> types.contains(g.getType())).findFirst().orElse(null);
if (null == dis) continue;
if (goods.getGoodsQuantity() > dis.getActualGoodsNumber()) {
//goods.get
toastMsg = "该商品限" + dis.getActualGoodsNumber() + "份优惠 超出按照原价计算哦";
uid = goods.getCartGoodsUid();
}
......
......@@ -100,8 +100,9 @@ public class CalculationSharingCartService {
/**
* 可选搭配的价格累加到套餐的成交价上
* this.combineGroupRowAmount(cartGoodsList);
*/
this.combineGroupRowAmount(cartGoodsList);
/**
* 特价类型超出部分提示
......
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