Commit cd458058 by chongfu.liang

加料支持多份

parent 2215fffa
......@@ -14,7 +14,7 @@ public interface DistributeService {
* 初始化价格
*/
ShoppingGoodsAmountBO initShoppingCart(CalculationDiscountBO.CalculationDiscountResult discountResult
, List<CartGoods> cartGoodsList);
, List<CartGoods> cartGoodsList, String couponCode);
FullReductionBO fullReduction(BaseBo baseRequestDTO, CalculationDiscountBO.CalculationDiscountResult discountResult, List<CartGoods> cartGoodsList, ActivityQueryDto activityQueryDto);
......
......@@ -489,7 +489,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
/**
* 用促销价格初始化购物车行记录成交价
*/
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods());
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), null);
// 满减
FullReductionBO fullReductionBO = distributeService.fullReduction(baseRequestDTO, distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), activityQueryDto);
......
......@@ -400,7 +400,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
/**
* 用促销价格初始化购物车行记录成交价
*/
ShoppingGoodsAmountBO shoppingGoodsAmountBO = this.initShoppingCart(distributeBO.getCalculationDiscountBO(), distributeBO.getCartGoods());
ShoppingGoodsAmountBO shoppingGoodsAmountBO = this.initShoppingCart(distributeBO.getCalculationDiscountBO(), distributeBO.getCartGoods(), baseRequestDTO.getCouponCode());
CalculationDiscountBO.CalculationDiscountResult discountResult = null;
if (distributeBO.getCalculationDiscountBO() != null){
......@@ -1525,7 +1525,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
* 初始化价格
*/
public ShoppingGoodsAmountBO initShoppingCart(CalculationDiscountBO calculationDiscountBO
, List<CartGoods> cartGoodsList) {
, List<CartGoods> cartGoodsList, String couponCode) {
ShoppingGoodsAmountBO shoppingGoodsAmountBO = new ShoppingGoodsAmountBO();
/**
......@@ -1547,7 +1547,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
originalAmount = cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(originalAmount);
this.rowRealAmount(goods, cartGoods);
this.rowRealAmount(goods, cartGoods, couponCode);
//成交价行记录
amount = cartGoods.getAmount();
totalAmount += amount;
......@@ -1566,7 +1566,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
}
private void rowRealAmount(List<CalculationDiscountBO.CalculationDiscountResult.Goods> goods, CartGoods cartGoods) {
private void rowRealAmount(List<CalculationDiscountBO.CalculationDiscountResult.Goods> goods, CartGoods cartGoods, String couponCode) {
CalculationDiscountBO.CalculationDiscountResult.Goods find = goods
.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid()))
......@@ -1576,6 +1576,14 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
if (find == null) return;
cartGoods.setAmount(find.getRealAmount());
//cartGoods.setOriginalAmount(find.getOriginalPrice());
cartGoods.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(find.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = find.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
cartGoods.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
/**
* 套餐的原价
*/
......@@ -1603,6 +1611,14 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
}
else {
amount += mt.getRealAmount();
choice.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(mt.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = mt.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
choice.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
choice.setAmount(mt.getRealAmount().longValue());
}
originPrice += choice.getFinalPrice() * choice.getQty()*cartGoods.getQty();
......@@ -1621,6 +1637,14 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
for (CartGoods.MaterialGoods mg : cartGoods.getProductMaterialList()) {
CalculationDiscountBO.CalculationDiscountResult.Goods.SmallMaterial sm = sChoices.get(mg.getSpuId());
if (sm != null) {
mg.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(sm.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = sm.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
mg.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
mg.setAmount(sm.getRealAmount().longValue());
}
mg.setQty(mg.getQty() * cartGoods.getQty());
......
......@@ -469,7 +469,7 @@ public class AbstractListCartGoodsService implements ListCartGoodsService {
ShoppingCartGoodsBO shoppingCartGoodsBO = new ShoppingCartGoodsBO();
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods());
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), baseRequestDTO.getCouponCode());
// 满减
FullReductionBO fullReductionBO = distributeService.fullReduction(baseRequestDTO, distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), activityQueryDto);
......
......@@ -385,7 +385,7 @@ public abstract class AbstractUpdateGoodsQtyService implements UpdateGoodsQtySer
/**
* 用促销价格初始化购物车行记录成交价
*/
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods());
ShoppingGoodsAmountBO shoppingGoodsAmountBO = distributeService.initShoppingCart(distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), null);
// 满减
FullReductionBO fullReductionBO = distributeService.fullReduction(baseRequestDTO, distributeBO.getCalculationDiscountBO().getResult(), distributeBO.getCartGoods(), activityQueryDto);
......
......@@ -38,7 +38,7 @@ public class DistributeServiceImpl implements DistributeService {
@Override
public ShoppingGoodsAmountBO initShoppingCart(CalculationDiscountBO.CalculationDiscountResult discountResult, List<CartGoods> cartGoodsList) {
public ShoppingGoodsAmountBO initShoppingCart(CalculationDiscountBO.CalculationDiscountResult discountResult, List<CartGoods> cartGoodsList, String couponCode) {
ShoppingGoodsAmountBO shoppingGoodsAmountBO = new ShoppingGoodsAmountBO();
/**
......@@ -63,7 +63,7 @@ public class DistributeServiceImpl implements DistributeService {
originalAmount = cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(originalAmount);
this.rowRealAmount(goods, cartGoods);
this.rowRealAmount(goods, cartGoods, couponCode);
//成交价行记录
amount = cartGoods.getAmount();
totalAmount += amount;
......@@ -219,7 +219,7 @@ public class DistributeServiceImpl implements DistributeService {
private void rowRealAmount(List<CalculationDiscountBO.CalculationDiscountResult.Goods> goods, CartGoods cartGoods) {
private void rowRealAmount(List<CalculationDiscountBO.CalculationDiscountResult.Goods> goods, CartGoods cartGoods, String couponCode) {
CalculationDiscountBO.CalculationDiscountResult.Goods find = goods
.stream().filter((k) -> k.getCartGoodsUid().equals(cartGoods.getCartGoodsUid()))
......@@ -229,7 +229,14 @@ public class DistributeServiceImpl implements DistributeService {
if (find == null) return;
cartGoods.setAmount(find.getRealAmount());
//cartGoods.setOriginalAmount(find.getOriginalPrice());
cartGoods.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(find.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = find.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
cartGoods.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
/**
* 套餐的原价
......@@ -258,6 +265,14 @@ public class DistributeServiceImpl implements DistributeService {
}
else {
amount += mt.getRealAmount();
choice.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(mt.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = mt.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
choice.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
choice.setAmount(mt.getRealAmount().longValue());
}
originPrice += choice.getFinalPrice() * choice.getQty()*cartGoods.getQty();
......@@ -276,8 +291,18 @@ public class DistributeServiceImpl implements DistributeService {
for (CartGoods.MaterialGoods mg : cartGoods.getProductMaterialList()) {
CalculationDiscountBO.CalculationDiscountResult.Goods.SmallMaterial sm = sChoices.get(mg.getSpuId());
if (sm != null) {
mg.setCurrentCouponDiscount(0);
if (CollectionUtils.isNotEmpty(sm.getDiscounts())){
CalculationDiscountBO.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = sm.getDiscounts().stream()
.filter(p -> p.getActivityCode().equals(couponCode)).findFirst().orElse(null);
if (goodsDiscount != null){
mg.setCurrentCouponDiscount(goodsDiscount.getDiscount() == null ? 0 : goodsDiscount.getDiscount().intValue());
}
}
mg.setAmount(sm.getRealAmount().longValue());
}
mg.setQty(mg.getQty() * cartGoods.getQty());
mg.setOriginalAmount(mg.getFinalPrice() * mg.getQty());
}
}
if (GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
......
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