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