!247 fix: 优化生成商品索引,取消检查库存不为0 优化es商品搜索及es商品特定查询条件的分页
Merge pull request !247 from OceansDeep/feature/pg
This commit is contained in:
commit
0d7b44fe51
@ -356,11 +356,8 @@ public class GoodsMessageListener implements RocketMQListener<MessageExt> {
|
|||||||
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
|
EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku);
|
||||||
goodsIndex.setSkuSource(skuSource--);
|
goodsIndex.setSkuSource(skuSource--);
|
||||||
log.info("goodsSku:{}", goodsSku);
|
log.info("goodsSku:{}", goodsSku);
|
||||||
//如果商品库存不为0,并且es中有数据
|
log.info("生成商品索引 {}", goodsIndex);
|
||||||
if (goodsSku.getQuantity() > 0) {
|
esGoodsIndices.add(goodsIndex);
|
||||||
log.info("生成商品索引 {}", goodsIndex);
|
|
||||||
esGoodsIndices.add(goodsIndex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
this.goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goods.getId()).build());
|
this.goodsIndexService.deleteIndex(MapUtil.builder(new HashMap<String, Object>()).put("goodsId", goods.getId()).build());
|
||||||
this.goodsIndexService.addIndex(esGoodsIndices);
|
this.goodsIndexService.addIndex(esGoodsIndices);
|
||||||
|
@ -90,9 +90,7 @@ public class FootprintServiceImpl extends ServiceImpl<FootprintMapper, FootPrint
|
|||||||
return esGoodsIndexIPage;
|
return esGoodsIndexIPage;
|
||||||
} else {
|
} else {
|
||||||
List<EsGoodsIndex> list = esGoodsSearchService.getEsGoodsBySkuIds(
|
List<EsGoodsIndex> list = esGoodsSearchService.getEsGoodsBySkuIds(
|
||||||
footPrintPages.getRecords().stream().map(FootPrint::getSkuId).collect(Collectors.toList()));
|
footPrintPages.getRecords().stream().map(FootPrint::getSkuId).collect(Collectors.toList()), pageVO);
|
||||||
//去除为空的商品数据
|
|
||||||
list.removeIf(Objects::isNull);
|
|
||||||
|
|
||||||
esGoodsIndexIPage.setPages(footPrintPages.getPages());
|
esGoodsIndexIPage.setPages(footPrintPages.getPages());
|
||||||
esGoodsIndexIPage.setRecords(list);
|
esGoodsIndexIPage.setRecords(list);
|
||||||
|
@ -348,7 +348,7 @@ public class CartServiceImpl implements CartService {
|
|||||||
if (tradeDTO.getSkuList() != null && !tradeDTO.getSkuList().isEmpty()) {
|
if (tradeDTO.getSkuList() != null && !tradeDTO.getSkuList().isEmpty()) {
|
||||||
List<String> ids = tradeDTO.getSkuList().stream().filter(i -> Boolean.TRUE.equals(i.getChecked())).map(i -> i.getGoodsSku().getId()).collect(Collectors.toList());
|
List<String> ids = tradeDTO.getSkuList().stream().filter(i -> Boolean.TRUE.equals(i.getChecked())).map(i -> i.getGoodsSku().getId()).collect(Collectors.toList());
|
||||||
|
|
||||||
List<EsGoodsIndex> esGoodsList = esGoodsSearchService.getEsGoodsBySkuIds(ids);
|
List<EsGoodsIndex> esGoodsList = esGoodsSearchService.getEsGoodsBySkuIds(ids, null);
|
||||||
for (EsGoodsIndex esGoodsIndex : esGoodsList) {
|
for (EsGoodsIndex esGoodsIndex : esGoodsList) {
|
||||||
if (esGoodsIndex != null && esGoodsIndex.getPromotionMap() != null && !esGoodsIndex.getPromotionMap().isEmpty()) {
|
if (esGoodsIndex != null && esGoodsIndex.getPromotionMap() != null && !esGoodsIndex.getPromotionMap().isEmpty()) {
|
||||||
List<String> couponIds = esGoodsIndex.getPromotionMap().keySet().stream().filter(i -> i.contains(PromotionTypeEnum.COUPON.name())).map(i -> i.substring(i.lastIndexOf("-") + 1)).collect(Collectors.toList());
|
List<String> couponIds = esGoodsIndex.getPromotionMap().keySet().stream().filter(i -> i.contains(PromotionTypeEnum.COUPON.name())).map(i -> i.substring(i.lastIndexOf("-") + 1)).collect(Collectors.toList());
|
||||||
|
@ -40,7 +40,7 @@ public interface EsGoodsSearchService {
|
|||||||
* @param skuIds SkuId列表
|
* @param skuIds SkuId列表
|
||||||
* @return ES商品列表
|
* @return ES商品列表
|
||||||
*/
|
*/
|
||||||
List<EsGoodsIndex> getEsGoodsBySkuIds(List<String> skuIds);
|
List<EsGoodsIndex> getEsGoodsBySkuIds(List<String> skuIds, PageVO pageVo);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id获取商品索引
|
* 根据id获取商品索引
|
||||||
|
@ -125,10 +125,19 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EsGoodsIndex> getEsGoodsBySkuIds(List<String> skuIds) {
|
public List<EsGoodsIndex> getEsGoodsBySkuIds(List<String> skuIds, PageVO pageVo) {
|
||||||
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder();
|
NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder();
|
||||||
NativeSearchQuery build = searchQueryBuilder.build();
|
NativeSearchQuery build = searchQueryBuilder.build();
|
||||||
build.setIds(skuIds);
|
build.setIds(skuIds);
|
||||||
|
if (pageVo != null) {
|
||||||
|
int pageNumber = pageVo.getPageNumber() - 1;
|
||||||
|
if (pageNumber < 0) {
|
||||||
|
pageNumber = 0;
|
||||||
|
}
|
||||||
|
Pageable pageable = PageRequest.of(pageNumber, pageVo.getPageSize());
|
||||||
|
//分页
|
||||||
|
searchQueryBuilder.withPageable(pageable);
|
||||||
|
}
|
||||||
return restTemplate.multiGet(build, EsGoodsIndex.class, restTemplate.getIndexCoordinatesFor(EsGoodsIndex.class));
|
return restTemplate.multiGet(build, EsGoodsIndex.class, restTemplate.getIndexCoordinatesFor(EsGoodsIndex.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,8 +413,8 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
/**
|
/**
|
||||||
* 商品推荐
|
* 商品推荐
|
||||||
*
|
*
|
||||||
* @param filterBuilder
|
* @param filterBuilder 过滤条件
|
||||||
* @param searchDTO
|
* @param searchDTO 搜索条件
|
||||||
*/
|
*/
|
||||||
private void recommended(BoolQueryBuilder filterBuilder, EsGoodsSearchDTO searchDTO) {
|
private void recommended(BoolQueryBuilder filterBuilder, EsGoodsSearchDTO searchDTO) {
|
||||||
|
|
||||||
@ -565,7 +574,8 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService {
|
|||||||
FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
|
FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore);
|
||||||
filterFunctionBuilders.add(skuNoBuilder);
|
filterFunctionBuilders.add(skuNoBuilder);
|
||||||
|
|
||||||
FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.LOG1P).setWeight(3);
|
// 修改分数算法为无,数字最大分数越高
|
||||||
|
FieldValueFactorFunctionBuilder buyCountScore = ScoreFunctionBuilders.fieldValueFactorFunction("buyCount").modifier(FieldValueFactorFunction.Modifier.NONE).setWeight(3);
|
||||||
FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(buyCountScore);
|
FunctionScoreQueryBuilder.FilterFunctionBuilder buyCountBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(buyCountScore);
|
||||||
filterFunctionBuilders.add(buyCountBuilder);
|
filterFunctionBuilders.add(buyCountBuilder);
|
||||||
return filterFunctionBuilders;
|
return filterFunctionBuilders;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user