feat:智能商品推荐
This commit is contained in:
parent
5b3129bf01
commit
486bebe6d2
@ -44,4 +44,7 @@ public class EsGoodsSearchDTO {
|
|||||||
@ApiModelProperty(hidden = true)
|
@ApiModelProperty(hidden = true)
|
||||||
private Map<String, List<String>> notShowCol = new HashMap<>();
|
private Map<String, List<String>> notShowCol = new HashMap<>();
|
||||||
|
|
||||||
|
@ApiModelProperty("当前商品skuId,根据当前浏览的商品信息来给用户推荐可能喜欢的商品")
|
||||||
|
private String currentGoodsId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -363,6 +363,9 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
//对查询条件进行处理
|
//对查询条件进行处理
|
||||||
this.commonSearch(filterBuilder, searchDTO);
|
this.commonSearch(filterBuilder, searchDTO);
|
||||||
|
|
||||||
|
//智能推荐
|
||||||
|
this.recommended(filterBuilder,searchDTO);
|
||||||
|
|
||||||
//未上架的商品不显示
|
//未上架的商品不显示
|
||||||
filterBuilder.must(QueryBuilders.matchQuery("marketEnable", GoodsStatusEnum.UPPER.name()));
|
filterBuilder.must(QueryBuilders.matchQuery("marketEnable", GoodsStatusEnum.UPPER.name()));
|
||||||
//待审核和审核不通过的商品不显示
|
//待审核和审核不通过的商品不显示
|
||||||
@ -401,6 +404,36 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
return nativeSearchQueryBuilder;
|
return nativeSearchQueryBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品推荐
|
||||||
|
* @param filterBuilder
|
||||||
|
* @param searchDTO
|
||||||
|
*/
|
||||||
|
private void recommended(BoolQueryBuilder filterBuilder, EsGoodsSearchDTO searchDTO) {
|
||||||
|
EsGoodsIndex currentGoodsIndice = null;
|
||||||
|
if(CharSequenceUtil.isNotEmpty(searchDTO.getCurrentGoodsId())){
|
||||||
|
//查询当前商品的信息
|
||||||
|
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder();
|
||||||
|
NativeSearchQuery build = searchQueryBuilder.build();
|
||||||
|
build.setIds(Arrays.asList(searchDTO.getCurrentGoodsId()));
|
||||||
|
List<EsGoodsIndex> esGoodsIndices = restTemplate.multiGet(build, EsGoodsIndex.class, restTemplate.getIndexCoordinatesFor(EsGoodsIndex.class));
|
||||||
|
if(esGoodsIndices==null || esGoodsIndices.size()<1){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
currentGoodsIndice = esGoodsIndices.get(0);
|
||||||
|
}
|
||||||
|
//推荐相同分类的商品
|
||||||
|
String categoryPath = currentGoodsIndice.getCategoryPath();
|
||||||
|
if(CharSequenceUtil.isNotEmpty(categoryPath)){
|
||||||
|
//匹配二级分类
|
||||||
|
String substring = categoryPath.substring(0, categoryPath.lastIndexOf(","));
|
||||||
|
filterBuilder.must(QueryBuilders.wildcardQuery("categoryPath",substring+"*"));
|
||||||
|
}
|
||||||
|
|
||||||
|
//排除当前商品
|
||||||
|
filterBuilder.mustNot(QueryBuilders.matchQuery("id",searchDTO.getCurrentGoodsId()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询属性处理
|
* 查询属性处理
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user