完成的商品搜索和条件功能
This commit is contained in:
@@ -16,4 +16,8 @@ public enum SearchProductConditionFieldEnum {
|
||||
this.field = field;
|
||||
}
|
||||
|
||||
public String getField() {
|
||||
return field;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package cn.iocoder.mall.searchservice.rpc.product;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
|
||||
|
||||
@@ -10,6 +12,20 @@ import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
|
||||
*/
|
||||
public interface SearchProductRpc {
|
||||
|
||||
CommonResult<PageResult<SearchProductRespDTO>> pageSearchProduct(SearchProductPageReqDTO pageQueryReqDTO);
|
||||
/**
|
||||
* 获得商品搜索分页
|
||||
*
|
||||
* @param pageReqDTO 分页请求 DTO
|
||||
* @return 商品搜索分页结果
|
||||
*/
|
||||
CommonResult<PageResult<SearchProductRespDTO>> pageSearchProduct(SearchProductPageReqDTO pageReqDTO);
|
||||
|
||||
/**
|
||||
* 获得商品搜索条件
|
||||
*
|
||||
* @param conditionReqDTO 搜索条件 DTO
|
||||
* @return 搜索条件
|
||||
*/
|
||||
CommonResult<SearchProductConditionRespDTO> getSearchProductCondition(SearchProductConditionReqDTO conditionReqDTO);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package cn.iocoder.mall.searchservice.rpc.product.dto;
|
||||
|
||||
import cn.iocoder.mall.searchservice.enums.product.SearchProductConditionFieldEnum;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 商品搜索条件 Request DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SearchProductConditionReqDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 关键字
|
||||
*/
|
||||
private String keyword;
|
||||
/**
|
||||
* 需要返回的搜索条件
|
||||
*
|
||||
* 可选择的条件,见 {@link SearchProductConditionFieldEnum} 枚举类
|
||||
*/
|
||||
private Collection<String> fields;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package cn.iocoder.mall.searchservice.rpc.product.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品搜索条件 Response DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SearchProductConditionRespDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 商品分类数组
|
||||
*/
|
||||
private List<Integer> cids;
|
||||
|
||||
}
|
||||
@@ -3,6 +3,7 @@ package cn.iocoder.mall.searchservice.rpc.product.dto;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -10,7 +11,7 @@ import java.util.List;
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SearchProductRespDTO {
|
||||
public class SearchProductRespDTO implements Serializable {
|
||||
|
||||
private Integer id;
|
||||
|
||||
|
||||
@@ -4,9 +4,11 @@ import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.productservice.rpc.category.dto.ProductCategoryRespDTO;
|
||||
import cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuRespDTO;
|
||||
import cn.iocoder.mall.searchservice.dal.es.dataobject.ESProductDO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductBO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductConditionBO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductPageQueryBO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductSaveBO;
|
||||
import org.mapstruct.Mapper;
|
||||
@@ -37,13 +39,15 @@ public interface SearchProductConvert {
|
||||
|
||||
List<SearchProductBO> convertList(List<ESProductDO> list);
|
||||
|
||||
default PageResult<SearchProductBO> convertPage(Page<ESProductDO> searchPage) {
|
||||
return new PageResult<SearchProductBO>().setList(convertList(searchPage.getContent()))
|
||||
.setTotal(searchPage.getTotalElements());
|
||||
default PageResult<SearchProductBO> convertPage(Page<ESProductDO> page) {
|
||||
return new PageResult<SearchProductBO>().setList(convertList(page.getContent()))
|
||||
.setTotal(page.getTotalElements());
|
||||
}
|
||||
|
||||
SearchProductPageQueryBO convert(SearchProductPageReqDTO bean);
|
||||
|
||||
PageResult<SearchProductRespDTO> convertPage(PageResult<SearchProductBO> pageResult);
|
||||
PageResult<SearchProductRespDTO> convertPage(PageResult<SearchProductBO> page);
|
||||
|
||||
SearchProductConditionRespDTO convert(SearchProductConditionBO bean);
|
||||
|
||||
}
|
||||
|
||||
@@ -11,10 +11,13 @@ import cn.iocoder.mall.productservice.rpc.sku.dto.ProductSkuRespDTO;
|
||||
import cn.iocoder.mall.productservice.rpc.spu.ProductSpuRpc;
|
||||
import cn.iocoder.mall.productservice.rpc.spu.dto.ProductSpuRespDTO;
|
||||
import cn.iocoder.mall.searchservice.convert.product.SearchProductConvert;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
|
||||
import cn.iocoder.mall.searchservice.service.product.SearchProductService;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductBO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductConditionBO;
|
||||
import cn.iocoder.mall.searchservice.service.product.bo.SearchProductSaveBO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
@@ -48,6 +51,12 @@ public class SearchProductManager {
|
||||
return SearchProductConvert.INSTANCE.convertPage(pageResult);
|
||||
}
|
||||
|
||||
public SearchProductConditionRespDTO getSearchProductCondition(SearchProductConditionReqDTO conditionReqDTO) {
|
||||
SearchProductConditionBO conditionBO =
|
||||
searchProductService.getSearchProductCondition(conditionReqDTO.getKeyword(), conditionReqDTO.getFields());
|
||||
return SearchProductConvert.INSTANCE.convert(conditionBO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重建所有商品的 ES 索引
|
||||
*
|
||||
|
||||
@@ -3,6 +3,8 @@ package cn.iocoder.mall.searchservice.rpc.product;
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.searchservice.manager.product.SearchProductManager;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductConditionRespDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductPageReqDTO;
|
||||
import cn.iocoder.mall.searchservice.rpc.product.dto.SearchProductRespDTO;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
@@ -17,8 +19,13 @@ public class SearchProductRpcImpl implements SearchProductRpc {
|
||||
private SearchProductManager searchProductManager;
|
||||
|
||||
@Override
|
||||
public CommonResult<PageResult<SearchProductRespDTO>> pageSearchProduct(SearchProductPageReqDTO pageQueryReqDTO) {
|
||||
return success(searchProductManager.pageSearchProduct(pageQueryReqDTO));
|
||||
public CommonResult<PageResult<SearchProductRespDTO>> pageSearchProduct(SearchProductPageReqDTO pageReqDTO) {
|
||||
return success(searchProductManager.pageSearchProduct(pageReqDTO));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<SearchProductConditionRespDTO> getSearchProductCondition(SearchProductConditionReqDTO conditionReqDTO) {
|
||||
return success(searchProductManager.getSearchProductCondition(conditionReqDTO));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user