Commit aae6b942 by jx-art

Merge remote-tracking branch 'origin/feature-changeFlow-221110' into feature-changeFlow-221110

parents dd1d5f7b 6da7c095
...@@ -41,6 +41,7 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService; ...@@ -41,6 +41,7 @@ import com.netease.mail.yanxuan.change.biz.service.ChangeFlowService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService; import com.netease.mail.yanxuan.change.biz.service.change.ChangeConfigService;
import com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService; import com.netease.mail.yanxuan.change.biz.service.change.ChangeTypeService;
import com.netease.mail.yanxuan.change.biz.service.rpc.FlowService; import com.netease.mail.yanxuan.change.biz.service.rpc.FlowService;
import com.netease.mail.yanxuan.change.biz.service.rpc.ItemService;
import com.netease.mail.yanxuan.change.biz.service.rpc.TodoService; import com.netease.mail.yanxuan.change.biz.service.rpc.TodoService;
import com.netease.mail.yanxuan.change.common.bean.CommonConstants; import com.netease.mail.yanxuan.change.common.bean.CommonConstants;
import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean; import com.netease.mail.yanxuan.change.common.bean.RequestLocalBean;
...@@ -72,9 +73,14 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO; ...@@ -72,9 +73,14 @@ 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.ChangeFlowExecVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowListVO; 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.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.ItemVO;
import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO; import com.netease.mail.yanxuan.change.dal.meta.model.vo.PageVO;
import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO; import com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO;
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 com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO; import com.netease.mail.yanxuan.change.integration.todo.TaskCreateDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.UserBaseDTO;
...@@ -122,6 +128,8 @@ public class ChangeFlowBiz { ...@@ -122,6 +128,8 @@ public class ChangeFlowBiz {
@Autowired @Autowired
private TodoService todoService; private TodoService todoService;
@Autowired
private ItemService itemService;
public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) { public String createAndSubmit(ChangeFlowCreateReq changeFlowCreateReq) {
String uid = RequestLocalBean.getUid(); String uid = RequestLocalBean.getUid();
...@@ -547,6 +555,8 @@ public class ChangeFlowBiz { ...@@ -547,6 +555,8 @@ public class ChangeFlowBiz {
ChangeFlowVO changeFlowVO = new ChangeFlowVO(); ChangeFlowVO changeFlowVO = new ChangeFlowVO();
changeFlowVO.setId(changeRecord.getId()); changeFlowVO.setId(changeRecord.getId());
changeFlowVO.setFlowId(changeRecord.getFlowId()); changeFlowVO.setFlowId(changeRecord.getFlowId());
changeFlowVO.setParentChangeClassId(changeRecord.getParentChangeClassId());
changeFlowVO.setSonChangeClassId(changeFlowVO.getSonChangeClassId());
changeFlowVO.setChangeSubject(changeRecord.getChangeSubject()); changeFlowVO.setChangeSubject(changeRecord.getChangeSubject());
ChangeType parentChangeType = changeTypeService.getChangeTypeById(changeRecord.getParentChangeClassId()); ChangeType parentChangeType = changeTypeService.getChangeTypeById(changeRecord.getParentChangeClassId());
if (parentChangeType == null) { if (parentChangeType == null) {
...@@ -571,7 +581,23 @@ public class ChangeFlowBiz { ...@@ -571,7 +581,23 @@ public class ChangeFlowBiz {
changeFlowVO.setChangeProfitDesc(changeRecord.getChangeProfitDesc()); changeFlowVO.setChangeProfitDesc(changeRecord.getChangeProfitDesc());
String itemJsonStr = changeRecord.getChangeItem(); String itemJsonStr = changeRecord.getChangeItem();
if (StringUtils.isNotBlank(itemJsonStr)) { 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<Long> itemIds = itemList.stream().map(ItemVO::getItemId).collect(Collectors.toList());
// 批量查询spu信息
List<SpuTO> spuTOS = itemService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds)
.commonProps(new ArrayList<>()).spuProps(new ArrayList<>()).build());
// 批量查询物理类目
Map<Long, List<SimplePhyCateGoryResultCo>> categoryChain = itemService
.queryBySpuIds(CommonIdsParamQuery.builder().ids(itemIds).build());
// 批量查询品控类目
List<ItemBasicInfoVO> itemBasicInfoVOList = new ArrayList<>();
}
} }
changeFlowVO.setChangeState(changeRecord.getState()); changeFlowVO.setChangeState(changeRecord.getState());
changeFlowVO.setChangeCreator(changeRecord.getCreator()); changeFlowVO.setChangeCreator(changeRecord.getCreator());
......
...@@ -149,5 +149,6 @@ public class FlowService { ...@@ -149,5 +149,6 @@ public class FlowService {
approverDTO.setRemark(remark); approverDTO.setRemark(remark);
approverDTO.setContent(content); approverDTO.setContent(content);
approverDTO.setOperateResult(FlowxOperationEnum.DELIVER.getName()); approverDTO.setOperateResult(FlowxOperationEnum.DELIVER.getName());
}; flowRpcService.updateApprovers(CommonConstants.FLOWX_PRODUCT, approverDTO);
}
} }
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
*/ */
package com.netease.mail.yanxuan.change.biz.service.rpc; package com.netease.mail.yanxuan.change.biz.service.rpc;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -15,9 +16,11 @@ import org.springframework.stereotype.Component; ...@@ -15,9 +16,11 @@ import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult; 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.ItemRpcService;
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.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; import lombok.extern.slf4j.Slf4j;
...@@ -27,25 +30,44 @@ import lombok.extern.slf4j.Slf4j; ...@@ -27,25 +30,44 @@ import lombok.extern.slf4j.Slf4j;
*/ */
@Slf4j @Slf4j
@Component @Component
public class ItemRpcService { public class ItemService {
@Autowired @Autowired
private ItemCategoryRpcService itemCategoryRpcService; private ItemRpcService itemRpcService;
/** /**
* 查询物理类目 * 查询物理类目
*
* @param query * @param query
* @return * @return
* key: 商品id,value:商品的物理类目
*/ */
public Map<Long, List<SimplePhyCateGoryResultCo>> queryCategoryChain(CommonIdsParamQuery query) { public Map<Long, List<SimplePhyCateGoryResultCo>> queryBySpuIds(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 = itemRpcService
.queryBySpuIds(query);
log.info("[ItemRpcService-queryCategoryChain] response of query queryCategoryChain ={}", log.info("[ItemRpcService-queryCategoryChain] response of query queryCategoryChain ={}",
JSON.toJSONString(response)); JSON.toJSONString(response));
if (Boolean.TRUE.equals(response.isSuccess())) { if (Boolean.TRUE.equals(response.isSuccess())) {
return response.getData(); return response.getData();
} }
log.error("[op:rpc-queryCategoryChain] query categoryChain detail failed, query={}, errMsg={}", query, log.error("[op:rpc-queryCategoryChain] query categoryChain detail failed, query={}, errMsg={}", query,
response.getMsg()); response.getMsg());
return new HashMap<>(); return new HashMap<>();
} }
}
\ No newline at end of file public List<SpuTO> batchQuerySpuInfo(BatchQuerySpuInfoParam query) {
log.info("[ItemRpcService-batchQuerySpuInfo] request of query={}",
JSON.toJSONString(query));
AjaxResult<List<SpuTO>> response = itemRpcService.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<>();
}
}
...@@ -37,6 +37,17 @@ public class ChangeFlowVO { ...@@ -37,6 +37,17 @@ public class ChangeFlowVO {
* 工单id * 工单id
*/ */
private Long flowId; private Long flowId;
/**
* 一级变更类型id
*/
private Long parentChangeClassId;
/**
* 二级变更类型id
*/
private Long sonChangeClassId;
/** /**
* 变更主体 * 变更主体
* @see ChangeSubjectEnum * @see ChangeSubjectEnum
......
...@@ -13,11 +13,13 @@ import org.springframework.stereotype.Service; ...@@ -13,11 +13,13 @@ import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse; import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.NodeSubmitReqDTO; import com.netease.yanxuan.flowx.sdk.meta.dto.flow.NodeSubmitReqDTO;
import com.netease.yanxuan.flowx.sdk.meta.dto.flow.UpdateNodeApproverDTO;
import com.netease.yanxuan.missa.client.annotation.MissaClient; import com.netease.yanxuan.missa.client.annotation.MissaClient;
/** /**
...@@ -38,6 +40,12 @@ public interface FlowRpcService { ...@@ -38,6 +40,12 @@ public interface FlowRpcService {
@PostMapping(value = "/{product}/workOrderFlow/v1/create", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/{product}/workOrderFlow/v1/create", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResponse<String> create(@PathVariable("product") String product, FlowCreateReqDTO req); AjaxResponse<String> create(@PathVariable("product") String product, FlowCreateReqDTO req);
/**
* 工单详情查询
* @param flowxProduct
* @param flowId
* @return
*/
@GetMapping(value = "/{product}/workOrder/v1/{flowId}/detail") @GetMapping(value = "/{product}/workOrder/v1/{flowId}/detail")
AjaxResponse<FlowDataDTO> getDetail(@PathVariable("product") String flowxProduct, AjaxResponse<FlowDataDTO> getDetail(@PathVariable("product") String flowxProduct,
@PathVariable("flowId") String flowId); @PathVariable("flowId") String flowId);
...@@ -51,4 +59,12 @@ public interface FlowRpcService { ...@@ -51,4 +59,12 @@ public interface FlowRpcService {
*/ */
@PostMapping(value = "/{product}/workOrderFlow/v1/submit", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/{product}/workOrderFlow/v1/submit", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResponse<List<String>> submit(@PathVariable("product") String flowxProduct, NodeSubmitReqDTO nodeSubmitReqDTO); AjaxResponse<List<String>> submit(@PathVariable("product") String flowxProduct, NodeSubmitReqDTO nodeSubmitReqDTO);
/**
* 更新待办负责人
* @param flowxProduct
* @param approverDTO
*/
@PutMapping(value = "/{product}/workOrderFlow/v1/approvers/update", consumes = MediaType.APPLICATION_JSON_VALUE)
void updateApprovers(@PathVariable("product")String flowxProduct, UpdateNodeApproverDTO approverDTO);
} }
...@@ -14,6 +14,9 @@ import org.springframework.stereotype.Service; ...@@ -14,6 +14,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import com.netease.mail.yanxuan.change.common.bean.AjaxResult; 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; import com.netease.yanxuan.missa.client.annotation.MissaClient;
/** /**
...@@ -21,14 +24,17 @@ import com.netease.yanxuan.missa.client.annotation.MissaClient; ...@@ -21,14 +24,17 @@ import com.netease.yanxuan.missa.client.annotation.MissaClient;
* @Date 2022/11/30 * @Date 2022/11/30
*/ */
@Service @Service
@MissaClient(serviceCode = "ic-basis", path = "/category") @MissaClient(serviceCode = "ic-basis")
public interface ItemCategoryRpcService { public interface ItemRpcService {
/** /**
* 批量查询商品分类物理类目链 * 批量查询商品分类物理类目链
* @param query * @param query
* @return * @return
*/ */
@PostMapping(value = "/phy/queryChainByIds", consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "/spu/phy/queryBySpuIds", consumes = MediaType.APPLICATION_JSON_VALUE)
AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> queryCategoryChain(CommonIdsParamQuery query); AjaxResult<Map<Long, List<SimplePhyCateGoryResultCo>>> queryBySpuIds(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;
}
/**
* @(#)QcCategory.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.meta;
import java.io.Serializable;
/**
* @Author zcwang
* @Date 2022/11/30
*/
public class QcCategory implements Serializable {
private static final long serialVersionUID = -1862762370395334378L;
/**
* 主键id
*/
private Long id;
/**
* 类目名称
*/
private String categoryName;
/**
* 类目说明
*/
private String categoryDesc;
/**
* 等级
*/
private Integer categoryLevel;
/**
* 上级id
*/
private Long parentId;
/**
* 创建时间
*/
private Long createTime;
/**
* 修改时间
*/
private Long modifyTime;
/**
* 创建人uid
*/
private String creator;
/**
* 最后编辑人uid
*/
private String updator;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCategoryName() {
return categoryName;
}
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
public String getCategoryDesc() {
return categoryDesc;
}
public void setCategoryDesc(String categoryDesc) {
this.categoryDesc = categoryDesc;
}
public Integer getCategoryLevel() {
return categoryLevel;
}
public void setCategoryLevel(Integer categoryLevel) {
this.categoryLevel = categoryLevel;
}
public Long getParentId() {
return parentId;
}
public void setParentId(Long parentId) {
this.parentId = parentId;
}
public Long getCreateTime() {
return createTime;
}
public void setCreateTime(Long createTime) {
this.createTime = createTime;
}
public Long getModifyTime() {
return modifyTime;
}
public void setModifyTime(Long modifyTime) {
this.modifyTime = modifyTime;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public String getUpdator() {
return updator;
}
public void setUpdator(String updator) {
this.updator = updator;
}
}
\ No newline at end of file
/**
* @(#)QcCategoryVO.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.meta;
import java.util.List;
import org.springframework.beans.BeanUtils;
import com.google.common.collect.Lists;
/**
* @Author zcwang
* @Date 2022/11/30
*/
public class QcCategoryVO extends QcCategory {
private static final long serialVersionUID = 6925160563010855926L;
private List<QcCategoryVO> children;
public QcCategoryVO() {
}
public static QcCategoryVO init(QcCategory qcCategory) {
QcCategoryVO qcCategoryVO = new QcCategoryVO();
BeanUtils.copy(qcCategory, qcCategoryVO);
qcCategoryVO.setChildren(Lists.newArrayList());
return qcCategoryVO;
}
public List<QcCategoryVO> getChildren() {
return children;
}
public void setChildren(List<QcCategoryVO> children) {
this.children = children;
}
}
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 @@ ...@@ -4,7 +4,7 @@
* Copyright 2022 Netease, Inc. All rights reserved. * Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * 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; 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