From 1be0488bd62bba8a0246b8b6f70dd3293698a42b Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 8 Apr 2025 15:28:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E6=9C=80=E5=A4=A7=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E6=95=B0=E4=BB=8E=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/aop/FilePermissionCheckAspect.java | 5 ++++- .../industry/software/manage/config/ElePropertyConfig.java | 4 ++++ .../software/manage/service/serviceimpl/CommonService.java | 4 +--- .../manage/service/serviceimpl/EdFileInfoServiceImpl.java | 2 +- .../manage/service/serviceimpl/EdPrjServiceImpl.java | 7 ++++--- .../software/common/cons/ElectromagneticConstants.java | 2 -- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java index c17a491..113087b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java @@ -5,6 +5,7 @@ import com.electromagnetic.industry.software.common.cons.ElectromagneticConstant import com.electromagnetic.industry.software.common.enums.FilePermission; import com.electromagnetic.industry.software.common.exception.PermissionDeniedException; import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.pojo.req.FileInfoQueryDTO; import com.electromagnetic.industry.software.manage.pojo.req.UpdateFileInfoDTO; import com.electromagnetic.industry.software.manage.service.EdFileInfoService; @@ -25,6 +26,8 @@ public class FilePermissionCheckAspect { PermissionService permissionService; @Resource EdFileInfoService edFileInfoService; + @Resource + private ElePropertyConfig elePropertyConfig; @Around("@annotation(requiredPermission)") public Object requirePermission(ProceedingJoinPoint joinPoint, RequiredPermission requiredPermission) throws Throwable { @@ -41,7 +44,7 @@ public class FilePermissionCheckAspect { String id = extractId(args[0]); // 提取ID逻辑封装成方法,减少冗余代码 // 特殊处理 FileInfoQueryDTO if (args[0] instanceof FileInfoQueryDTO) { - if (id.length() > ElectromagneticConstants.PRJ_ID_LENGTH) { + if (id.length() > elePropertyConfig.getPrjFolderMaxLength()) { return joinPoint.proceed(); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 6709f98..c0ec576 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -66,6 +66,10 @@ public class ElePropertyConfig { @Value("${ai.store.max.docs:200}") private Integer aiMaxDocs; + @Getter + @Value("${prj.folder.max.length}") + private Integer prjFolderMaxLength; + public String getEleTmpPath() { if (EleCommonUtil.isWinOs()) { return winPrefix + eleTmpPath; 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 4511a55..c7043c8 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 @@ -45,8 +45,6 @@ public class CommonService { private static final Map PATH_MAP = new HashMap<>(); private final EleLog log = new EleLog(CommonService.class); - @Value("${prj.folder.max.length}") - private int prjFolderMaxLength; @Resource private ElePropertyConfig elePropertyConfig; @@ -226,7 +224,7 @@ public class CommonService { String currentPath = edFileInfo.getFilePath(); List paths = CollUtil.newArrayList(edFileInfo.getFilePath().split(MYSQL_FILE_PATH_SPLIT)); if (maxLengthCheck) { - if (paths.size() >= prjFolderMaxLength) { + if (paths.size() >= elePropertyConfig.getPrjFolderMaxLength()) { String info = StrFormatter.format("当前子集已达到最大层级,禁止创建子集,{} 创建失败。", folderName); log.error(info); return ElectromagneticResultUtil.fail("-1", info); 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 6c41146..8f4d18b 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 @@ -99,7 +99,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl accessibleTree = permissionService.getAccessibleTree(); - if ((dataOwnCode != DataOwnEnum.USER_FILE.code) && (!accessibleTree.contains(parentId) && parentId.length() == PRJ_ID_LENGTH)) { + if ((dataOwnCode != DataOwnEnum.USER_FILE.code) && (!accessibleTree.contains(parentId) && parentId.length() == elePropertyConfig.getPrjFolderMaxLength())) { throw new PermissionDeniedException(); } } 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 2597bbb..cc4b45e 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 @@ -18,6 +18,7 @@ import com.electromagnetic.industry.software.common.util.EleCommonUtil; import com.electromagnetic.industry.software.common.util.EleLog; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO; @@ -44,8 +45,8 @@ public class EdPrjServiceImpl extends ServiceImpl @Resource private FileSystemService fileSystemService; - @Value("${prj.folder.max.length}") - private int prjFolderMaxLength; + @Resource + private ElePropertyConfig elePropertyConfig; @Resource private CommonService commonService; @@ -413,7 +414,7 @@ public class EdPrjServiceImpl extends ServiceImpl Map idMaps = new HashMap<>(); idMaps.put(sourceId, targetId); List sysFilePaths = new ArrayList<>(); - for (int i = 1; i <= prjFolderMaxLength; ++i) { + for (int i = 1; i <= elePropertyConfig.getPrjFolderMaxLength(); ++i) { int layerIndex = i; List currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).toList(); if (layerIndex == 1) { diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java index 1295318..1dc6ca0 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java @@ -16,7 +16,5 @@ public interface ElectromagneticConstants { String FILE_SEC_PASSWD = "adknfhkj87654knd"; - int PRJ_ID_LENGTH = 6; - String DELETE_FLAG = "deleted"; }