diff --git a/src/main/java/com/qiwenshare/file/component/FileDealComp.java b/src/main/java/com/qiwenshare/file/component/FileDealComp.java index b07df9d..e97d929 100644 --- a/src/main/java/com/qiwenshare/file/component/FileDealComp.java +++ b/src/main/java/com/qiwenshare/file/component/FileDealComp.java @@ -124,6 +124,7 @@ public class FileDealComp { lambdaQueryWrapper.eq(UserFile::getFilePath, parentFilePath + FileConstant.pathSeparator) .eq(UserFile::getFileName, fileName) .eq(UserFile::getDeleteFlag, 0) + .eq(UserFile::getIsDir, 1) .eq(UserFile::getUserId, sessionUserId); List userFileList = userFileMapper.selectList(lambdaQueryWrapper); if (userFileList.size() == 0) { diff --git a/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java index 321da33..587552c 100644 --- a/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/file/UnzipFileDTO.java @@ -9,7 +9,7 @@ public class UnzipFileDTO { @Schema(description = "文件url", required = true) private long userFileId; - @Schema(description = "解压模式 0-解压到当前文件夹, 1-自动创建该文件名目录,并解压到目录里, 3-手动选择解压目录", required = true) + @Schema(description = "解压模式 0-解压到当前文件夹, 1-自动创建该文件名目录,并解压到目录里, 2-手动选择解压目录", required = true) private int unzipMode; @Schema(description = "解压目的文件目录,仅当 unzipMode 为 2 时必传") diff --git a/src/main/java/com/qiwenshare/file/service/FileService.java b/src/main/java/com/qiwenshare/file/service/FileService.java index 44df03f..2e63dac 100644 --- a/src/main/java/com/qiwenshare/file/service/FileService.java +++ b/src/main/java/com/qiwenshare/file/service/FileService.java @@ -10,6 +10,7 @@ import com.qiwenshare.file.domain.FileBean; import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.mapper.FileMapper; import com.qiwenshare.file.mapper.UserFileMapper; +import com.qiwenshare.file.util.QiwenFileUtil; import com.qiwenshare.ufop.factory.UFOPFactory; import com.qiwenshare.ufop.operation.copy.domain.CopyFile; import com.qiwenshare.ufop.operation.download.Downloader; @@ -110,6 +111,11 @@ public class FileService extends ServiceImpl implements IF if (destFile.exists()) { destFile.delete(); } + + if (!fileEntryNameList.isEmpty()) { + UserFile qiwenDir = QiwenFileUtil.getQiwenDir(userFile.getUserId(), userFile.getFilePath(), userFile.getFileName()); + userFileMapper.insert(qiwenDir); + } for (int i = 0; i < fileEntryNameList.size(); i++){ String entryName = fileEntryNameList.get(i); log.info("文件名:"+ entryName); @@ -196,10 +202,12 @@ public class FileService extends ServiceImpl implements IF saveUserFile.setDeleteFlag(0); if (unzipMode == 1) { - String destFilePath = "/" + userFile.getFilePath() + saveUserFile.getFilePath(); - saveUserFile.setFilePath(destFilePath); +// String destFilePath = "/" + userFile.getFilePath() + saveUserFile.getFilePath(); +// saveUserFile.setFilePath(destFilePath); + + saveUserFile.setFilePath(UFOPUtils.pathSplitFormat(userFile.getFilePath() + userFile.getFileName() + "/" + entryName.replace(currentFile.getName(), "")).replace("\\", "/")); } else if(unzipMode == 2) { - saveUserFile.setFilePath(filePath); + saveUserFile.setFilePath(UFOPUtils.pathSplitFormat(filePath + entryName.replace(currentFile.getName(), "")).replace("\\", "/")); } String fileName = fileDealComp.getRepeatFileName(saveUserFile, saveUserFile.getFilePath()); diff --git a/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java b/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java new file mode 100644 index 0000000..6a14d75 --- /dev/null +++ b/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java @@ -0,0 +1,21 @@ +package com.qiwenshare.file.util; + +import com.qiwenshare.common.util.DateUtil; +import com.qiwenshare.file.domain.UserFile; + +public class QiwenFileUtil { + + public static UserFile getQiwenDir(long userId, String filePath, String fileName) { + UserFile userFile = new UserFile(); + userFile.setUserId(userId); + userFile.setFileId(null); + userFile.setFileName(fileName); + userFile.setFilePath(filePath); + userFile.setExtendName(null); + userFile.setIsDir(1); + userFile.setUploadTime(DateUtil.getCurrentTime()); + userFile.setDeleteFlag(0); + userFile.setDeleteBatchNum(null); + return userFile; + } +}