diff --git a/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java b/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java index 6dbaad3..d5d6321 100644 --- a/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/api/IUserFileService.java @@ -22,6 +22,6 @@ public interface IUserFileService extends IService { List selectFileListLikeRightFilePath(String filePath, long userId); List selectFilePathTreeByUserId(Long userId); void deleteUserFile(Long userFileId, Long sessionUserId); - UserFile repeatUserFileDeal(UserFile userFile); + String getRepeatFileName(UserFile userFile, String savefilePath); } diff --git a/file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java b/file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java index 9200f36..2d2d71e 100644 --- a/file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java +++ b/file-web/src/main/java/com/qiwenshare/file/controller/ShareController.java @@ -116,6 +116,9 @@ public class ShareController { List saveUserFileList = new ArrayList<>(); for (ShareFile shareFile : fileList) { UserFile userFile = userFileService.getById(shareFile.getUserFileId()); + String fileName = userFile.getFileName(); + String savefileName = userFileService.getRepeatFileName(userFile, savefilePath); + if (userFile.getIsDir() == 1) { List userfileList = userFileService.selectFileListLikeRightFilePath(userFile.getFilePath() + userFile.getFileName(), userFile.getUserId()); log.info("查询文件列表:" + JSON.toJSONString(userfileList)); @@ -123,8 +126,7 @@ public class ShareController { userfileList.forEach(p->{ p.setUserFileId(null); p.setUserId(userId); - p.setFilePath(p.getFilePath().replaceFirst(filePath, savefilePath)); - p = userFileService.repeatUserFileDeal(p); + p.setFilePath(p.getFilePath().replaceFirst(filePath + fileName, savefilePath + savefileName)); saveUserFileList.add(p); log.info("当前文件:" + JSON.toJSONString(p)); if (p.getIsDir() == 0) { @@ -134,12 +136,12 @@ public class ShareController { } else { fileService.increaseFilePointCount(userFile.getFileId()); } - userFile.setUserFileId(null); userFile.setUserId(userId); userFile.setFilePath(savefilePath); - userFile = userFileService.repeatUserFileDeal(userFile); + userFile.setFileName(savefileName); saveUserFileList.add(userFile); + } log.info("----------" + JSON.toJSONString(saveUserFileList)); userFileService.saveBatch(saveUserFileList); diff --git a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java index b6c5cb8..96ad83b 100644 --- a/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java +++ b/file-web/src/main/java/com/qiwenshare/file/service/UserFileService.java @@ -217,38 +217,42 @@ public class UserFileService extends ServiceImpl impl } @Override - public UserFile repeatUserFileDeal(UserFile userFile) { + public String getRepeatFileName(UserFile userFile, String savefilePath) { String fileName = userFile.getFileName(); - String filePath = userFile.getFilePath(); String extendName = userFile.getExtendName(); Integer deleteFlag = userFile.getDeleteFlag(); Long userId = userFile.getUserId(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserFile::getFilePath, filePath) - .eq(UserFile::getExtendName, extendName) + lambdaQueryWrapper.eq(UserFile::getFilePath, savefilePath) .eq(UserFile::getDeleteFlag, deleteFlag) .eq(UserFile::getUserId, userId) .eq(UserFile::getFileName, fileName); + if (userFile.getIsDir() == 0) { + lambdaQueryWrapper.eq(UserFile::getExtendName, extendName); + } List list = userFileMapper.selectList(lambdaQueryWrapper); if (list == null) { - return userFile; + return fileName; } if (list.isEmpty()) { - return userFile; + return fileName; } int i = 0; while (list != null && !list.isEmpty()) { i++; - lambdaQueryWrapper.eq(UserFile::getFilePath, filePath) - .eq(UserFile::getExtendName, extendName) + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); + lambdaQueryWrapper1.eq(UserFile::getFilePath, savefilePath) .eq(UserFile::getDeleteFlag, deleteFlag) .eq(UserFile::getUserId, userId) .eq(UserFile::getFileName, fileName + "(" + i + ")"); - list = userFileMapper.selectList(lambdaQueryWrapper); + if (userFile.getIsDir() == 0) { + lambdaQueryWrapper1.eq(UserFile::getExtendName, extendName); + } + list = userFileMapper.selectList(lambdaQueryWrapper1); } - userFile.setFileName(fileName + "(" + i + ")"); - return userFile; + + return fileName + "(" + i + ")"; }