工程最大层级数从配置文件获取
This commit is contained in:
parent
d247fda266
commit
1be0488bd6
|
|
@ -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.enums.FilePermission;
|
||||||
import com.electromagnetic.industry.software.common.exception.PermissionDeniedException;
|
import com.electromagnetic.industry.software.common.exception.PermissionDeniedException;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
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.FileInfoQueryDTO;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.UpdateFileInfoDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.UpdateFileInfoDTO;
|
||||||
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
|
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
|
||||||
|
|
@ -25,6 +26,8 @@ public class FilePermissionCheckAspect {
|
||||||
PermissionService permissionService;
|
PermissionService permissionService;
|
||||||
@Resource
|
@Resource
|
||||||
EdFileInfoService edFileInfoService;
|
EdFileInfoService edFileInfoService;
|
||||||
|
@Resource
|
||||||
|
private ElePropertyConfig elePropertyConfig;
|
||||||
|
|
||||||
@Around("@annotation(requiredPermission)")
|
@Around("@annotation(requiredPermission)")
|
||||||
public Object requirePermission(ProceedingJoinPoint joinPoint, RequiredPermission requiredPermission) throws Throwable {
|
public Object requirePermission(ProceedingJoinPoint joinPoint, RequiredPermission requiredPermission) throws Throwable {
|
||||||
|
|
@ -41,7 +44,7 @@ public class FilePermissionCheckAspect {
|
||||||
String id = extractId(args[0]); // 提取ID逻辑封装成方法,减少冗余代码
|
String id = extractId(args[0]); // 提取ID逻辑封装成方法,减少冗余代码
|
||||||
// 特殊处理 FileInfoQueryDTO
|
// 特殊处理 FileInfoQueryDTO
|
||||||
if (args[0] instanceof FileInfoQueryDTO) {
|
if (args[0] instanceof FileInfoQueryDTO) {
|
||||||
if (id.length() > ElectromagneticConstants.PRJ_ID_LENGTH) {
|
if (id.length() > elePropertyConfig.getPrjFolderMaxLength()) {
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,10 @@ public class ElePropertyConfig {
|
||||||
@Value("${ai.store.max.docs:200}")
|
@Value("${ai.store.max.docs:200}")
|
||||||
private Integer aiMaxDocs;
|
private Integer aiMaxDocs;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Value("${prj.folder.max.length}")
|
||||||
|
private Integer prjFolderMaxLength;
|
||||||
|
|
||||||
public String getEleTmpPath() {
|
public String getEleTmpPath() {
|
||||||
if (EleCommonUtil.isWinOs()) {
|
if (EleCommonUtil.isWinOs()) {
|
||||||
return winPrefix + eleTmpPath;
|
return winPrefix + eleTmpPath;
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,6 @@ public class CommonService {
|
||||||
private static final Map<Integer, String> PATH_MAP = new HashMap<>();
|
private static final Map<Integer, String> PATH_MAP = new HashMap<>();
|
||||||
|
|
||||||
private final EleLog log = new EleLog(CommonService.class);
|
private final EleLog log = new EleLog(CommonService.class);
|
||||||
@Value("${prj.folder.max.length}")
|
|
||||||
private int prjFolderMaxLength;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ElePropertyConfig elePropertyConfig;
|
private ElePropertyConfig elePropertyConfig;
|
||||||
|
|
@ -226,7 +224,7 @@ public class CommonService {
|
||||||
String currentPath = edFileInfo.getFilePath();
|
String currentPath = edFileInfo.getFilePath();
|
||||||
List<String> paths = CollUtil.newArrayList(edFileInfo.getFilePath().split(MYSQL_FILE_PATH_SPLIT));
|
List<String> paths = CollUtil.newArrayList(edFileInfo.getFilePath().split(MYSQL_FILE_PATH_SPLIT));
|
||||||
if (maxLengthCheck) {
|
if (maxLengthCheck) {
|
||||||
if (paths.size() >= prjFolderMaxLength) {
|
if (paths.size() >= elePropertyConfig.getPrjFolderMaxLength()) {
|
||||||
String info = StrFormatter.format("当前子集已达到最大层级,禁止创建子集,{} 创建失败。", folderName);
|
String info = StrFormatter.format("当前子集已达到最大层级,禁止创建子集,{} 创建失败。", folderName);
|
||||||
log.error(info);
|
log.error(info);
|
||||||
return ElectromagneticResultUtil.fail("-1", info);
|
return ElectromagneticResultUtil.fail("-1", info);
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
if (DataOwnEnum.isSysCode(dataOwnCode)) {
|
if (DataOwnEnum.isSysCode(dataOwnCode)) {
|
||||||
String parentId = pars.getParentId();
|
String parentId = pars.getParentId();
|
||||||
List<String> accessibleTree = permissionService.getAccessibleTree();
|
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();
|
throw new PermissionDeniedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.EleLog;
|
||||||
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
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.mapper.EdFileInfoMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
|
||||||
|
|
@ -44,8 +45,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
||||||
@Resource
|
@Resource
|
||||||
private FileSystemService fileSystemService;
|
private FileSystemService fileSystemService;
|
||||||
|
|
||||||
@Value("${prj.folder.max.length}")
|
@Resource
|
||||||
private int prjFolderMaxLength;
|
private ElePropertyConfig elePropertyConfig;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private CommonService commonService;
|
private CommonService commonService;
|
||||||
|
|
@ -413,7 +414,7 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
||||||
Map<String, String> idMaps = new HashMap<>();
|
Map<String, String> idMaps = new HashMap<>();
|
||||||
idMaps.put(sourceId, targetId);
|
idMaps.put(sourceId, targetId);
|
||||||
List<String> sysFilePaths = new ArrayList<>();
|
List<String> sysFilePaths = new ArrayList<>();
|
||||||
for (int i = 1; i <= prjFolderMaxLength; ++i) {
|
for (int i = 1; i <= elePropertyConfig.getPrjFolderMaxLength(); ++i) {
|
||||||
int layerIndex = i;
|
int layerIndex = i;
|
||||||
List<EdFileInfo> currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).toList();
|
List<EdFileInfo> currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).toList();
|
||||||
if (layerIndex == 1) {
|
if (layerIndex == 1) {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,5 @@ public interface ElectromagneticConstants {
|
||||||
|
|
||||||
String FILE_SEC_PASSWD = "adknfhkj87654knd";
|
String FILE_SEC_PASSWD = "adknfhkj87654knd";
|
||||||
|
|
||||||
int PRJ_ID_LENGTH = 6;
|
|
||||||
|
|
||||||
String DELETE_FLAG = "deleted";
|
String DELETE_FLAG = "deleted";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue