Commit e4aa70af by 缪晖

运费均摊计算公式调整

parent 6d10418e
......@@ -125,7 +125,8 @@ public class CollageOrderServiceImpl implements CollageOrderService {
if (order.getOrderCostDetailList() != null) {
OrderCostResp orderCostResp = order.getOrderCostDetailList().stream().filter(detail -> (detail.getCostType().equals(2) && detail.getBillType().equals(1))).findFirst().orElse(new OrderCostResp());
BigDecimal deliveryPrice = orderCostResp.getActualCostAmount() == null ? new BigDecimal(0) : orderCostResp.getActualCostAmount();
deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerUserIdList.size());
// 运费均摊时算上拼单发起人
deliveryAmount = Math.floorDiv(deliveryPrice.longValue(), payerUserIdList.size() + 1);
}
groupBuyDto.setAmount(itemAmount + packAmount + deliveryAmount);
groupBuyDto.setNickName(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getNickName());
......
......@@ -293,6 +293,11 @@ public class ActivityCalculationDiscountResponseDto {
* 赠送商品数量
*/
private Integer sendNumber;
/**
* 买一赠一时,存赠送主商品的cartGoodsUid用于标记是哪个商品赠送的
*/
private String originalGoodsUid;
}
}
......
......@@ -28,6 +28,12 @@ public class CartGoods {
* 购物车一行的Id(后台生成)
*/
private String cartGoodsUid = UUID.randomUUID().toString();
/**
* 买一赠一时,存赠送主商品的cartGoodsUid用于标记是哪个商品赠送的
*/
private String originalGoodsUid;
/**
* 单规格spuId,多规格skuId
*/
......
......@@ -237,19 +237,19 @@ public class BuySendPromotionService implements IPromotionService {
}
if (manyOrSingle) {
// 多规格
if (!Objects.equals(sendGoodsMap.get(cartGood.getSkuId()).getGoodsId(), cartGood.getSkuId())) {
if (!Objects.equals(sendGoodsMap.get(cartGood.getSkuId()).getOriginalGoodsUid(), cartGood.getCartGoodsUid())) {
return;
}
} else {
// 单品
List<String> spuIds = newCartGoodsList.stream().map(CartGoods::getSpuId).collect(Collectors.toList());
if (spuIds.contains(cartGood.getSpuId())) {
if (!Objects.equals(sendGoodsMap.get(cartGood.getSpuId()).getOriginalGoodsUid(), cartGood.getCartGoodsUid())) {
return;
}
}
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity.SendGoods sendGoods = sendGoodsMap.get(cartGood.getGoodsId());
String s = currentSubName(cartGood);
CartGoods newCartGoods = shoppingCartConvertAdapter.convent2CartGoods(cartGood, sendGoods.getNowPrice());
newCartGoods.setOriginalGoodsUid(sendGoodsMap.get(cartGood.getSpuId()).getOriginalGoodsUid());
newCartGoods.setClassificationId(cartGood.getClassificationId());
newCartGoods.setClassificationName(cartGood.getClassificationName());
newCartGoods.setQty(sendGoods.getSendNumber() > 0 ? sendGoods.getSendNumber() : SEND_NUMBER);
......
......@@ -242,25 +242,14 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Map<String,List<CartGoods>> userGoods = new HashMap<>();
if(cartGoods != null && !cartGoods.isEmpty()){
CartGoods createUserGood = cartGoods.stream().filter(good -> createUserId.equals(good.getUserId())).findFirst().orElse(null);
if (null == createUserGood) {
// 若拼单发起人未购买商品,则将赠品按购物车行分给加购人
// 若拼单发起人未购买商品,则将赠品按购物车行分给加购人,若未找到加购行id,默认给创建人
cartGoods.stream().filter(good -> null == good.getUserId()).collect(Collectors.toList()).forEach(cartGoodsNullUser -> {
CartGoods parentGood = cartGoods.stream().filter(good -> good.getCartGoodsUid().equals(cartGoodsNullUser.getCartGoodsUid())).findFirst().orElse(null);
CartGoods parentGood = cartGoods.stream().filter(good -> (StringUtils.isBlank(good.getOriginalGoodsUid()) && good.getCartGoodsUid().equals(cartGoodsNullUser.getOriginalGoodsUid()))).findFirst().orElse(null);
cartGoodsNullUser.setUserId(parentGood == null ? createUserId : parentGood.getUserId());
cartGoodsNullUser.setOpenId(parentGood == null ? null : parentGood.getOpenId());
cartGoodsNullUser.setUserName(parentGood == null ? null : parentGood.getUserName());
cartGoodsNullUser.setPhotoUrl(parentGood == null ? null : parentGood.getPhotoUrl());
});
} else {
cartGoods.stream().filter(good -> null == good.getUserId()).collect(Collectors.toList()).forEach(cartGoodsNullUser -> {
cartGoodsNullUser.setUserId(createUserGood.getUserId());
cartGoodsNullUser.setOpenId(createUserGood.getOpenId());
cartGoodsNullUser.setUserName(createUserGood.getUserName());
cartGoodsNullUser.setPhotoUrl(createUserGood.getPhotoUrl());
});
}
userGoods = cartGoods.stream().filter(good -> null != good.getUserId()).collect(Collectors.groupingBy(CartGoods::getUserId));
}
......@@ -776,6 +765,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
try {
System.out.println("start discount");
System.out.println(JSON.toJSONString(activityCalculationDiscountRequestDto));
// 调用老促销接口
activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
} catch (Exception ex) {
ErrorLog.errorConvertJson(SDKCommonBaseContextWare.getAppName(), LogThreadLocal.getTrackingNo(), getClass(), "shoppingCartCollageServiceImpl getActivityCalculationDiscountResponse:" + ex.getMessage(), ex);
......
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