Commit bd9db432 by 缪晖

修改赠品归属逻辑

parent 1389e782
...@@ -227,6 +227,11 @@ public class ShoppingCartGoodsDto { ...@@ -227,6 +227,11 @@ public class ShoppingCartGoodsDto {
private String photoUrl; private String photoUrl;
/** /**
* 购物车行id
*/
private String cartGoodsUid;
/**
* 配料或属性 * 配料或属性
*/ */
private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0); private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0);
......
...@@ -509,6 +509,28 @@ public class CheckOrder { ...@@ -509,6 +509,28 @@ public class CheckOrder {
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse; cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse;
if (createOrderVo.getMarketingType() != null && OrderMarketType.COLLAGE.getIndex() == createOrderVo.getMarketingType()) { if (createOrderVo.getMarketingType() != null && OrderMarketType.COLLAGE.getIndex() == createOrderVo.getMarketingType()) {
apportionResponse = shoppingCartClient.getCollageShoppingCartGoodsApportion(requestDto); 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 { } else {
apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto); apportionResponse = shoppingCartClient.getShoppingCartGoodsApportionNew(requestDto);
} }
......
...@@ -114,10 +114,10 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -114,10 +114,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override @Override
public BaseResponse groupBuyDetail(WechatGroupBuyVo requestVo) { 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) { if (null == order) {
ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
GroupBuyDetailResp groupBuyDetailResp = new GroupBuyDetailResp(); GroupBuyDetailResp groupBuyDetailResp = new GroupBuyDetailResp();
...@@ -154,7 +154,7 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -154,7 +154,7 @@ public class CollageOrderServiceImpl implements CollageOrderService {
@Override @Override
public BaseResponse createGroupBuy(WechatGroupBuyVo requestVo) { 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) { if (null == order) {
ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
...@@ -229,9 +229,10 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -229,9 +229,10 @@ public class CollageOrderServiceImpl implements CollageOrderService {
* @param orderCode * @param orderCode
* @return * @return
*/ */
private QueryOrdersResponse.DataBean.OrderBean queryOrderByOrderCode(String orderCode) { private QueryOrdersResponse.DataBean.OrderBean queryOrderByOrderCode(String partnerId, String orderCode) {
// 获取拼单订单信息,若类型不是拼单直接返回报错 // 获取拼单订单信息,若类型不是拼单直接返回报错
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setPartnerId(partnerId);
baseQueryOrderRequest.setOrderId(orderCode); baseQueryOrderRequest.setOrderId(orderCode);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo()); baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest); QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
......
...@@ -242,7 +242,27 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -242,7 +242,27 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
Map<String,List<CartGoods>> userGoods = new HashMap<>(); Map<String,List<CartGoods>> userGoods = new HashMap<>();
if(cartGoods != null && !cartGoods.isEmpty()){ 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<>(); List<ShoppingCartCollageGoodsResponseVo> userProducts = new ArrayList<>();
...@@ -734,7 +754,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -734,7 +754,7 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
try { try {
System.out.println("start discount"); System.out.println("start discount");
System.out.println(JSON.toJSONString(activityCalculationDiscountRequestDto)); System.out.println(JSON.toJSONString(activityCalculationDiscountRequestDto));
activityCalculationDiscountResponseDto = activityClient.calculationDiscountSharing(activityCalculationDiscountRequestDto); activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
} catch (Exception ex) { } catch (Exception ex) {
ErrorLog.errorConvertJson(SDKCommonBaseContextWare.getAppName(), LogThreadLocal.getTrackingNo(), getClass(), "shoppingCartCollageServiceImpl getActivityCalculationDiscountResponse:" + ex.getMessage(), ex); ErrorLog.errorConvertJson(SDKCommonBaseContextWare.getAppName(), LogThreadLocal.getTrackingNo(), getClass(), "shoppingCartCollageServiceImpl getActivityCalculationDiscountResponse:" + ex.getMessage(), ex);
throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN); 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