Commit 87d4b340 by 缪晖

Merge branch 'feature/20201208_collageOrder_miaohui' into 'develop'

Feature/20201208 collage order miaohui

See merge request !74
parents 288e8362 3a4a7525
...@@ -708,7 +708,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -708,7 +708,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
updatePackPrice(shoppingCartGoodsResponseVo, shoppingCartGoodsDto); updatePackPrice(shoppingCartGoodsResponseVo, shoppingCartGoodsDto);
// 重新计算购物车行折扣总金额 // 重新计算购物车行折扣总金额
//updateTotalDiscountAmount(shoppingCartGoodsDto); updateTotalDiscountAmount(calculationDiscountResult, shoppingCartGoodsDto);
return ResponseUtil.success(shoppingCartGoodsDto); return ResponseUtil.success(shoppingCartGoodsDto);
} }
...@@ -733,13 +733,14 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -733,13 +733,14 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
/** /**
* 重新计算拼单购物车行总折扣金额 * 重新计算拼单购物车行总折扣金额
*/ */
private void updateTotalDiscountAmount(ShoppingCartGoodsDto shoppingCartGoodsDto) { private void updateTotalDiscountAmount(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto) {
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getProducts()) { if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getProducts() && null != calculationDiscountResult.getGoods()) {
shoppingCartGoodsDto.getProducts().stream().forEach(product -> { shoppingCartGoodsDto.getProducts().stream().forEach(product -> {
List<ActivityDiscountsDto> activityDiscountsDtos = product.getActivityDiscountsDtos(); calculationDiscountResult.getGoods().stream().forEach(goods -> {
if (null != activityDiscountsDtos && !activityDiscountsDtos.isEmpty()) { if (goods.getCartGoodsUid().equals(product.getCartGoodsUid())) {
product.setTotalDiscountAmount(activityDiscountsDtos.stream().mapToInt(ActivityDiscountsDto::getDiscountAmount).sum()); product.setTotalDiscountAmount(Integer.valueOf(String.valueOf(goods.getDiscountAmount())));
} }
});
}); });
} }
} }
......
...@@ -98,12 +98,12 @@ public class TimeSalePromotionService implements IPromotionService { ...@@ -98,12 +98,12 @@ public class TimeSalePromotionService implements IPromotionService {
// 商品实际享受优惠的数量: key:skuId; value:实际数量 // 商品实际享受优惠的数量: key:skuId; value:实际数量
Map<String, Integer> numberMap = new HashMap<>(); Map<String, Integer> numberMap = new HashMap<>();
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1)); .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getCartGoodsUid, Function.identity(), (k1, k2) -> k1));
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods; ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods;
// 特价商品没有匹配 或 加价购商品 直接跳出循环 // 特价商品没有匹配 或 加价购商品 直接跳出循环
if ((goods = goodsMap.get(cartGoods.getSkuId())) == null || ObjectUtils.equals(ActivityTypeEnum.TYPE_81.getCode(), cartGoods.getActivityType())) { if ((goods = goodsMap.get(cartGoods.getCartGoodsUid())) == null || ObjectUtils.equals(ActivityTypeEnum.TYPE_81.getCode(), cartGoods.getActivityType())) {
continue; continue;
} }
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), Arrays.asList(ActivityTypeEnum.TYPE_21.getCode(), ActivityTypeEnum.TYPE_2.getCode())); ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = getGoodsDiscount(goods.getDiscounts(), Arrays.asList(ActivityTypeEnum.TYPE_21.getCode(), ActivityTypeEnum.TYPE_2.getCode()));
...@@ -116,7 +116,7 @@ public class TimeSalePromotionService implements IPromotionService { ...@@ -116,7 +116,7 @@ public class TimeSalePromotionService implements IPromotionService {
} }
Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId()); Integer actualGoodsNumber = numberMap.get(cartGoods.getSkuId());
if (actualGoodsNumber > 0) { if (actualGoodsNumber > 0) {
Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goodsDiscount.getDiscount() * actualGoodsNumber / goodsDiscount.getActualGoodsNumber() : goodsDiscount.getDiscount() * cartGoods.getQty() / goodsDiscount.getActualGoodsNumber(); Long totalDiscountAmount = cartGoods.getQty() > actualGoodsNumber ? goods.getDiscountAmount() * actualGoodsNumber / goods.getActualGoodsNumber() : goods.getDiscountAmount() * cartGoods.getQty() / goods.getActualGoodsNumber();
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode()); activityDiscountsDto.setActivityCode(goodsDiscount.getActivityCode());
activityDiscountsDto.setActivityName(goodsDiscount.getActivityName()); activityDiscountsDto.setActivityName(goodsDiscount.getActivityName());
......
...@@ -81,12 +81,12 @@ public class TwoNDiscountServiceImpl implements IPromotionService { ...@@ -81,12 +81,12 @@ public class TwoNDiscountServiceImpl implements IPromotionService {
return null; return null;
} }
List<ApportionGoodsDetail> list = Lists.newArrayList(); List<ApportionGoodsDetail> list = Lists.newArrayList();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods apportionGood : calculationDiscountResult.getGoods()) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGood : calculationDiscountResult.getApportionGoods()) {
if (!CollectionUtils.isEmpty(apportionGood.getDiscounts())) { if (!CollectionUtils.isEmpty(apportionGood.getApportionDetails())) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount apportionDetail : apportionGood.getDiscounts()) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails apportionDetail : apportionGood.getApportionDetails()) {
if (apportionDetail.getType().equals(ActivityTypeEnum.TYPE_53.getCode())) { if (apportionDetail.getActivityType().equals(ActivityTypeEnum.TYPE_53.getCode())) {
ApportionGoodsDetail apportionGoodsDetail = new ApportionGoodsDetail(); ApportionGoodsDetail apportionGoodsDetail = new ApportionGoodsDetail();
apportionGoodsDetail.setActivityApportionAmount(apportionDetail.getDiscount()); apportionGoodsDetail.setActivityApportionAmount(apportionDetail.getActivityApportionAmount());
apportionGoodsDetail.setActivityCode(apportionDetail.getActivityCode()); apportionGoodsDetail.setActivityCode(apportionDetail.getActivityCode());
apportionGoodsDetail.setActivityName(apportionDetail.getActivityName()); apportionGoodsDetail.setActivityName(apportionDetail.getActivityName());
apportionGoodsDetail.setGoodsId(apportionGood.getGoodsId()); apportionGoodsDetail.setGoodsId(apportionGood.getGoodsId());
......
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