Commit 4fd26689 by 穆龙飞

modify:增加查询接口数据返回

parent 850a2fb8
Pipeline #47144 passed with stages
in 1 minute 20 seconds
...@@ -13,7 +13,9 @@ public interface ISupplierItemService { ...@@ -13,7 +13,9 @@ public interface ISupplierItemService {
* @param itemName * @param itemName
* @param page * @param page
* @param pageSize * @param pageSize
* @param skuId
* @return * @return
*/ */
SupplierItemPageVO supplierGoodsInfoBySupplier(SupplierGoodsInfoReq supplierGoodsInfoReq, String itemId, String itemName, Integer page, Integer pageSize); SupplierItemPageVO supplierGoodsInfoBySupplier(SupplierGoodsInfoReq supplierGoodsInfoReq, String itemId,
String itemName, Integer page, Integer pageSize, String skuId);
} }
package com.netease.mail.yanxuan.change.biz.service.impl; package com.netease.mail.yanxuan.change.biz.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import com.netease.mail.yanxuan.change.integration.item.meta.SkuTo;
import com.netease.mail.yanxuan.change.integration.todo.SupplierItemSkuVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.netease.mail.yanxuan.change.biz.service.ISupplierItemService; import com.netease.mail.yanxuan.change.biz.service.ISupplierItemService;
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.flow.supplier.FlowRpcSupplierSendService; import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierSendService;
...@@ -12,15 +24,6 @@ import com.netease.mail.yanxuan.change.integration.todo.PageVO; ...@@ -12,15 +24,6 @@ import com.netease.mail.yanxuan.change.integration.todo.PageVO;
import com.netease.mail.yanxuan.change.integration.todo.SupplierItemPageVO; import com.netease.mail.yanxuan.change.integration.todo.SupplierItemPageVO;
import com.netease.mail.yanxuan.change.integration.todo.SupplierItemVO; import com.netease.mail.yanxuan.change.integration.todo.SupplierItemVO;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse; import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service @Service
public class SupplierItemServiceImpl implements ISupplierItemService { public class SupplierItemServiceImpl implements ISupplierItemService {
...@@ -32,15 +35,18 @@ public class SupplierItemServiceImpl implements ISupplierItemService { ...@@ -32,15 +35,18 @@ public class SupplierItemServiceImpl implements ISupplierItemService {
private ItemRpcService itemRpcService; private ItemRpcService itemRpcService;
@Override @Override
public SupplierItemPageVO supplierGoodsInfoBySupplier(SupplierGoodsInfoReq supplierGoodsInfoReq, String itemId, String itemName, Integer page, Integer pageSize) { public SupplierItemPageVO supplierGoodsInfoBySupplier(SupplierGoodsInfoReq supplierGoodsInfoReq, String itemId,
AjaxResponse<List<SupplierGoodsInfoRsp>> listAjaxResponse = flowRpcSupplierSendService.supplierGoodsInfoBySupplier(supplierGoodsInfoReq); String itemName, Integer page, Integer pageSize, String skuId) {
AjaxResponse<List<SupplierGoodsInfoRsp>> listAjaxResponse = flowRpcSupplierSendService
.supplierGoodsInfoBySupplier(supplierGoodsInfoReq);
List<SupplierGoodsInfoRsp> data = listAjaxResponse.getData(); List<SupplierGoodsInfoRsp> data = listAjaxResponse.getData();
List<SpuTO> spuTOList = new ArrayList<>(); List<SpuTO> spuTOList = new ArrayList<>();
if (data != null) { if (data != null) {
Set<Long> fullItemIds = data.stream().map(SupplierGoodsInfoRsp::getItemId).collect(Collectors.toSet()); Set<Long> fullItemIds = data.stream().map(SupplierGoodsInfoRsp::getItemId).collect(Collectors.toSet());
while (fullItemIds.size() > 200) { while (fullItemIds.size() > 200) {
List<Long> itemIds = new ArrayList<>(fullItemIds).subList(0, 200); List<Long> itemIds = new ArrayList<>(fullItemIds).subList(0, 200);
AjaxResult<List<SpuTO>> listAjaxResult = itemRpcService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds).build()); AjaxResult<List<SpuTO>> listAjaxResult = itemRpcService
.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds).build());
List<SpuTO> pageSpuTo = listAjaxResult.getData(); List<SpuTO> pageSpuTo = listAjaxResult.getData();
if (!CollectionUtils.isEmpty(pageSpuTo)) { if (!CollectionUtils.isEmpty(pageSpuTo)) {
spuTOList.addAll(pageSpuTo); spuTOList.addAll(pageSpuTo);
...@@ -48,18 +54,30 @@ public class SupplierItemServiceImpl implements ISupplierItemService { ...@@ -48,18 +54,30 @@ public class SupplierItemServiceImpl implements ISupplierItemService {
fullItemIds.removeAll(itemIds); fullItemIds.removeAll(itemIds);
} }
List<Long> itemIds = new ArrayList<>(fullItemIds); List<Long> itemIds = new ArrayList<>(fullItemIds);
AjaxResult<List<SpuTO>> listAjaxResult = itemRpcService.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds).build()); AjaxResult<List<SpuTO>> listAjaxResult = itemRpcService
.batchQuerySpuInfo(BatchQuerySpuInfoParam.builder().ids(itemIds).build());
List<SpuTO> pageSpuTo = listAjaxResult.getData(); List<SpuTO> pageSpuTo = listAjaxResult.getData();
if (!CollectionUtils.isEmpty(pageSpuTo)) { if (!CollectionUtils.isEmpty(pageSpuTo)) {
spuTOList.addAll(pageSpuTo); spuTOList.addAll(pageSpuTo);
} }
} }
if (StringUtils.isNotBlank(itemId)) { if (StringUtils.isNotBlank(itemId)) {
spuTOList = spuTOList.stream().filter(i -> Long.valueOf(itemId).equals(i.getId())).collect(Collectors.toList()); spuTOList = spuTOList.stream().filter(i -> Long.valueOf(itemId).equals(i.getId()))
.collect(Collectors.toList());
} }
if (StringUtils.isNotBlank(itemName)) { if (StringUtils.isNotBlank(itemName)) {
spuTOList = spuTOList.stream().filter(i -> i.getName().contains(itemName)).collect(Collectors.toList()); spuTOList = spuTOList.stream().filter(i -> i.getName().contains(itemName)).collect(Collectors.toList());
} }
if (StringUtils.isNotBlank(skuId)) {
spuTOList = spuTOList.stream().filter(i -> {
List<Long> skuIds = i.getSkuList().stream().map(SkuTo::getId).collect(Collectors.toList());
if (skuIds.contains(Long.valueOf(skuId))) {
return Boolean.TRUE;
} else {
return Boolean.FALSE;
}
}).collect(Collectors.toList());
}
PageVO pageVO = buildPageVo(spuTOList.size(), page, pageSize); PageVO pageVO = buildPageVo(spuTOList.size(), page, pageSize);
Integer endIndex = page * pageSize; Integer endIndex = page * pageSize;
if (page * pageSize > spuTOList.size()) { if (page * pageSize > spuTOList.size()) {
...@@ -70,6 +88,15 @@ public class SupplierItemServiceImpl implements ISupplierItemService { ...@@ -70,6 +88,15 @@ public class SupplierItemServiceImpl implements ISupplierItemService {
SupplierItemVO supplierItemVO = new SupplierItemVO(); SupplierItemVO supplierItemVO = new SupplierItemVO();
supplierItemVO.setItemId(i.getId()); supplierItemVO.setItemId(i.getId());
supplierItemVO.setItemName(i.getName()); supplierItemVO.setItemName(i.getName());
supplierItemVO.setSpecList(i.getSpecList());
List<SupplierItemSkuVO> skuVOList = i.getSkuList().stream().map(s -> {
SupplierItemSkuVO supplierItemSkuVO = new SupplierItemSkuVO();
supplierItemSkuVO.setSkuId(s.getId());
supplierItemSkuVO.setSkuName(s.getDisplayName());
supplierItemSkuVO.setSkuSpecCombine(s.getSkuSpecCombine());
return supplierItemSkuVO;
}).collect(Collectors.toList());
supplierItemVO.setItemSkuVOList(skuVOList);
return supplierItemVO; return supplierItemVO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return SupplierItemPageVO.builder().pageVo(pageVO).supplierItemVOList(supplierItemVOList).build(); return SupplierItemPageVO.builder().pageVo(pageVO).supplierItemVOList(supplierItemVOList).build();
......
package com.netease.mail.yanxuan.change.integration.todo;
import com.netease.mail.yanxuan.change.integration.item.meta.SkuSpecCombineTO;
import lombok.Data;
import java.util.List;
@Data
public class SupplierItemSkuVO {
private Long skuId;
private String skuName;
//SKU规格构成对象
private List<SkuSpecCombineTO> skuSpecCombine;
}
package com.netease.mail.yanxuan.change.integration.todo; package com.netease.mail.yanxuan.change.integration.todo;
import com.netease.mail.yanxuan.change.integration.item.meta.SkuSpecTO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
@Data @Data
@Builder @Builder
@AllArgsConstructor @AllArgsConstructor
...@@ -20,4 +23,12 @@ public class SupplierItemVO { ...@@ -20,4 +23,12 @@ public class SupplierItemVO {
* 商品名称 * 商品名称
*/ */
private String itemName; private String itemName;
/**
* 商品sku
*/
private List<SupplierItemSkuVO> itemSkuVOList;
//SPU关联的规格信息列表
private List<SkuSpecTO> specList;
} }
package com.netease.mail.yanxuan.change.web.controller; package com.netease.mail.yanxuan.change.web.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.netease.mail.yanxuan.change.biz.config.AppConfig; import com.netease.mail.yanxuan.change.biz.config.AppConfig;
import com.netease.mail.yanxuan.change.biz.service.ISupplierItemService; import com.netease.mail.yanxuan.change.biz.service.ISupplierItemService;
...@@ -9,19 +17,11 @@ import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplier ...@@ -9,19 +17,11 @@ import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplier
import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierService; import com.netease.mail.yanxuan.change.integration.flow.supplier.FlowRpcSupplierService;
import com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierGoodsInfoReq; import com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierGoodsInfoReq;
import com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierSearchRemoteReq; import com.netease.mail.yanxuan.change.integration.flow.supplier.req.SupplierSearchRemoteReq;
import com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierInfoRsp;
import com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierSimpleRsp; import com.netease.mail.yanxuan.change.integration.flow.supplier.rsp.SupplierSimpleRsp;
import com.netease.mail.yanxuan.change.integration.todo.SupplierItemPageVO; import com.netease.mail.yanxuan.change.integration.todo.SupplierItemPageVO;
import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse; import com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections; import lombok.extern.slf4j.Slf4j;
import java.util.List;
/** /**
* @author WangJiaXiang * @author WangJiaXiang
...@@ -46,9 +46,9 @@ public class SupplierController { ...@@ -46,9 +46,9 @@ public class SupplierController {
@GetMapping("/query/supplier/infos") @GetMapping("/query/supplier/infos")
public AjaxResult<List<SupplierSimpleRsp>> querySupplierInfos( public AjaxResult<List<SupplierSimpleRsp>> querySupplierInfos(
@RequestParam(name = "name", required = false) String name, @RequestParam(name = "name", required = false) String name,
@RequestParam(name = "uid", required = false) String uid, @RequestParam(name = "uid", required = false) String uid,
@RequestParam(name = "fuzzySearchText") String fuzzySearchText) { @RequestParam(name = "fuzzySearchText") String fuzzySearchText) {
SupplierSearchRemoteReq req = new SupplierSearchRemoteReq(); SupplierSearchRemoteReq req = new SupplierSearchRemoteReq();
req.setSearchText(fuzzySearchText); req.setSearchText(fuzzySearchText);
AjaxResult<List<SupplierSimpleRsp>> supplierInfo = supplierSendService.queryByConditionForQc(req); AjaxResult<List<SupplierSimpleRsp>> supplierInfo = supplierSendService.queryByConditionForQc(req);
...@@ -56,19 +56,19 @@ public class SupplierController { ...@@ -56,19 +56,19 @@ public class SupplierController {
return supplierInfo; return supplierInfo;
} }
log.error("[querySupplierInfos] querySupplierInfos failed, name={},uid={},fuzzySearchText={}, errMsg={}", name, log.error("[querySupplierInfos] querySupplierInfos failed, name={},uid={},fuzzySearchText={}, errMsg={}", name,
uid, fuzzySearchText, JSON.toJSONString(supplierInfo)); uid, fuzzySearchText, JSON.toJSONString(supplierInfo));
return null; return null;
} }
@GetMapping("/query/supplier/item") @GetMapping("/query/supplier/item")
public AjaxResponse<SupplierItemPageVO> querySupplier(@RequestParam String supplier, public AjaxResponse<SupplierItemPageVO> querySupplier(@RequestParam String supplier,
@RequestParam(required = false) String itemId, @RequestParam(required = false) String itemId, @RequestParam(required = false) String itemName,
@RequestParam(required = false) String itemName, @RequestParam(required = false) String skuId, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize) {
@RequestParam(defaultValue = "10") Integer pageSize) {
SupplierGoodsInfoReq supplierGoodsInfoReq = new SupplierGoodsInfoReq(); SupplierGoodsInfoReq supplierGoodsInfoReq = new SupplierGoodsInfoReq();
supplierGoodsInfoReq.setSupplierIds(supplier); supplierGoodsInfoReq.setSupplierIds(supplier);
return AjaxResponse.initSuccessResult(supplierItemService.supplierGoodsInfoBySupplier(supplierGoodsInfoReq, itemId, itemName, page, pageSize)); return AjaxResponse.initSuccessResult(supplierItemService.supplierGoodsInfoBySupplier(supplierGoodsInfoReq,
itemId, itemName, page, pageSize, skuId));
} }
} }
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