增加用户查询树的校验。
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.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 {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue