From 21ceaf4d81e0268c9806ddcac27a46e9f898010e Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 10 Jan 2025 17:14:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=A0=91=E7=9A=84=E6=A0=A1=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 17 +++++++++++++++-- .../service/serviceimpl/EdPrjServiceImpl.java | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index 324ad01..47034dc 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -24,7 +24,9 @@ import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.resp.FileProjectVO; import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO; import com.electromagnetic.industry.software.manage.service.FileSystemService; +import com.electromagnetic.industry.software.manage.service.PermissionService; import lombok.Getter; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @@ -81,6 +83,8 @@ public class CommonService { @Resource private FileSystemService fileSystemService; + @Autowired + private PermissionService permissionService; @PostConstruct public void init() { @@ -137,11 +141,20 @@ public class CommonService { return parentId + FILE_TYPE_ENUM.getOrDefault(fileType, "00") + version + timeStr; } - public List selectAllAdminFolder(String id) { + public List selectAllAdminFolder(String id, boolean isAdminQuery) { + + if (isAdminQuery) { + return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .eq(EdFileInfo::getParentId, id)); + } + List accessableIds = permissionService.getAccessibleTree(); return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .eq(EdFileInfo::getPrjDir, true) + .in(EdFileInfo::getId, accessableIds) .likeRight(EdFileInfo::getFilePath, id)); } @@ -226,7 +239,7 @@ public class CommonService { List projectVOS = new ArrayList<>(); for (String id : ids) { - List edFileInfos = selectAllAdminFolder(id); + List edFileInfos = selectAllAdminFolder(id, isAdminQuery); if (!isAdminQuery) { edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList()); } else { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index c4346ff..37969f0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -322,8 +322,8 @@ public class EdPrjServiceImpl extends ServiceImpl String currentUserId = UserThreadLocal.getUserId(); // 把source工程的层级结构copy到目标工程 // 查找source的全部目录 - List sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId); - List targetEdFileInfos = commonService.selectAllAdminFolder(targetId); + List sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId, true); + List targetEdFileInfos = commonService.selectAllAdminFolder(targetId, true); List needSavePaths = new ArrayList<>(); // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。 for (int i = 1; i <= prjFolderMaxLength; ++i) {