Commit 81d15b3d by 刘鹏飞

coco订单详情赠品要合并到主商品

parent 79fc9337
...@@ -2806,6 +2806,9 @@ public class OrderSdkAdapter { ...@@ -2806,6 +2806,9 @@ public class OrderSdkAdapter {
//if (product.getStapleFood()!=null && product.getStapleFood()>0) { //if (product.getStapleFood()!=null && product.getStapleFood()>0) {
// extInfo.setStapleFood(1); // extInfo.setStapleFood(1);
//} //}
extInfo.setOriginalGoodsUid(product.getOriginalGoodsUid());
extInfo.setCartGoodsUid(product.getCartGoodsUid());
// todo 订单行扩展字段商品组 // todo 订单行扩展字段商品组
extInfo.setProductGroupList(product.getProductGroupList()); extInfo.setProductGroupList(product.getProductGroupList());
......
...@@ -178,4 +178,14 @@ public class CreateOrderProductRequest extends BaseConfig { ...@@ -178,4 +178,14 @@ public class CreateOrderProductRequest extends BaseConfig {
private String taxId; private String taxId;
private List<OrderSpecialExtraAttrRequest> specialAttrs; private List<OrderSpecialExtraAttrRequest> specialAttrs;
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* 拼单买一赠一标记赠品是那个商品送的 originalGoodsUid
*/
private String originalGoodsUid;
} }
...@@ -72,4 +72,14 @@ public class OrderProductAddInfoDto extends BaseConfig { ...@@ -72,4 +72,14 @@ public class OrderProductAddInfoDto extends BaseConfig {
private String taxId; private String taxId;
private List<OrderSpecialExtraAttrRequest> specialAttrs; private List<OrderSpecialExtraAttrRequest> specialAttrs;
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* 拼单买一赠一标记赠品是那个商品送的 originalGoodsUid
*/
private String originalGoodsUid;
} }
...@@ -526,6 +526,16 @@ public class QueryOrdersResponse { ...@@ -526,6 +526,16 @@ public class QueryOrdersResponse {
*/ */
public List<ProductBean> materialProduct; public List<ProductBean> materialProduct;
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* 拼单买一赠一标记赠品是那个商品送的 originalGoodsUid
*/
private String originalGoodsUid;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class ProductDiscount { public static class ProductDiscount {
......
...@@ -2058,6 +2058,11 @@ public class OrderAdapter { ...@@ -2058,6 +2058,11 @@ public class OrderAdapter {
} }
productVo.setInventedParentActivitiesVo(inventedParentActivityVos); productVo.setInventedParentActivitiesVo(inventedParentActivityVos);
} }
// 购物车行id
productVo.setCid(orderProductAddInfoDto.getCartGoodsUid());
// 购物车行父id
productVo.setOcid(orderProductAddInfoDto.getOriginalGoodsUid());
} }
productVo.setOriginalPrice(productBean.getPrice()); productVo.setOriginalPrice(productBean.getPrice());
productVo.setFinalPrice(productBean.getSalePrice()); productVo.setFinalPrice(productBean.getSalePrice());
...@@ -2406,6 +2411,8 @@ public class OrderAdapter { ...@@ -2406,6 +2411,8 @@ public class OrderAdapter {
createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId()); createOrderProductDemoDto.setTaxId(cartGoodsDetailDto.getTaxId());
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId()); createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName()); createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
createOrderProductDemoDto.setCartGoodsUid(cartGoodsDetailDto.getCartGoodsUid());
createOrderProductDemoDto.setOriginalGoodsUid(cartGoodsDetailDto.getOriginalGoodsUid());
return createOrderProductDemoDto; return createOrderProductDemoDto;
} }
......
...@@ -238,6 +238,16 @@ public class ShoppingCartGoodsDto { ...@@ -238,6 +238,16 @@ public class ShoppingCartGoodsDto {
private List<CartGoodsDetailDto> materialList; private List<CartGoodsDetailDto> materialList;
/**
* 购物车行uid
*/
private String cartGoodsUid;
/**
* 拼单买一赠一标记赠品是那个商品送的 originalGoodsUid
*/
private String originalGoodsUid;
@Data @Data
public final static class CartGoodsExtra { public final static class CartGoodsExtra {
/** /**
......
...@@ -159,4 +159,14 @@ public class ProductVo { ...@@ -159,4 +159,14 @@ public class ProductVo {
private List<ProductVo> setMaterialProducts; private List<ProductVo> setMaterialProducts;
/**
* 购物车行uid
*/
private String cid;
/**
* 拼单买一赠一标记赠品是那个商品送的 originalGoodsUid
*/
private String ocid;
} }
...@@ -52,6 +52,8 @@ import cn.freemud.service.BuriedPointService; ...@@ -52,6 +52,8 @@ import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService; import cn.freemud.service.CouponActivityService;
import cn.freemud.service.OrderAdapterService; import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import cn.freemud.service.order.OrderRelationFactory;
import cn.freemud.service.order.OrderRelationService;
import cn.freemud.service.thirdparty.*; import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.*; import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -270,6 +272,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -270,6 +272,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
@Autowired
private OrderRelationFactory orderRelationFactory;
@Override @Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) { public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo(); String trackingNo = LogTreadLocal.getTrackingNo();
...@@ -1295,7 +1300,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1295,7 +1300,7 @@ public class OrderServiceImpl implements Orderservice {
} }
buildQueryOrderResponseVo(queryOrderResponseVo,response); buildQueryOrderResponseVo(queryOrderResponseVo,response,partnerId);
return ResponseUtil.success(queryOrderResponseVo); return ResponseUtil.success(queryOrderResponseVo);
} }
...@@ -3110,23 +3115,15 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3110,23 +3115,15 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responses.getData()); return ResponseUtil.success(responses.getData());
} }
public void buildQueryOrderResponseVo(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response) { public void buildQueryOrderResponseVo(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response,String partnerId) {
List<QueryOrderResponseVo.chooseGood> chooseGoods = new ArrayList<>();
List<OrderSendCouponResp> orderSendCouponRespList = response.getData().getOrderSendCouponRespList(); if(null == response || response.getData() == null || !ObjectUtils.equals(response.getErrcode(),RESPONSE_SUCCESS_CODE) ){
ApiLog.info("订单详情查询,返回值错误,QueryOrderByIdResponse",response);
if(orderSendCouponRespList == null || orderSendCouponRespList.isEmpty()){
return; return;
} }
orderSendCouponRespList.forEach(orderSendCouponResp -> { OrderRelationService orderRelationService = orderRelationFactory.getQueryOrdrBuildService(partnerId);
QueryOrderResponseVo.chooseGood chooseGood = new QueryOrderResponseVo.chooseGood(); orderRelationService.queryOrdrBuild(queryOrderResponseVo,response);
chooseGood.setGoodsName(orderSendCouponResp.getGoodsName());
chooseGoods.add(chooseGood);
});
queryOrderResponseVo.setChooseGoods(chooseGoods);
} }
......
...@@ -20,4 +20,11 @@ public interface OrderRelationFactory { ...@@ -20,4 +20,11 @@ public interface OrderRelationFactory {
*/ */
OrderRelationService getCreateOrderTimeCheckService(String partnerId); OrderRelationService getCreateOrderTimeCheckService(String partnerId);
/**
* 获取订单查询出参构建实现类
* @param partnerId
* @return
*/
OrderRelationService getQueryOrdrBuildService(String partnerId);
} }
...@@ -13,7 +13,9 @@ ...@@ -13,7 +13,9 @@
package cn.freemud.service.order; package cn.freemud.service.order;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
public interface OrderRelationService { public interface OrderRelationService {
...@@ -23,4 +25,10 @@ public interface OrderRelationService { ...@@ -23,4 +25,10 @@ public interface OrderRelationService {
*/ */
void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo); void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo);
/**
* 创建订单的时间检查
* @param
*/
void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response);
} }
...@@ -15,21 +15,27 @@ package cn.freemud.service.order.impl; ...@@ -15,21 +15,27 @@ package cn.freemud.service.order.impl;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.order.BusinessDate; import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.ProductVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.CreateOrderType; import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.impl.CheckOrder; import cn.freemud.service.impl.CheckOrder;
import cn.freemud.service.order.OrderRelationService; import cn.freemud.service.order.OrderRelationService;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSendCouponResp;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import io.swagger.models.auth.In;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
@Service("cocoOrderRelationService") @Service("cocoOrderRelationService")
public class CocoOrderRelationServiceImpl implements OrderRelationService { public class CocoOrderRelationServiceImpl implements OrderRelationService {
...@@ -78,4 +84,51 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService { ...@@ -78,4 +84,51 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
} }
} }
@Override
public void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo,QueryOrderByIdResponse response) {
List<QueryOrderResponseVo.chooseGood> chooseGoods = new ArrayList<>();
List<OrderSendCouponResp> orderSendCouponRespList = response.getData().getOrderSendCouponRespList();
if(orderSendCouponRespList != null && !orderSendCouponRespList.isEmpty()){
orderSendCouponRespList.forEach(orderSendCouponResp -> {
QueryOrderResponseVo.chooseGood chooseGood = new QueryOrderResponseVo.chooseGood();
chooseGood.setGoodsName(orderSendCouponResp.getGoodsName());
chooseGoods.add(chooseGood);
});
queryOrderResponseVo.setChooseGoods(chooseGoods);
}
// 赠品合并到主商品
List<ProductVo> products = queryOrderResponseVo.getProducts();
// 有购物车行id的是主
List<ProductVo> masterProducts = products.stream().filter(product ->
!StringUtils.isEmpty(product.getCid())).collect(Collectors.toList());
// 没有购物车行id的是赠品
Map<String, Integer> giftMap = new HashMap<>();
List<ProductVo> giftProducts = products.stream().filter(product ->
StringUtils.isEmpty(product.getCid())).collect(Collectors.toList());
if(giftProducts != null && !giftProducts.isEmpty()){
giftProducts.forEach(giftProduct ->{
giftMap.put(giftProduct.getOcid(),giftProduct.getQty());
});
}
if(null != masterProducts && !masterProducts.isEmpty()){
masterProducts.forEach(product -> {
Integer giftQty = product.getQty();
if(giftQty == 0){
return;
}
product.setQty(product.getQty() + giftQty);
});
}
queryOrderResponseVo.setProducts(masterProducts);
}
} }
...@@ -54,4 +54,13 @@ public class OrderRelationFactoryImpl implements OrderRelationFactory { ...@@ -54,4 +54,13 @@ public class OrderRelationFactoryImpl implements OrderRelationFactory {
} }
} }
@Override
public OrderRelationService getQueryOrdrBuildService(String partnerId) {
if(cocoPartnerId.contains(partnerId)){
return cocoOrderRelationService;
}else{
return PlatformOrderRelationServiceImpl;
}
}
} }
...@@ -13,8 +13,10 @@ ...@@ -13,8 +13,10 @@
package cn.freemud.service.order.impl; package cn.freemud.service.order.impl;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.service.order.OrderRelationService; import cn.freemud.service.order.OrderRelationService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service("platformOrderRelationServiceImpl") @Service("platformOrderRelationServiceImpl")
...@@ -24,4 +26,9 @@ public class PlatformOrderRelationServiceImpl implements OrderRelationService { ...@@ -24,4 +26,9 @@ public class PlatformOrderRelationServiceImpl implements OrderRelationService {
@Override @Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) { public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) {
} }
@Override
public void queryOrdrBuild(QueryOrderResponseVo queryOrderResponseVo, QueryOrderByIdResponse response) {
}
} }
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