Commit 81d15b3d by 刘鹏飞

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

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