Commit a95ccbf5 by xiaoer.li@freemud.com

Merge remote-tracking branch 'remotes/origin/feature/1.9.30_买一赠一&第X件Y折' into develop

parents 00f6d101 eb541a94
......@@ -84,6 +84,7 @@ public class ShoppingCartConvertAdapter {
public ShoppingCartGoodsDto.CartGoodsDetailDto convertCartGoods2DetailGoods(CartGoods cartGoods, List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> apportionGoodsList, Map<String, String> duplicateGoodsMap) {
// 设置基础信息
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = new ShoppingCartGoodsDto.CartGoodsDetailDto();
cartGoodsDetailDto.setCartGoodsUid(cartGoods.getCartGoodsUid());
cartGoodsDetailDto.setSpuId(cartGoods.getSpuId());
cartGoodsDetailDto.setSpuName(cartGoods.getSpuName());
cartGoodsDetailDto.setSkuId(StringUtils.isEmpty(cartGoods.getSkuId()) ? cartGoods.getSpuId() : cartGoods.getSkuId());
......
......@@ -87,6 +87,10 @@ public class ActivityCalculationDiscountRequestDto {
*/
private String goodsId;
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* 商品品类
*/
private String category;
......
......@@ -347,6 +347,10 @@ public class ActivityCalculationDiscountResponseDto {
private Integer apportionAmount;
private List<ApportionDetails> apportionDetails;
/**
* 购物车行记录
*/
private String cartGoodsUid;
@Data
public static class ApportionDetails {
......
......@@ -125,6 +125,10 @@ public class ShoppingCartGoodsDto {
@Data
public static class CartGoodsDetailDto {
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* spuId
*/
private String spuId;
......
......@@ -81,11 +81,11 @@ public class BuySendPromotionService implements IPromotionService {
//Todo
List<String> activitySpuIds = new ArrayList<>();
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods> sendGoodsMap = new HashMap<>();
Map<String, Integer> maxNums = new HashMap<>();
//Map<String, Integer> maxNums = new HashMap<>();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity activityList : sendActivityLists) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGood : activityList.getSendGoods()) {
sendGoodsMap.put(sendGood.getGoodsId(), sendGood);
maxNums.put(sendGood.getGoodsId(), activityList.getMaxNum());
//maxNums.put(sendGood.getGoodsId(), activityList.getMaxNum());
activitySpuIds.add(sendGood.getGoodsId());
}
}
......@@ -130,11 +130,11 @@ public class BuySendPromotionService implements IPromotionService {
}
*/
for (CartGoods cartGoods : newCartGoodsList) {
Integer max = maxNums.get(cartGoods.getGoodsId());
//if (max <= 0) continue;
if (max < cartGoods.getQty()) {
cartGoods.setQty(max);
}
//Integer max = maxNums.get(cartGoods.getGoodsId());
////if (max <= 0) continue;
//if (max < cartGoods.getQty()) {
// cartGoods.setQty(max);
//}
givePackAmount = givePackAmount + cartGoods.getPackPrice() * cartGoods.getQty();
giveTotalAmount = giveTotalAmount + cartGoods.getOriginalPrice() * cartGoods.getQty();
cartGoods.setOriginalAmount(cartGoods.getOriginalPrice() * cartGoods.getQty());
......
......@@ -743,7 +743,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String cartGoodsUid = cartGoods.getCartGoodsUid();
// 商品不是商品券
if (!cartGoodsUid.startsWith(CommonsConstant.COUPON_PREFIX)) {
this.addCalculationDiscountGoods(calculationDiscountGoodsList, cartGoods.getGoodsId(), cartGoods.getQty(), cartGoods.getFinalPrice(),cartGoods.getMemberDiscount());
this.addCalculationDiscountGoods(calculationDiscountGoodsList, cartGoods.getGoodsId(), cartGoods.getQty(), cartGoods.getFinalPrice(), cartGoods.getMemberDiscount(), cartGoodsUid);
}
// 商品是商品券
else {
......@@ -767,13 +767,13 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupons.add(coupon);
// 添加商品券代表的商品
String goodsId = StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId();
this.addCalculationDiscountGoods(calculationDiscountGoodsList, goodsId, 1, checkSpqInfoResponseDto.getPrice(),100);
this.addCalculationDiscountGoods(calculationDiscountGoodsList, goodsId, 1, checkSpqInfoResponseDto.getPrice(), 100, cartGoodsUid);
}
}
// 当加价购商品不为空时
if (CollectionUtils.isNotEmpty(sendGoodsList)) {
for (ShoppingCartInfoRequestVo.SendGoods sendGoods : sendGoodsList) {
this.addCalculationDiscountGoods(calculationDiscountGoodsList, sendGoods.getGoodsId(), sendGoods.getQty(), sendGoods.getOriginalPrice(),100);
this.addCalculationDiscountGoods(calculationDiscountGoodsList, sendGoods.getGoodsId(), sendGoods.getQty(), sendGoods.getOriginalPrice(), 100, "");
}
}
calculationDiscountGoodsList.removeIf(calculationDiscountGoods -> (calculationDiscountGoods.getGoodsQuantity().equals(0)));
......@@ -823,9 +823,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* @param originalPrice
*/
private void addCalculationDiscountGoods(List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList,
String goodsId, Integer goodsQuantity, Long originalPrice,Integer memberDiscount) {
String goodsId, Integer goodsQuantity, Long originalPrice, Integer memberDiscount, String cartGoodsUid) {
ActivityCalculationDiscountRequestDto.CalculationDiscountGoods calculationDiscountGoods = new ActivityCalculationDiscountRequestDto.CalculationDiscountGoods();
calculationDiscountGoods.setGoodsId(goodsId);
calculationDiscountGoods.setCartGoodsUid(cartGoodsUid);
calculationDiscountGoods.setGoodsQuantity(goodsQuantity);
calculationDiscountGoods.setOriginalPrice(originalPrice);
calculationDiscountGoods.setMemberDiscount(memberDiscount);
......
......@@ -47,7 +47,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
if (apportionGoodsDetail != null && apportionGoodsDetail.size() > 0) {
for (CartGoods cartGoods : cartGoodsList) {
for (ApportionGoodsDetail detail : apportionGoodsDetail) {
if (detail.getGoodsId().equals(cartGoods.getGoodsId())) {
if (detail.getCartGoodsUid().equals(cartGoods.getCartGoodsUid())) {
cartGoods.setAmount(cartGoods.getAmount() - detail.getActivityApportionAmount());
}
}
......@@ -77,7 +77,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
if (apportionGoodsDetail != null && apportionGoodsDetail.size() > 0) {
for (ShoppingCartGoodsDto.CartGoodsDetailDto product : shoppingCartGoodsDto.getProducts()) {
for (ApportionGoodsDetail detail : apportionGoodsDetail) {
if (detail.getGoodsId().equals(product.getSkuId())) {
if (detail.getCartGoodsUid().equals(product.getCartGoodsUid())) {
product.setTotalDiscountAmount(product.getTotalDiscountAmount() + detail.getActivityApportionAmount().intValue());
List<ActivityDiscountsDto> activityDiscountsDtoList = new ArrayList<>();
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
......@@ -131,6 +131,7 @@ public class XyDiscountServiceImpl implements IPromotionService {
detail.setActivityCode(apportionDetail.getActivityCode());
detail.setActivityName(apportionDetail.getActivityName());
detail.setGoodsId(apportionGood.getGoodsId());
detail.setCartGoodsUid(apportionGood.getCartGoodsUid());
apportionGoodsDetail.add(detail);
}
}
......@@ -153,6 +154,10 @@ public class XyDiscountServiceImpl implements IPromotionService {
*/
private Long activityApportionAmount;
private String goodsId;
/**
* 购物车行uid
*/
private String cartGoodsUid;
}
......
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