From 7d0dd012ac0766a19efa134a6863f9b5f8e80afd Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 6 Jan 2025 14:24:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EdFileInfoController.java | 8 +-- .../service/serviceimpl/CommonService.java | 2 +- .../serviceimpl/EdFileInfoServiceImpl.java | 49 ++++++++++++------- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index c915d14..86fd401 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -37,7 +37,7 @@ public class EdFileInfoController { return edFileInfoService.delete(id); } - @RequestMapping("getFileInfoList") + @RequestMapping("info") public ElectromagneticResult info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO); } @@ -84,8 +84,8 @@ public class EdFileInfoController { } @RequestMapping("batchExport") - public ResponseEntity batchExport(@RequestParam String dataIdArr, HttpServletResponse response) throws IOException { - return edFileInfoService.batchExport(dataIdArr, response); + public ResponseEntity batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { + return edFileInfoService.batchExport(fileIds, response); } @RequestMapping(value = "/mergeChunks", method = RequestMethod.GET) @@ -110,7 +110,7 @@ public class EdFileInfoController { return edFileInfoService.uploadRecord(pageNum, pageSize); } - @RequestMapping(value = "/detail", method = RequestMethod.GET) + @RequestMapping(value = "/fileDetail", method = RequestMethod.GET) public ElectromagneticResult detail(@RequestParam String id) { return edFileInfoService.detail(id); } 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 39b7b25..be165aa 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 @@ -134,7 +134,7 @@ public class CommonService { } public String createFileCode(String parentId, String fileType, int version, String timeStr) { - return parentId + FILE_TYPE_ENUM.get(fileType) + version + timeStr; + return parentId + FILE_TYPE_ENUM.getOrDefault(fileType, "00") + version + timeStr; } public List selectAllAdminFolder(String id) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index 1b96393..b63dae8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -38,6 +38,7 @@ import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.PermissionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.core.env.Environment; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStreamResource; @@ -73,6 +74,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl map = edFileInfos.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); + if (map.size() == 1) { + if (!map.values().iterator().next().getId().equals(updateFileInfoDTO.getId())) { + throw new BizException(-1, "文件名已经存在"); + } + } else if (map.size() > 1) { + log.warn("数据库中存在了两份同名同后缀的文件"); + throw new BizException(-1, "文件名已经存在"); + } String srcFilePath = commonService.getFileSysPath(fileInfo.getFilePath()); Date now = new Date(); @@ -565,13 +576,14 @@ public class EdFileInfoServiceImpl extends ServiceImpl batchExport(String dataIdArr, HttpServletResponse response) throws IOException { String[] ids = dataIdArr.split(","); - List resFiles = new ArrayList<>(); + Map maps = new HashMap<>(); for (String id : ids) { - List edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + Map edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT) - .eq(EdFileInfo::getEffectFlag, true)); - resFiles.addAll(edFileInfos); + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)).stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); + maps.putAll(edFileInfos); } + List resFiles = new ArrayList<>(maps.values()); String prjId = resFiles.get(0).getFilePath().split(MYSQL_FILE_PATH_SPLIT)[0]; List prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT) @@ -736,8 +748,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl lambdaQuery = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId, EdFileInfo::getFileName, EdFileInfo::getSaveStatus, EdFileInfo::getCreatedTime, EdFileInfo::getFileType) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) - .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) - .likeRight(EdFileInfo::getFilePath, prjIds.get(0)); - for (int i = 1; i < pageSize; i++) { + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code); + for (int i = 0; i < prjIds.size(); i++) { lambdaQuery.or().likeRight(EdFileInfo::getFilePath, prjIds.get(i)); } Page edFileInfoPage = this.baseMapper.selectPage(new Page<>(pageNum, pageSize), lambdaQuery); @@ -916,10 +925,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl sameFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, targetFolderId) .eq(EdFileInfo::getFileName, srcFileInfo.getFileName()) - .eq(EdFileInfo::getFileType, srcFileInfo.getFileType())); + .eq(EdFileInfo::getFileType, srcFileInfo.getFileType()); + List sameFileInfos = this.baseMapper.selectList(queryWrapper); Integer maxFileVersion = Collections.max(sameFileInfos, Comparator.comparing(EdFileInfo::getFileVersion)).getFileVersion(); String newFileDbId = IdWorker.getSnowFlakeIdString(); String fileTime = EleCommonUtil.getNowTimeStr(); @@ -933,6 +943,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl