Commit a43d8791 by “zcwang”

add: 查询商品spu信息rpc接口

parent 760ad3cd
......@@ -72,6 +72,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowExecVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowListVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemBasicInfoVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO;
import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO;
......@@ -571,7 +572,14 @@ public class ChangeFlowBiz {
changeFlowVO.setChangeProfitDesc(changeRecord.getChangeProfitDesc());
String itemJsonStr = changeRecord.getChangeItem();
if (StringUtils.isNotBlank(itemJsonStr)) {
changeFlowVO.setChangeItems(JSON.parseArray(itemJsonStr, ItemVO.class));
List<ItemVO> itemList = JSON.parseArray(itemJsonStr, ItemVO.class);
changeFlowVO.setChangeItems(itemList);
// 变更结果确认节点,展示变更商品基础信息
String flowNode = changeRecord.getFlowNode();
if (ChangeFlowEnum.CHANGE_FLOW_CONFIRM.getNodeId().equals(flowNode)) {
List<ItemBasicInfoVO> itemBasicInfoVOList = new ArrayList<>();
}
}
changeFlowVO.setChangeState(changeRecord.getState());
changeFlowVO.setChangeCreator(changeRecord.getCreator());
......
......@@ -6,6 +6,7 @@
*/
package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -15,9 +16,11 @@ import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.integration.item.CommonIdsParamQuery;
import com.netease.mail.yanxuan.change.integration.item.ItemCategoryRpcService;
import com.netease.mail.yanxuan.change.integration.item.SimplePhyCateGoryResultCo;
import com.netease.mail.yanxuan.change.integration.item.meta.SpuTO;
import com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam;
import com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery;
import lombok.extern.slf4j.Slf4j;
......@@ -34,11 +37,15 @@ public class ItemRpcService {
/**
* 查询物理类目
*
* @param query
* @return
*/
public Map<Long, List<SimplePhyCateGoryResultCo>> queryCategoryChain(CommonIdsParamQuery query) {
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> response = itemCategoryRpcService.queryCategoryChain(query);
log.info("[ItemRpcService-queryCategoryChain] request of query={}",
JSON.toJSONString(query));
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> response = itemCategoryRpcService
.queryCategoryChain(query);
log.info("[ItemRpcService-queryCategoryChain] response of query queryCategoryChain ={}",
JSON.toJSONString(response));
if (Boolean.TRUE.equals(response.isSuccess())) {
......@@ -48,4 +55,18 @@ public class ItemRpcService {
response.getMsg());
return new HashMap<>();
}
public List<SpuTO> batchQuerySpuInfo(BatchQuerySpuInfoParam query) {
log.info("[ItemRpcService-batchQuerySpuInfo] request of query={}",
JSON.toJSONString(query));
AjaxResult<List<SpuTO>> response = itemCategoryRpcService.batchQuerySpuInfo(query);
log.info("[ItemRpcService-batchQuerySpuInfo] response of query batchQuerySpuInfo ={}",
JSON.toJSONString(response));
if (Boolean.TRUE.equals(response.isSuccess())) {
return response.getData();
}
log.error("[op:rpc-batchQuerySpuInfo] query batchQuerySpuInfo failed, query={}, errMsg={}", query,
response.getMsg());
return new ArrayList<>();
}
}
......@@ -14,6 +14,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult;
import com.netease.mail.yanxuan.change.integration.item.meta.SpuTO;
import com.netease.mail.yanxuan.change.integration.item.param.BatchQuerySpuInfoParam;
import com.netease.mail.yanxuan.change.integration.item.param.CommonIdsParamQuery;
import com.netease.yanxuan.missa.client.annotation.MissaClient;
/**
......@@ -21,7 +24,7 @@ import com.netease.yanxuan.missa.client.annotation.MissaClient;
* @Date 2022/11/30
*/
@Service
@MissaClient(serviceCode = "ic-basis", path = "/category")
@MissaClient(serviceCode = "ic-basis")
public interface ItemCategoryRpcService {
/**
......@@ -29,6 +32,9 @@ public interface ItemCategoryRpcService {
* @param query
* @return
*/
@PostMapping(value = "/phy/queryChainByIds", consumes = MediaType.APPLICATION_JSON_VALUE)
@PostMapping(value = "/category/phy/queryChainByIds", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> queryCategoryChain(CommonIdsParamQuery query);
@PostMapping(value = "/spu/queryByIds", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResult<List<SpuTO>> batchQuerySpuInfo(BatchQuerySpuInfoParam query);
}
\ No newline at end of file
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class ChildSkuTO {
//父sku id
private long superSkuId;
//子sku id
private long childSkuId;
//商品id
private long spuId;
//商品名称
private String spuName;
//商品昵称/销售名称
private String spuNickName;
//sku下的规格值展示字符串
private String specValueDisplayString;
//子sku数量
private int num;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class MultiMediaDetailTO {
/**
* 透底图(原商品主图)
*/
private String primaryPicUrl;
/**
* listPicUrl
*/
private String listPicUrl;
/**
* scenePicUrl
*/
private String scenePicUrl;
/**
* 详情页图列表
*/
private List<String> detailPicUrls;
/**
* 质检报告图列表
*/
private List<String> reportPicUrls;
/**
* 商品详情页头图视频Json对象
*/
private SpuDetailVideoTO videoInfo;
/**
* 放大透底图
*/
private String zoomTransPicUrl;
/**
* 放大透底图
*/
private String zoomTransPicV2Url;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class PolicyTO {
private long id;
//标题
private String title;
//内容
private String content;
//是否强制勾选 0-否 1-是
private int defaultChecked;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class PreSellDetailTO {
//预售ID
private long preSellId;
//SKU ID
private long skuId;
//预售开始时间
private long startTime;
//预售结束时间
private long endTime;
//0-待预售 1-预售中 2 预售结束
private int status;
//是否已确认发货
private boolean deliverConfirmed;
//预计发货日期,UNIX时间戳,当前(2020年6月)精确到日期,取到日期即可
private long deliverDate;
//预售数据版本号,2020年6月预售接入库存中心后版本为1,在此之前为0
private int version;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SkuSpecCombineTO {
private long id;
private long skuId;
private long skuSpecId;
private long skuSpecValueId;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SkuSpecTO {
//主键
private long id;
//规格名称
private String name;
//前台显示用的名称
private String frontDesc;
//规格类型: 0-文字;1-图片
private int type;
//显示顺序
private int viewOrder;
//是否在详情页隐藏,默认false-不隐藏
private boolean firstHideFlag;
//规格值列表
private List<SkuSpecValueTO> specValueList;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SkuSpecValueTO {
private long id;
/**
* 所属的规格
*/
private long skuSpecId;
/**
* 显示顺序
*/
private int viewOrder;
/**
* 值
*/
private String value;
/**
* 规格图片url
*/
private String picUrl;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SkuTo {
//ID
private Long id;
//SPU ID
private Long spuId;
//sku展示名
private String displayName;
//sku图片
private String picUrl;
//是否是主sku
private boolean primarySku;
//是否是组合装:0-否;1-是
private int isCombine;
//是否启用过:0-否;1-是
private int isUsed;
//商品原始销售价,不会因单品变价活动而变动
private BigDecimal retailPrice;
//仓库id
private long storeHouseId;
//商品条码
private List<String> barCodeList;
private long operationAttribute;
//0-关闭;1-开启;2-作废(对应原invalid=1)
private int status;
//SKU描述(目前仅定制商品使用)
private String skuDesc;
//SKU规格构成对象
private List<SkuSpecCombineTO> skuSpecCombine;
//SPU对象,查询参数增加spu时有值
private SpuTO spu;
private Map<String, String> propertyMap;
//子SKU信息
private List<ChildSkuTO> childSkuList;
//预售详情
private PreSellDetailTO preSellDetail;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SpuDetailTO {
/**
* SPU ID
*/
private long id;
/**
* 商品短链
*/
private String shortUrl;
/**
* seo描述信息
*/
private String seoDesc;
/**
* 详情页html
*/
private String detailHtml;
/**
* 商详展示的SPU前台属性,null或者空表示没有
*/
private List<SpuPropTO> frontSpuPropList;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SpuDetailVideoTO {
/**
* 商品详情页头图MP4视频
*/
private String mp4VideoUrl;
/**
* 商品详情页头图MP4视频大小
*/
private long mp4VideoSize;
/**
* 商品详情页头图WEBM视频
*/
private String webmVideoUrl;
/**
* 商品详情页头图WEBM视频大小
*/
private long webmVideoSize;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SpuIssueTO {
private long id;
//0-商品配置;1-通用问题
private long type;
private String question;
private String answer;
private int rank;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SpuPropTO {
/**
* 商品id
*/
private Long itemId;
/**
* 属性名
*/
private String attrName;
/**
* 属性值
*/
private String attrValue;
/**
* 属性排序
*/
private int showIndex;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class SpuTO {
//商品ID
private long id;
//商品名
private String name;
//商品销售标题
private String nickName;
// itemType http://yx.mail.netease.com/wiki#/doc/791608
private int itemType;
//商品状态 0,1:未上架 2:已上架 4:预上架
private int status;
//主skuId
private long primarySkuId;
//商品零售价,如果商品未设置主SKU,售价为null
private BigDecimal retailPrice;
//商品描述
private String simpleDesc;
//上架时间
private long onSaleTime;
//更新时间
private long updateTime;
//款式信息,X件装可选
private int pieceNum;
//pieceNum的单位描述
private String pieceUnitDesc;
//款式信息,X色可选
private int colorNum;
//产地
private String productPlace;
//商品中心发布状态:0:草稿;1:未发布 2:已发布(仅在已发布情况下各渠道可以进行售卖)3:作废
private int icStatus;
//商品多媒体信息
private MultiMediaDetailTO mediaDetail;
//SPU详情信息
private SpuDetailTO detail;
//SPU关联的SKU列表
private List<SkuTo> skuList;
//SPU关联的规格信息列表
private List<SkuSpecTO> specList;
//商品常见问题列表
private List<SpuIssueTO> issueList;
//标签列表(当前仅有制造商标签)
private List<TagTO> tagList;
//服务政策列表
private List<PolicyTO> policyList;
//SPU属性集合,值范围和内容
private Map<String, String> propertyMap;
}
package com.netease.mail.yanxuan.change.integration.item.meta;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author jmt
* @Date 2021/6/7
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
public class TagTO {
private long id;
//标签所属类目id
private long categoryId;
//标签所属类名
private String categoryName;
//名称
private String name;
//排序号
private int showIndex;
private List<Long> spuIds;
}
/**
* @(#)BatchQuerySpuInfoParam.java, 2022/11/30.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.item.param;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author zcwang
* @Date 2022/11/30
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class BatchQuerySpuInfoParam {
/**
* id列表,上限200
*/
private List<Long> ids;
/**
* 常规属性
*/
private List<String> commonProps;
/**
* 额外需要查询的
*/
private List<String> spuProps;
}
\ No newline at end of file
......@@ -4,7 +4,7 @@
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.netease.mail.yanxuan.change.integration.item;
package com.netease.mail.yanxuan.change.integration.item.param;
import java.util.List;
......
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