工程最大层级数从配置文件获取

This commit is contained in:
chenxudong 2025-04-08 15:28:39 +08:00
parent d247fda266
commit 1be0488bd6
6 changed files with 14 additions and 10 deletions

View File

@ -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();
}
}

View File

@ -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;

View File

@ -45,8 +45,6 @@ public class CommonService {
private static final Map<Integer, String> 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<String> 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);

View File

@ -99,7 +99,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
if (DataOwnEnum.isSysCode(dataOwnCode)) {
String parentId = pars.getParentId();
List<String> 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();
}
}

View File

@ -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<EdFileInfoMapper, EdFileInfo>
@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<EdFileInfoMapper, EdFileInfo>
Map<String, String> idMaps = new HashMap<>();
idMaps.put(sourceId, targetId);
List<String> sysFilePaths = new ArrayList<>();
for (int i = 1; i <= prjFolderMaxLength; ++i) {
for (int i = 1; i <= elePropertyConfig.getPrjFolderMaxLength(); ++i) {
int layerIndex = i;
List<EdFileInfo> currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).toList();
if (layerIndex == 1) {

View File

@ -16,7 +16,5 @@ public interface ElectromagneticConstants {
String FILE_SEC_PASSWD = "adknfhkj87654knd";
int PRJ_ID_LENGTH = 6;
String DELETE_FLAG = "deleted";
}