From d311221c9905ce0ffe9cc34faa51d65f428803cc Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Wed, 3 Dec 2025 09:42:41 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E5=90=8C=E6=AD=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=B0ES=E6=B2=A1=E6=9C=89hasVideo=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ElasticSearchServiceImpl.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/ElasticSearchServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/ElasticSearchServiceImpl.java index 8d88f7e7b..544fed5d4 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/ElasticSearchServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/ElasticSearchServiceImpl.java @@ -19,10 +19,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.es.EsClientWrapper; import com.ruoyi.framework.notice.fs.FsNotice; -import com.ruoyi.xkt.domain.Store; -import com.ruoyi.xkt.domain.StoreProduct; -import com.ruoyi.xkt.domain.StoreProductCategoryAttribute; -import com.ruoyi.xkt.domain.SysProductCategory; +import com.ruoyi.xkt.domain.*; import com.ruoyi.xkt.dto.elasticSearch.EsProdBatchCreateDTO; import com.ruoyi.xkt.dto.elasticSearch.EsProdBatchDeleteDTO; import com.ruoyi.xkt.dto.es.ESProductDTO; @@ -523,6 +520,7 @@ public class ElasticSearchServiceImpl implements IElasticSearchService { List prodCateList = this.prodCateMapper.selectList(new LambdaQueryWrapper() .eq(SysProductCategory::getDelFlag, Constants.UNDELETED)); Map prodCateMap = prodCateList.stream().collect(Collectors.toMap(SysProductCategory::getId, x -> x)); + // 第一张主图的路径 List mainPicDTOList = this.prodFileMapper.selectMainPicByStoreProdIdList(storeProdIdList.stream() .map(Long::valueOf).collect(Collectors.toList()), FileType.MAIN_PIC.getValue(), Constants.ORDER_NUM_1); Map mainPicMap = mainPicDTOList.stream().collect(Collectors.toMap(StoreProdMainPicDTO::getStoreProdId, StoreProdMainPicDTO::getFileUrl)); @@ -537,6 +535,12 @@ public class ElasticSearchServiceImpl implements IElasticSearchService { Map storeMap = this.storeMapper.selectList(new LambdaQueryWrapper().eq(Store::getDelFlag, Constants.UNDELETED) .in(Store::getId, storeProdList.stream().map(StoreProduct::getStoreId).collect(Collectors.toList()))) .stream().collect(Collectors.toMap(Store::getId, x -> x)); + // 主图视频列表 + List videoFileList = this.prodFileMapper.selectList(new LambdaQueryWrapper() + .eq(StoreProductFile::getDelFlag, Constants.UNDELETED).eq(StoreProductFile::getFileType, FileType.MAIN_PIC_VIDEO.getValue()) + .in(StoreProductFile::getStoreProdId, storeProdIdList)); + Map videoMap = CollectionUtils.isEmpty(videoFileList) ? new HashMap<>() + : videoFileList.stream().collect(Collectors.toMap(StoreProductFile::getStoreProdId, StoreProductFile::getId)); List esProductDTOList = new ArrayList<>(); for (StoreProduct product : storeProdList) { final SysProductCategory cate = prodCateMap.get(product.getProdCateId()); @@ -545,7 +549,8 @@ public class ElasticSearchServiceImpl implements IElasticSearchService { final BigDecimal prodMinPrice = prodMinPriceMap.get(product.getId()); final StoreProductCategoryAttribute cateAttr = cateAttrMap.get(product.getId()); ESProductDTO esProductDTO = new ESProductDTO().setStoreProdId(product.getId().toString()).setProdArtNum(product.getProdArtNum()) - .setHasVideo(Boolean.FALSE).setProdCateId(product.getProdCateId().toString()).setCreateTime(DateUtils.getTime()) + .setHasVideo(videoMap.containsKey(product.getId()) ? Boolean.TRUE : Boolean.FALSE) + .setProdCateId(product.getProdCateId().toString()).setCreateTime(DateUtils.getTime()) .setProdCateName(ObjectUtils.isNotEmpty(cate) ? cate.getName() : "") .setSaleWeight(WEIGHT_DEFAULT_ZERO.toString()).setRecommendWeight(WEIGHT_DEFAULT_ZERO.toString()) .setPopularityWeight(WEIGHT_DEFAULT_ZERO.toString())