From 3e6471079d500d834827de6b05edddd96cbacd63 Mon Sep 17 00:00:00 2001 From: s2042968 Date: Wed, 5 Mar 2025 10:48:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A0=87=E7=AD=BE=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/pojo/req/FileInfoQueryDTO.java | 7 +++++++ .../manage/service/EdTagLibraryService.java | 3 ++- .../manage/service/FileTagRelationService.java | 7 +++++++ .../serviceimpl/EdFileInfoServiceImpl.java | 11 ++++++++++- .../serviceimpl/EdTagLibraryServiceImpl.java | 10 ++++++++-- .../serviceimpl/FileTagRelationServiceImpl.java | 17 +++++++++++++++++ 6 files changed, 51 insertions(+), 4 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FileInfoQueryDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FileInfoQueryDTO.java index 69c667c..c1ce478 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FileInfoQueryDTO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/FileInfoQueryDTO.java @@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.manage.pojo.req; import lombok.Data; +import java.util.List; + @Data public class FileInfoQueryDTO { @@ -65,4 +67,9 @@ public class FileInfoQueryDTO { * 状态(0-未发布 1-已发布 2-占用) */ private Integer dataStatus; + + /** + * 标签查询ID列表 + */ + private List tagIds; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java index 2760ae3..7c77b8f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java @@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.electromagnetic.industry.software.common.pojo.TreeNode; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; +import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import javax.swing.text.html.HTML; @@ -69,5 +70,5 @@ public interface EdTagLibraryService extends IService { * 获取所有标签 * @return */ - List listAllTags(); + List listAllTags(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java index ffa41f3..6364771 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java @@ -24,4 +24,11 @@ public interface FileTagRelationService extends IService { * @return */ List getFileTags (String fileId); + + /** + * 根据标签id获取文件id + * @param tagIds + * @return + */ + List getFileIdsByTagIds(List tagIds); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index ac9673b..8bdd0d4 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -97,7 +97,6 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) .eq(EdFileInfo::getSaveStatus, EleDataSaveStatusEnum.SUCCESS.code) @@ -142,6 +141,16 @@ public class EdFileInfoServiceImpl extends ServiceImpl fileIdsWithTags = fileTagRelationService.getFileIdsByTagIds(pars.getTagIds()); + if (fileIdsWithTags.isEmpty()) { + return ElectromagneticResultUtil.success(new RespPageVO<>(0, new ArrayList<>())); + } + queryWrapper.in(EdFileInfo::getId, fileIdsWithTags); + } + Page edFileInfoPage = this.baseMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper); long total = edFileInfoPage.getTotal(); List records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileInfoVO.class); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java index 2e7d95d..7afa39a 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java @@ -14,6 +14,7 @@ import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.mapper.EdTagLibraryMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; +import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import com.electromagnetic.industry.software.manage.service.EdTagLibraryService; import org.springframework.beans.BeanUtils; @@ -306,11 +307,16 @@ public class EdTagLibraryServiceImpl extends ServiceImpl listAllTags() { + public List listAllTags() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode()) .eq(EdTagLibrary::getType, TagTypeEnum.TAG.getCode()); - return this.list(queryWrapper); + return this.list(queryWrapper).stream() + .map(tag -> { + FileTagInfo info = new FileTagInfo(); + BeanUtils.copyProperties(tag, info); + return info; + }).collect(Collectors.toList()); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java index 5ce8028..5787b28 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java @@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Service public class FileTagRelationServiceImpl extends ServiceImpl implements FileTagRelationService { @@ -84,4 +85,20 @@ public class FileTagRelationServiceImpl extends ServiceImpl getFileIdsByTagIds(List tagIds) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(FileTagRelation::getTagId, tagIds); + List relations = this.list(queryWrapper); + return relations.stream() + .map(FileTagRelation::getFileId) + .distinct() + .collect(Collectors.toList()); + } } \ No newline at end of file