diff --git a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java index fac6d784..1ed1c737 100644 --- a/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java +++ b/consumer/src/main/java/cn/lili/listener/GoodsMessageListener.java @@ -356,11 +356,8 @@ public class GoodsMessageListener implements RocketMQListener { EsGoodsIndex goodsIndex = this.settingUpGoodsIndexData(goods, goodsSku); goodsIndex.setSkuSource(skuSource--); log.info("goodsSku:{}", goodsSku); - //如果商品库存不为0,并且es中有数据 - if (goodsSku.getQuantity() > 0) { - log.info("生成商品索引 {}", goodsIndex); - esGoodsIndices.add(goodsIndex); - } + log.info("生成商品索引 {}", goodsIndex); + esGoodsIndices.add(goodsIndex); } this.goodsIndexService.deleteIndex(MapUtil.builder(new HashMap()).put("goodsId", goods.getId()).build()); this.goodsIndexService.addIndex(esGoodsIndices); diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java index 41e4b815..cfbbc554 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/FootprintServiceImpl.java @@ -90,9 +90,7 @@ public class FootprintServiceImpl extends ServiceImpl list = esGoodsSearchService.getEsGoodsBySkuIds( - footPrintPages.getRecords().stream().map(FootPrint::getSkuId).collect(Collectors.toList())); - //去除为空的商品数据 - list.removeIf(Objects::isNull); + footPrintPages.getRecords().stream().map(FootPrint::getSkuId).collect(Collectors.toList()), pageVO); esGoodsIndexIPage.setPages(footPrintPages.getPages()); esGoodsIndexIPage.setRecords(list); diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java index 3fafa5be..485bb249 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java @@ -348,7 +348,7 @@ public class CartServiceImpl implements CartService { if (tradeDTO.getSkuList() != null && !tradeDTO.getSkuList().isEmpty()) { List ids = tradeDTO.getSkuList().stream().filter(i -> Boolean.TRUE.equals(i.getChecked())).map(i -> i.getGoodsSku().getId()).collect(Collectors.toList()); - List esGoodsList = esGoodsSearchService.getEsGoodsBySkuIds(ids); + List esGoodsList = esGoodsSearchService.getEsGoodsBySkuIds(ids, null); for (EsGoodsIndex esGoodsIndex : esGoodsList) { if (esGoodsIndex != null && esGoodsIndex.getPromotionMap() != null && !esGoodsIndex.getPromotionMap().isEmpty()) { List couponIds = esGoodsIndex.getPromotionMap().keySet().stream().filter(i -> i.contains(PromotionTypeEnum.COUPON.name())).map(i -> i.substring(i.lastIndexOf("-") + 1)).collect(Collectors.toList()); diff --git a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java index 4e1dbf30..22b46a27 100644 --- a/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java +++ b/framework/src/main/java/cn/lili/modules/search/service/EsGoodsSearchService.java @@ -40,7 +40,7 @@ public interface EsGoodsSearchService { * @param skuIds SkuId列表 * @return ES商品列表 */ - List getEsGoodsBySkuIds(List skuIds); + List getEsGoodsBySkuIds(List skuIds, PageVO pageVo); /** * 根据id获取商品索引 diff --git a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java index 045407d0..4ddb965c 100644 --- a/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/search/serviceimpl/EsGoodsSearchServiceImpl.java @@ -125,10 +125,19 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { } @Override - public List getEsGoodsBySkuIds(List skuIds) { + public List getEsGoodsBySkuIds(List skuIds, PageVO pageVo) { NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder(); NativeSearchQuery build = searchQueryBuilder.build(); 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)); } @@ -404,8 +413,8 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { /** * 商品推荐 * - * @param filterBuilder - * @param searchDTO + * @param filterBuilder 过滤条件 + * @param searchDTO 搜索条件 */ private void recommended(BoolQueryBuilder filterBuilder, EsGoodsSearchDTO searchDTO) { @@ -565,7 +574,8 @@ public class EsGoodsSearchServiceImpl implements EsGoodsSearchService { FunctionScoreQueryBuilder.FilterFunctionBuilder skuNoBuilder = new FunctionScoreQueryBuilder.FilterFunctionBuilder(skuNoScore); 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); filterFunctionBuilders.add(buyCountBuilder); return filterFunctionBuilders;