增加用户查询树的校验。
This commit is contained in:
parent
a44cac589f
commit
21ceaf4d81
|
|
@ -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.FileProjectVO;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO;
|
import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO;
|
||||||
import com.electromagnetic.industry.software.manage.service.FileSystemService;
|
import com.electromagnetic.industry.software.manage.service.FileSystemService;
|
||||||
|
import com.electromagnetic.industry.software.manage.service.PermissionService;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
@ -81,6 +83,8 @@ public class CommonService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FileSystemService fileSystemService;
|
private FileSystemService fileSystemService;
|
||||||
|
@Autowired
|
||||||
|
private PermissionService permissionService;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
|
|
@ -137,11 +141,20 @@ public class CommonService {
|
||||||
return parentId + FILE_TYPE_ENUM.getOrDefault(fileType, "00") + version + timeStr;
|
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)
|
return edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class)
|
||||||
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)
|
||||||
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code)
|
||||||
.eq(EdFileInfo::getPrjDir, true)
|
.eq(EdFileInfo::getPrjDir, true)
|
||||||
|
.in(EdFileInfo::getId, accessableIds)
|
||||||
.likeRight(EdFileInfo::getFilePath, id));
|
.likeRight(EdFileInfo::getFilePath, id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -226,7 +239,7 @@ public class CommonService {
|
||||||
List<String> projectVOS = new ArrayList<>();
|
List<String> projectVOS = new ArrayList<>();
|
||||||
|
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
List<EdFileInfo> edFileInfos = selectAllAdminFolder(id);
|
List<EdFileInfo> edFileInfos = selectAllAdminFolder(id, isAdminQuery);
|
||||||
if (!isAdminQuery) {
|
if (!isAdminQuery) {
|
||||||
edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList());
|
edFileInfos = edFileInfos.stream().filter(e -> e.getDataStatus().equals(EleDataStatusEnum.PUBLISHED.code)).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -322,8 +322,8 @@ public class EdPrjServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileInfo>
|
||||||
String currentUserId = UserThreadLocal.getUserId();
|
String currentUserId = UserThreadLocal.getUserId();
|
||||||
// 把source工程的层级结构copy到目标工程
|
// 把source工程的层级结构copy到目标工程
|
||||||
// 查找source的全部目录
|
// 查找source的全部目录
|
||||||
List<EdFileInfo> sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId);
|
List<EdFileInfo> sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId, true);
|
||||||
List<EdFileInfo> targetEdFileInfos = commonService.selectAllAdminFolder(targetId);
|
List<EdFileInfo> targetEdFileInfos = commonService.selectAllAdminFolder(targetId, true);
|
||||||
List<String> needSavePaths = new ArrayList<>();
|
List<String> needSavePaths = new ArrayList<>();
|
||||||
// 确定层级最大为prjFolderMaxLength层,现在逐层来处理。
|
// 确定层级最大为prjFolderMaxLength层,现在逐层来处理。
|
||||||
for (int i = 1; i <= prjFolderMaxLength; ++i) {
|
for (int i = 1; i <= prjFolderMaxLength; ++i) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue