Commit bd9db432 by 缪晖

修改赠品归属逻辑

parent 1389e782
......@@ -227,6 +227,11 @@ public class ShoppingCartGoodsDto {
private String photoUrl;
/**
* 购物车行id
*/
private String cartGoodsUid;
/**
* 配料或属性
*/
private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0);
......
......@@ -509,6 +509,28 @@ public class CheckOrder {
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse;
if (createOrderVo.getMarketingType() != null && OrderMarketType.COLLAGE.getIndex() == createOrderVo.getMarketingType()) {
apportionResponse = shoppingCartClient.getCollageShoppingCartGoodsApportion(requestDto);
// 处理拼单加购人信息
List<ShoppingCartGoodsDto.CartGoodsDetailDto> products = apportionResponse.getResult().getProducts();
ShoppingCartGoodsDto.CartGoodsDetailDto createUserGood = products.stream().filter(good -> createOrderVo.getUserId().equals(good.getUserId())).findFirst().orElse(null);
if (null == createUserGood) {
// 若拼单发起人未购买商品,则将赠品按购物车行分给加购人
products.stream().filter(good -> null == good.getUserId()).collect(Collectors.toList()).forEach(cartGoodsNullUser -> {
ShoppingCartGoodsDto.CartGoodsDetailDto parentGood = products.stream().filter(good -> good.getCartGoodsUid().equals(cartGoodsNullUser.getCartGoodsUid())).findFirst().orElse(null);
cartGoodsNullUser.setUserId(parentGood == null ? createOrderVo.getUserId() : parentGood.getUserId());
cartGoodsNullUser.setOpenId(parentGood == null ? null : parentGood.getOpenId());
cartGoodsNullUser.setUserName(parentGood == null ? null : parentGood.getUserName());
cartGoodsNullUser.setPhotoUrl(parentGood == null ? null : parentGood.getPhotoUrl());
});
} else {
products.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());
});
}
} else {
apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
}
......
......@@ -114,10 +114,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override
public BaseResponse groupBuyDetail(WechatGroupBuyVo requestVo) {
// 获取拼单订单信息
QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getOrderCode());
QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getPartnerId(), requestVo.getOrderCode());
if (null == order) {
ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
GroupBuyDetailResp groupBuyDetailResp = new GroupBuyDetailResp();
......@@ -154,7 +154,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override
public BaseResponse createGroupBuy(WechatGroupBuyVo requestVo) {
// 获取拼单订单信息
QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getOrderCode());
QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getPartnerId(), requestVo.getOrderCode());
if (null == order) {
ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
......@@ -229,9 +229,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
* @param orderCode
* @return
*/
private QueryOrdersResponse.DataBean.OrderBean queryOrderByOrderCode(String orderCode) {
private QueryOrdersResponse.DataBean.OrderBean queryOrderByOrderCode(String partnerId, String orderCode) {
// 获取拼单订单信息,若类型不是拼单直接返回报错
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setPartnerId(partnerId);
baseQueryOrderRequest.setOrderId(orderCode);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
......
......@@ -242,7 +242,27 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Map<String,List<CartGoods>> userGoods = new HashMap<>();
if(cartGoods != null && !cartGoods.isEmpty()){
userGoods = cartGoods.stream().collect(Collectors.groupingBy(CartGoods::getUserId));
CartGoods createUserGood = cartGoods.stream().filter(good -> createUserId.equals(good.getUserId())).findFirst().orElse(null);
if (null == createUserGood) {
// 若拼单发起人未购买商品,则将赠品按购物车行分给加购人
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);
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));
}
List<ShoppingCartCollageGoodsResponseVo> userProducts = new ArrayList<>();
......@@ -734,7 +754,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
try {
System.out.println("start discount");
System.out.println(JSON.toJSONString(activityCalculationDiscountRequestDto));
activityCalculationDiscountResponseDto = activityClient.calculationDiscountSharing(activityCalculationDiscountRequestDto);
activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
} catch (Exception ex) {
ErrorLog.errorConvertJson(SDKCommonBaseContextWare.getAppName(), LogThreadLocal.getTrackingNo(), getClass(), "shoppingCartCollageServiceImpl getActivityCalculationDiscountResponse:" + ex.getMessage(), ex);
throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN);
......
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