From 0fd28045171680b4b9bb1223ca245a03f48f1f36 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 28 Mar 2025 09:42:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/pojo/resp/FileRecycleQueryVO.java | 4 +++ .../service/serviceimpl/CommonService.java | 28 +++++++++++++++++ .../serviceimpl/FileRecycleServiceImpl.java | 31 ++++++++++++------- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileRecycleQueryVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileRecycleQueryVO.java index 17ada5f..5d877b7 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileRecycleQueryVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/FileRecycleQueryVO.java @@ -34,4 +34,8 @@ public class FileRecycleQueryVO { private String dataOwner; private int dataOwnCode; + + private String filePath; + + private String filePrjPath; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index 8bdb92b..793aef7 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -553,4 +553,32 @@ public class CommonService { return ""; } + public Map getFilesPath(List paths) { + Map res = new HashMap<>(); + if (CollUtil.isEmpty(paths)) { + return res; + } + Set ids = new HashSet<>(); + for (String path : paths) { + String[] strs = path.split(MYSQL_FILE_PATH_SPLIT); + ids.addAll(Arrays.asList(strs)); + } + Map idNameMap = edFileInfoMapper.selectList(Wrappers.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; + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 5da767f..144dc0f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -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 edFileInfoPage = this.edFileInfoMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper); long total = edFileInfoPage.getTotal(); List records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileRecycleQueryVO.class); - records.forEach(e -> e.setDataOwner(DataOwnEnum.getTypeByCode(e.getDataOwnCode()))); - resetRes(records); + + List filePaths = records.stream().map(FileRecycleQueryVO::getFilePath).collect(Collectors.toList()); + Map filesPath = commonService.getFilesPath(filePaths); + Map 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 records) { + private Map getUserIdNameMap(List userIds) { + Map res = new HashMap<>(); - if (CollUtil.isEmpty(records)) { - return; + if (CollUtil.isEmpty(userIds)) { + return res; } - List userIds = records.stream().map(FileRecycleQueryVO::getUpdatedBy).collect(Collectors.toList()); - Map idNameMap = userMapper.selectList(Wrappers.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.lambdaQuery() + .select(User::getUserId, User::getUserName) + .in(User::getUserId, userIds)) + .stream().collect(Collectors.toMap(User::getUserId, User::getUserName)); } + }