Commit 48438b0b by chongfu.liang

x减

parent d5d599e0
...@@ -25,6 +25,7 @@ import com.freemud.application.sdk.api.log.ErrorLog; ...@@ -25,6 +25,7 @@ import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum; import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -206,7 +207,13 @@ public class CalculationSharingDiscountService { ...@@ -206,7 +207,13 @@ public class CalculationSharingDiscountService {
convert2SendPoint(result, discountDTO); convert2SendPoint(result, discountDTO);
} }
// 将x件y折的0折数据转为赠品 // 将x件y折的0折数据转为赠品
giftSharingService.xPiecesYFoldAdapter(sharingDiscountResponseDto); Pair<String, Integer> pair = giftSharingService.xPiecesYFoldAdapter(sharingDiscountResponseDto);
if (pair != null){
CartGoods cartGoods = cartGoodsList.stream().filter(p -> p.getCartGoodsUid().equals(pair.getKey())).findFirst().orElseGet(null);
if (cartGoods != null){
cartGoods.setQty(pair.getValue());
}
}
result.setValidCouponMap(validCouponMap); result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(deliveryAmount); result.setDeliveryAmount(deliveryAmount);
......
...@@ -16,6 +16,7 @@ import cn.freemud.service.active.ActiveService; ...@@ -16,6 +16,7 @@ import cn.freemud.service.active.ActiveService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl; import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import javafx.util.Pair;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -111,14 +112,14 @@ public class GiftSharingService { ...@@ -111,14 +112,14 @@ public class GiftSharingService {
public void xPiecesYFoldAdapter(CalculationSharingDiscountResponseDto sharingDiscountResponseDto) { public Pair<String, Integer> xPiecesYFoldAdapter(CalculationSharingDiscountResponseDto sharingDiscountResponseDto) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult result = sharingDiscountResponseDto.getResult(); CalculationSharingDiscountResponseDto.CalculationDiscountResult result = sharingDiscountResponseDto.getResult();
if (result == null){ if (result == null){
return; return null;
} }
if (CollectionUtils.isEmpty(result.getDiscounts()) && CollectionUtils.isEmpty(result.getGoods())){ if (CollectionUtils.isEmpty(result.getDiscounts()) && CollectionUtils.isEmpty(result.getGoods())){
return; return null;
} }
// 0折的x件y折活动 // 0折的x件y折活动
...@@ -126,13 +127,14 @@ public class GiftSharingService { ...@@ -126,13 +127,14 @@ public class GiftSharingService {
.filter(p -> ActivityTypeEnum.TYPE_104.getCode().equals(p.getType()) && p.getZeroDiscount()) .filter(p -> ActivityTypeEnum.TYPE_104.getCode().equals(p.getType()) && p.getZeroDiscount())
.map(p -> p.getActivityCode()).collect(Collectors.toList()); .map(p -> p.getActivityCode()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(activityCode)){ if (CollectionUtils.isEmpty(activityCode)){
return; return null;
} }
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> discountGoodsList = result.getGoods().stream().filter(p -> CollectionUtils.isNotEmpty(p.getDiscounts()) List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> discountGoodsList = result.getGoods().stream().filter(p -> CollectionUtils.isNotEmpty(p.getDiscounts())
&& p.getDiscounts().stream().filter(discount -> activityCode.contains(discount.getActivityCode())).count() > 0).collect(Collectors.toList()); && p.getDiscounts().stream().filter(discount -> activityCode.contains(discount.getActivityCode())).count() > 0).collect(Collectors.toList());
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = result.getGoods(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = result.getGoods();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : discountGoodsList){ for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : discountGoodsList){
int sendQty = 0;
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts() List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts()
.stream().filter(p -> activityCode.contains(p.getActivityCode())).collect(Collectors.toList()); .stream().filter(p -> activityCode.contains(p.getActivityCode())).collect(Collectors.toList());
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : discountList){ for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount discount : discountList){
...@@ -143,9 +145,26 @@ public class GiftSharingService { ...@@ -143,9 +145,26 @@ public class GiftSharingService {
sendGoods.setGoodsQuantity(discount.getActualGoodsNumber()); sendGoods.setGoodsQuantity(discount.getActualGoodsNumber());
sendGoods.setOriginalPrice(discount.getSignleDiscount()); sendGoods.setOriginalPrice(discount.getSignleDiscount());
sendGoods.setRealAmount(0L); sendGoods.setRealAmount(0L);
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> goodsDiscounts = new ArrayList<>();
CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount goodsDiscount = new CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount();
goodsDiscount.setActivityCode(discount.getActivityCode());
goodsDiscount.setActivityDesc(discount.getActivityDesc());
goodsDiscount.setActivityName(discount.getActivityName());
goodsDiscount.setActualGoodsNumber(discount.getActualGoodsNumber());
goodsDiscount.setDiscount(discount.getDiscount());
goodsDiscount.setGoodsId(discount.getGoodsId());
goodsDiscount.setSignleDiscount(discount.getSignleDiscount());
goodsDiscount.setType(discount.getType());
goodsDiscounts.add(goodsDiscount);
sendGoods.setDiscounts(goodsDiscounts);
goodsList.add(sendGoods); goodsList.add(sendGoods);
sendQty += discount.getActualGoodsNumber();
} }
Pair<String, Integer> pair = new Pair<>(goods.getCartGoodsUid(), goods.getGoodsQuantity() - sendQty);
return pair;
} }
return null;
} }
......
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