Commit 352f7b26 by xiaoer.li@freemud.com

对接促销算价Alpha->fix

parent f031f802
...@@ -21,10 +21,8 @@ import org.apache.commons.lang.StringUtils; ...@@ -21,10 +21,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap; import java.util.function.Function;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST; import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST;
...@@ -66,11 +64,11 @@ public class CalculationCommonService { ...@@ -66,11 +64,11 @@ public class CalculationCommonService {
originalAmount = 0L; originalAmount = 0L;
amount = 0L; amount = 0L;
packageAmount = 0L; packageAmount = 0L;
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid())).findFirst().get(); //CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid())).findFirst().get();
if (find == null) continue; //if (find == null) continue;
this.rowRealAmount(goods, cartGoods);
//成交价行记录 //成交价行记录
//amount += find.getRealAmount() * cartGoods.getQty(); //amount += find.getRealAmount() * cartGoods.getQty();
amount += find.getRealAmount();
cartGoods.setAmount(amount); cartGoods.setAmount(amount);
totalAmount += amount; totalAmount += amount;
//原价行记录 //原价行记录
...@@ -89,6 +87,32 @@ public class CalculationCommonService { ...@@ -89,6 +87,32 @@ public class CalculationCommonService {
shoppingCartGoodsResponseVo.setTotalDiscountAmount(discountResult == null ? 0L : discountResult.getTotalDiscountAmount()); 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 { ...@@ -471,9 +495,10 @@ public class CalculationCommonService {
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : goodsList) { for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : goodsList) {
dis = goods.getDiscounts() dis = goods.getDiscounts()
.stream() .stream()
.filter(g -> types.contains(types)).findFirst().orElse(null); .filter(g -> types.contains(g.getType())).findFirst().orElse(null);
if (null == dis) continue; if (null == dis) continue;
if (goods.getGoodsQuantity() > dis.getActualGoodsNumber()) { if (goods.getGoodsQuantity() > dis.getActualGoodsNumber()) {
//goods.get
toastMsg = "该商品限" + dis.getActualGoodsNumber() + "份优惠 超出按照原价计算哦"; toastMsg = "该商品限" + dis.getActualGoodsNumber() + "份优惠 超出按照原价计算哦";
uid = goods.getCartGoodsUid(); uid = goods.getCartGoodsUid();
} }
......
...@@ -100,8 +100,9 @@ public class CalculationSharingCartService { ...@@ -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