Commit 72d2c3cf by xiaoer.li@freemud.com

Merge remote-tracking branch 'remotes/origin/bugfix_套餐折扣'

parents e6e35ef3 fdc5ab57
...@@ -136,7 +136,7 @@ public class ShoppingCartConvertAdapter { ...@@ -136,7 +136,7 @@ public class ShoppingCartConvertAdapter {
* 2. 普通商品:cartGoodsDetailDto.couponCode空,去掉32的 * 2. 普通商品:cartGoodsDetailDto.couponCode空,去掉32的
*/ */
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails> apportionDetails = apportionGoods.getApportionDetails().stream().filter(detail -> !detail.getActivityType().equals(ActivityTypeEnum.TYPE_32.getCode()) List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails> apportionDetails = apportionGoods.getApportionDetails().stream().filter(detail -> !detail.getActivityType().equals(ActivityTypeEnum.TYPE_32.getCode())
&& !detail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_2.getCode())).collect(Collectors.toList()); && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_104.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_2.getCode()) && !detail.getActivityType().equals(ActivityTypeEnum.TYPE_21.getCode())).collect(Collectors.toList());
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails detail : apportionDetails) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods.ApportionDetails detail : apportionDetails) {
List<ActivityDiscountsDto> currentDiscount = activityDiscountsDtoList.stream().filter(discount -> ObjectUtils.equals(discount.getActivityCode(), detail.getActivityCode())).collect(Collectors.toList()); List<ActivityDiscountsDto> currentDiscount = activityDiscountsDtoList.stream().filter(discount -> ObjectUtils.equals(discount.getActivityCode(), detail.getActivityCode())).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(currentDiscount)) { if (CollectionUtils.isNotEmpty(currentDiscount)) {
...@@ -170,7 +170,9 @@ public class ShoppingCartConvertAdapter { ...@@ -170,7 +170,9 @@ public class ShoppingCartConvertAdapter {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGoods : apportionGoodsList) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGoods : apportionGoodsList) {
//折扣=所有折扣和*百分比(当前行商品数量/购物车总商品数量) //折扣=所有折扣和*百分比(当前行商品数量/购物车总商品数量)
discountPrice += apportionGoods.getApportionDetails().stream().filter(d -> ObjectUtils.notEqual(ActivityTypeEnum.TYPE_32.getCode(), d.getActivityType()) discountPrice += apportionGoods.getApportionDetails().stream().filter(d -> ObjectUtils.notEqual(ActivityTypeEnum.TYPE_32.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_104.getCode(), d.getActivityType()) && ObjectUtils.notEqual(ActivityTypeEnum.TYPE_2.getCode(), d.getActivityType()) && ObjectUtils.notEqual(ActivityTypeEnum.TYPE_104.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_2.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_21.getCode(), d.getActivityType())
).mapToLong(t -> t.getActivityApportionAmount() * apportionGoods.getGoodsQuantity()).sum() * cartGoodsDetailDto.getQty() / goodsTotalQty; ).mapToLong(t -> t.getActivityApportionAmount() * apportionGoods.getGoodsQuantity()).sum() * cartGoodsDetailDto.getQty() / goodsTotalQty;
} }
String currentGoodsIdMap = duplicateGoodsMap.get(cartGoodsDetailDto.getSkuId()); String currentGoodsIdMap = duplicateGoodsMap.get(cartGoodsDetailDto.getSkuId());
...@@ -186,7 +188,9 @@ public class ShoppingCartConvertAdapter { ...@@ -186,7 +188,9 @@ public class ShoppingCartConvertAdapter {
Long totalDiscountAmount = 0L; Long totalDiscountAmount = 0L;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGoods : apportionGoodsList) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods apportionGoods : apportionGoodsList) {
totalDiscountAmount += apportionGoods.getApportionDetails().stream().filter(d -> ObjectUtils.notEqual(ActivityTypeEnum.TYPE_32.getCode(), d.getActivityType()) totalDiscountAmount += apportionGoods.getApportionDetails().stream().filter(d -> ObjectUtils.notEqual(ActivityTypeEnum.TYPE_32.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_104.getCode(), d.getActivityType()) && ObjectUtils.notEqual(ActivityTypeEnum.TYPE_2.getCode(), d.getActivityType()) && ObjectUtils.notEqual(ActivityTypeEnum.TYPE_104.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_2.getCode(), d.getActivityType())
&& ObjectUtils.notEqual(ActivityTypeEnum.TYPE_21.getCode(), d.getActivityType())
).mapToLong(t -> t.getActivityApportionAmount() * apportionGoods.getGoodsQuantity()).sum(); ).mapToLong(t -> t.getActivityApportionAmount() * apportionGoods.getGoodsQuantity()).sum();
} }
//折扣为:总折扣金额-已折扣金额 //折扣为:总折扣金额-已折扣金额
...@@ -400,4 +404,14 @@ public class ShoppingCartConvertAdapter { ...@@ -400,4 +404,14 @@ public class ShoppingCartConvertAdapter {
cartGoods.setClassificationId(getProductsVo.getCategory()); cartGoods.setClassificationId(getProductsVo.getCategory());
cartGoods.setClassificationName(getProductsVo.getCategoryName()); cartGoods.setClassificationName(getProductsVo.getCategoryName());
} }
/**
* 兼容 skuId 不传转null 导致库存校验 NullPointerException
*
* @param addShoppingCartGoodsRequestVo
*/
public static void convent2SkuId(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo) {
String skuId = StringUtils.isNotBlank(addShoppingCartGoodsRequestVo.getSkuId()) ? addShoppingCartGoodsRequestVo.getSkuId() : "";
addShoppingCartGoodsRequestVo.setSkuId(skuId);
}
} }
...@@ -213,9 +213,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -213,9 +213,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/ */
@Override @Override
public BaseResponse addGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo) { public BaseResponse addGoods(AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo) {
ShoppingCartConvertAdapter.convent2SkuId(addShoppingCartGoodsRequestVo);
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo(); ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo = new ShoppingCartGoodsResponseVo();
// 获取用户信息 // 获取用户信息
CustomerInfoVo assortmentCustomerInfoVo =getCustomerInfoVo(addShoppingCartGoodsRequestVo.getSessionId()); CustomerInfoVo assortmentCustomerInfoVo = getCustomerInfoVo(addShoppingCartGoodsRequestVo.getSessionId());
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo); UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo);
String userId = userLoginInfoDto.getMemberId(); String userId = userLoginInfoDto.getMemberId();
String partnerId = addShoppingCartGoodsRequestVo.getPartnerId(); String partnerId = addShoppingCartGoodsRequestVo.getPartnerId();
......
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