Commit 215da402 by chongfu.liang

fix

parent 23842a35
......@@ -79,6 +79,7 @@ import com.google.common.collect.Lists;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -1254,17 +1255,18 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discountDTO = result.getDiscounts().stream().filter(d -> 221 == d.getType()).findFirst().get();
convert2SendPoint(result, discountDTO);
}
Pair<String, Integer> pair = giftSharingService.xPiecesYFoldAdapter(activityCalculationDiscountResponseDto);
Map<String, Integer> qtyMap = giftSharingService.xPiecesYFoldAdapter(activityCalculationDiscountResponseDto);
if (pair != null){
CartGoods cartGoods = cartGoodsList.stream().filter(p -> p.getCartGoodsUid().equals(pair.getKey())).findFirst().orElseGet(null);
if (cartGoods != null){
cartGoods.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
cartGoods.setActualQty(cartGoods.getQty());
cartGoods.setQty(pair.getValue());
if (MapUtils.isNotEmpty(qtyMap)){
for (String key : qtyMap.keySet()){
CartGoods cartGoods = cartGoodsList.stream().filter(p -> p.getCartGoodsUid().equals(key)).findFirst().orElseGet(null);
if (cartGoods != null){
cartGoods.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
cartGoods.setActualQty(cartGoods.getQty());
cartGoods.setQty(qtyMap.get(key));
}
}
}
result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(distributionFee);
result.setDistributionFee(result.getDistributionFee());
......
......@@ -28,6 +28,7 @@ import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBase
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -207,13 +208,15 @@ public class CalculationSharingDiscountService {
convert2SendPoint(result, discountDTO);
}
// 将x件y折的0折数据转为赠品
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.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
cartGoods.setActualQty(cartGoods.getQty());
cartGoods.setQty(pair.getValue());
Map<String, Integer> qtyMap = giftSharingService.xPiecesYFoldAdapter(sharingDiscountResponseDto);
if (MapUtils.isNotEmpty(qtyMap)){
for (String key : qtyMap.keySet()){
CartGoods cartGoods = cartGoodsList.stream().filter(p -> p.getCartGoodsUid().equals(key)).findFirst().orElseGet(null);
if (cartGoods != null){
cartGoods.setActivityType(ActivityTypeEnum.TYPE_104.getCode());
cartGoods.setActualQty(cartGoods.getQty());
cartGoods.setQty(qtyMap.get(key));
}
}
}
result.setValidCouponMap(validCouponMap);
......
......@@ -22,10 +22,7 @@ import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -65,7 +62,7 @@ public class GiftSharingService {
this.setCartGoods(discountResult, cartGoodsList, beanDTOList,shoppingCartInfoRequestVo, partnerId, flag);
}
public Pair<String, Integer> xPiecesYFoldAdapter(ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto) {
public Map<String, Integer> xPiecesYFoldAdapter(ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult result = activityCalculationDiscountResponseDto.getResult();
if (result == null){
......@@ -85,8 +82,8 @@ public class GiftSharingService {
List<ActivityCalculationDiscountResponseDto.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());
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> goodsList = result.getSendGoods();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity> goodsList = result.getSendGoods() == null ? new ArrayList<>() : result.getSendGoods();
Map<String, Integer> qtyMap = new HashMap<>();
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods goods : discountGoodsList){
int sendQty = 0;
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts()
......@@ -106,15 +103,15 @@ public class GiftSharingService {
sendGoods.setActivityType(ActivityTypeEnum.TYPE_1040.getCode());
goodsList.add(sendGoods);
}
Pair<String, Integer> pair = new Pair<>(goods.getCartGoodsUid(), goods.getGoodsQuantity() - sendQty);
return pair;
qtyMap.put(goods.getCartGoodsUid(), goods.getGoodsQuantity() - sendQty);
}
return null;
result.setSendGoods(goodsList);
return qtyMap;
}
public Pair<String, Integer> xPiecesYFoldAdapter(CalculationSharingDiscountResponseDto sharingDiscountResponseDto) {
public Map<String, Integer> xPiecesYFoldAdapter(CalculationSharingDiscountResponseDto sharingDiscountResponseDto) {
CalculationSharingDiscountResponseDto.CalculationDiscountResult result = sharingDiscountResponseDto.getResult();
if (result == null){
......@@ -133,8 +130,8 @@ public class GiftSharingService {
}
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());
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = result.getGoods();
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods> goodsList = result.getGoods() == null ? new ArrayList<>() : result.getGoods();
Map<String, Integer> qtyMap = new HashMap<>();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods goods : discountGoodsList){
int sendQty = 0;
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Goods.GoodsDiscount> discountList = goods.getDiscounts()
......@@ -164,10 +161,11 @@ public class GiftSharingService {
goodsList.add(sendGoods);
sendQty += discount.getActualGoodsNumber();
}
Pair<String, Integer> pair = new Pair<>(goods.getCartGoodsUid(), goods.getGoodsQuantity() - sendQty);
return pair;
qtyMap.put(goods.getCartGoodsUid(), goods.getGoodsQuantity() - sendQty);
}
return null;
result.setGoods(goodsList);
return qtyMap;
}
......
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