增加用户查询树的校验。

This commit is contained in:
chenxudong 2025-01-10 17:14:20 +08:00
parent a44cac589f
commit 21ceaf4d81
2 changed files with 17 additions and 4 deletions

View File

@ -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<EdFileInfo> selectAllAdminFolder(String id) {
public List<EdFileInfo> 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<String> 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<String> projectVOS = new ArrayList<>();
for (String id : ids) {
List<EdFileInfo> edFileInfos = selectAllAdminFolder(id);
List<EdFileInfo> edFileInfos = selectAllAdminFolder(id, isAdminQuery);
if (!isAdminQuery) {
edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList());
} else {

View File

@ -322,8 +322,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
String currentUserId = UserThreadLocal.getUserId();
// 把source工程的层级结构copy到目标工程
// 查找source的全部目录
List<EdFileInfo> sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId);
List<EdFileInfo> targetEdFileInfos = commonService.selectAllAdminFolder(targetId);
List<EdFileInfo> sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId, true);
List<EdFileInfo> targetEdFileInfos = commonService.selectAllAdminFolder(targetId, true);
List<String> needSavePaths = new ArrayList<>();
// 确定层级最大为prjFolderMaxLength层现在逐层来处理
for (int i = 1; i <= prjFolderMaxLength; ++i) {