优化代码

This commit is contained in:
chenxudong 2025-03-28 09:42:11 +08:00
parent 567f6e53e8
commit 0fd2804517
3 changed files with 52 additions and 11 deletions

View File

@ -34,4 +34,8 @@ public class FileRecycleQueryVO {
private String dataOwner;
private int dataOwnCode;
private String filePath;
private String filePrjPath;
}

View File

@ -553,4 +553,32 @@ public class CommonService {
return "";
}
public Map<String, String> getFilesPath(List<String> paths) {
Map<String, String> res = new HashMap<>();
if (CollUtil.isEmpty(paths)) {
return res;
}
Set<String> ids = new HashSet<>();
for (String path : paths) {
String[] strs = path.split(MYSQL_FILE_PATH_SPLIT);
ids.addAll(Arrays.asList(strs));
}
Map<String, String> idNameMap = edFileInfoMapper.selectList(Wrappers.<EdFileInfo>lambdaQuery()
.select(EdFileInfo::getFileName, EdFileInfo::getId)
.in(EdFileInfo::getId, ids))
.stream()
.collect(Collectors.toMap(EdFileInfo::getId, EdFileInfo::getFileName));
for (String path : paths) {
String[] strs = path.split(MYSQL_FILE_PATH_SPLIT);
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < strs.length - 1; i++) {
String id = strs[i];
String name = idNameMap.get(id);
stringBuilder.append("/").append(name);
}
res.put(path, stringBuilder.substring(1));
}
return res;
}
}

View File

@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -112,8 +113,16 @@ public class FileRecycleServiceImpl implements FileRecycleService {
Page<EdFileInfo> edFileInfoPage = this.edFileInfoMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper);
long total = edFileInfoPage.getTotal();
List<FileRecycleQueryVO> records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileRecycleQueryVO.class);
records.forEach(e -> e.setDataOwner(DataOwnEnum.getTypeByCode(e.getDataOwnCode())));
resetRes(records);
List<String> filePaths = records.stream().map(FileRecycleQueryVO::getFilePath).collect(Collectors.toList());
Map<String, String> filesPath = commonService.getFilesPath(filePaths);
Map<String, String> userIdNameMap = getUserIdNameMap(records.stream().map(FileRecycleQueryVO::getUpdatedBy).collect(Collectors.toList()));
records.forEach(e -> {
e.setDataOwner(DataOwnEnum.getTypeByCode(e.getDataOwnCode()));
e.setFilePrjPath(filesPath.get(e.getFilePath()));
e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize()));
e.setUserName(userIdNameMap.get(e.getUpdatedBy()));
});
UserThreadLocal.setSuccessInfo("", "", "查询所有删除文件成功");
return ElectromagneticResultUtil.success(new RespPageVO<>(total, records));
}
@ -177,17 +186,17 @@ public class FileRecycleServiceImpl implements FileRecycleService {
return ElectromagneticResultUtil.success("还原文件成功");
}
private void resetRes(List<FileRecycleQueryVO> records) {
private Map<String, String> getUserIdNameMap(List<String> userIds) {
Map<String, String> res = new HashMap<>();
if (CollUtil.isEmpty(records)) {
return;
if (CollUtil.isEmpty(userIds)) {
return res;
}
List<String> userIds = records.stream().map(FileRecycleQueryVO::getUpdatedBy).collect(Collectors.toList());
Map<String, String> idNameMap = userMapper.selectList(Wrappers.<User>lambdaQuery().in(User::getId, userIds)).stream().collect(Collectors.toMap(User::getUserId, User::getUserName));
records.forEach(e -> {
e.setFileSizeShow(EleCommonUtil.convertFileSize(e.getFileSize()));
e.setUserName(idNameMap.get(e.getUpdatedBy()));
});
return userMapper.selectList(Wrappers.<User>lambdaQuery()
.select(User::getUserId, User::getUserName)
.in(User::getUserId, userIds))
.stream().collect(Collectors.toMap(User::getUserId, User::getUserName));
}
}