修改发现的问题

This commit is contained in:
chenxudong 2025-01-13 10:25:22 +08:00
parent 1bdbd42926
commit 840752485b
2 changed files with 47 additions and 5 deletions

View File

@ -361,4 +361,35 @@ public class CommonService {
String prjId = paths.get(0); String prjId = paths.get(0);
return edFileInfoMapper.selectById(prjId).getFileName(); return edFileInfoMapper.selectById(prjId).getFileName();
} }
public Set<String> selectPrjLeafs() {
List<String> prjInfo = queryAllPrjInfo(true, null);
Set<String> res = new HashSet<>();
prjInfo.forEach(e -> {
ProjectVO projectVO = JSONUtil.toList(e, ProjectVO.class).get(0);
Set<String> leafIds = getLeafNodes(projectVO).stream().map(ProjectVO::getId).collect(Collectors.toSet());
res.addAll(leafIds);
});
return res;
}
private static List<ProjectVO> getLeafNodes(ProjectVO root) {
List<ProjectVO> leafNodes = new ArrayList<>();
if (root == null) {
return leafNodes;
}
findLeafNodes(root, leafNodes);
return leafNodes;
}
private static void findLeafNodes(ProjectVO node, List<ProjectVO> leafNodes) {
if (node.getChildren().isEmpty()) {
leafNodes.add(node);
} else {
for (ProjectVO child : node.getChildren()) {
findLeafNodes(child, leafNodes);
}
}
}
} }

View File

@ -931,15 +931,26 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
@Override @Override
public ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize) { public ElectromagneticResult<?> uploadRecord(int pageNum, int pageSize) {
List<String> prjIds = permissionService.getAccessibleTree(); //TODO 从权限处获取该用户有哪些工程的权限这里先写静态方便调试 List<String> accessibleIds = permissionService.getAccessibleTree();
Set<String> allLeafIds = commonService.selectPrjLeafs();
List<String> list = new ArrayList<>();
for (String leafId : allLeafIds) {
if (accessibleIds.contains(leafId)) {
list.add(leafId);
}
}
if (CollUtil.isEmpty(list)) {
return ElectromagneticResultUtil.success(new UploadRecordVO(0, new ArrayList<>()));
}
LambdaQueryWrapper<EdFileInfo> lambdaQuery = Wrappers.lambdaQuery(EdFileInfo.class) LambdaQueryWrapper<EdFileInfo> lambdaQuery = Wrappers.lambdaQuery(EdFileInfo.class)
.select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime, EdFileInfo::getFileType) .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime, EdFileInfo::getFileType)
.eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code)
.eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code); .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code);
for (int i = 0; i < prjIds.size(); i++) { lambdaQuery.or(qr -> {
String prjId = prjIds.get(i); for (String id : list) {
lambdaQuery.or(qr -> qr.likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT)); qr.likeRight(EdFileInfo::getFileCode, id);
} }
});
Page<EdFileInfo> edFileInfoPage = this.baseMapper.selectPage(new Page<>(pageNum, pageSize), lambdaQuery); Page<EdFileInfo> edFileInfoPage = this.baseMapper.selectPage(new Page<>(pageNum, pageSize), lambdaQuery);
long total = edFileInfoPage.getTotal(); long total = edFileInfoPage.getTotal();
List<UploadRecordDTO> uploadRecordDTOS = BeanUtil.copyToList(edFileInfoPage.getRecords(), UploadRecordDTO.class); List<UploadRecordDTO> uploadRecordDTOS = BeanUtil.copyToList(edFileInfoPage.getRecords(), UploadRecordDTO.class);