From a61f18fbc58b7a15d760585db36b452c64d70d70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Sun, 11 Jul 2021 19:42:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6=E5=A4=B9?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qiwenshare/file/component/FileDealComp.java | 4 +++- .../file/controller/FiletransferController.java | 10 +++++++++- .../java/com/qiwenshare/file/dto/UploadFileDTO.java | 2 ++ .../qiwenshare/file/service/FiletransferService.java | 10 +++++++++- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/qiwenshare/file/component/FileDealComp.java b/src/main/java/com/qiwenshare/file/component/FileDealComp.java index 857774b..fbe6f2a 100644 --- a/src/main/java/com/qiwenshare/file/component/FileDealComp.java +++ b/src/main/java/com/qiwenshare/file/component/FileDealComp.java @@ -99,7 +99,9 @@ public class FileDealComp { /** * 还原父文件路径 * - * 回收站文件还原操作会将文件恢复到原来的路径下,当还原文件的时候,如果父目录已经不存在了,则需要把父母录给还原 + * 1、回收站文件还原操作会将文件恢复到原来的路径下,当还原文件的时候,如果父目录已经不存在了,则需要把父母录给还原 + * 2、上传目录 + * * @param filePath * @param sessionUserId */ diff --git a/src/main/java/com/qiwenshare/file/controller/FiletransferController.java b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java index 9dde32a..a1c94ee 100644 --- a/src/main/java/com/qiwenshare/file/controller/FiletransferController.java +++ b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java @@ -20,6 +20,7 @@ import com.qiwenshare.file.service.ShareService; import com.qiwenshare.file.service.StorageService; import com.qiwenshare.file.vo.file.FileListVo; import com.qiwenshare.file.vo.file.UploadFileVo; +import com.qiwenshare.ufo.util.PathUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; @@ -84,7 +85,14 @@ public class FiletransferController { UserFile userFile = new UserFile(); userFile.setUserId(sessionUserBean.getUserId()); - userFile.setFilePath(uploadFileDto.getFilePath()); + String relativePath = uploadFileDto.getRelativePath(); + if (StringUtils.isNotEmpty(relativePath)) { + userFile.setFilePath(uploadFileDto.getFilePath() + PathUtil.getParentPath(relativePath) + "/"); + fileDealComp.restoreParentFilePath(uploadFileDto.getFilePath() + PathUtil.getParentPath(relativePath) + "/", sessionUserBean.getUserId()); + } else { + userFile.setFilePath(uploadFileDto.getFilePath()); + } + String fileName = uploadFileDto.getFilename(); userFile.setFileName(FileUtil.getFileNameNotExtend(fileName)); userFile.setExtendName(FileUtil.getFileExtendName(fileName)); diff --git a/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java b/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java index b559af5..c7f4025 100644 --- a/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/UploadFileDTO.java @@ -24,6 +24,8 @@ public class UploadFileDTO { @Schema(description = "切片大小") private long chunkSize; + @Schema(description = "相对路径") + private String relativePath; @Schema(description = "所有切片") private int totalChunks; diff --git a/src/main/java/com/qiwenshare/file/service/FiletransferService.java b/src/main/java/com/qiwenshare/file/service/FiletransferService.java index 96c757c..9622435 100644 --- a/src/main/java/com/qiwenshare/file/service/FiletransferService.java +++ b/src/main/java/com/qiwenshare/file/service/FiletransferService.java @@ -15,6 +15,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.qiwenshare.common.constant.FileConstant; import com.qiwenshare.common.operation.FileOperation; import com.qiwenshare.common.util.DateUtil; @@ -46,6 +47,7 @@ import com.qiwenshare.ufo.operation.upload.Uploader; import com.qiwenshare.ufo.operation.upload.domain.UploadFile; import com.qiwenshare.ufo.util.PathUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -98,7 +100,13 @@ public class FiletransferService implements IFiletransferService { fileBean.setPointCount(1); fileMapper.insert(fileBean); UserFile userFile = new UserFile(); - userFile.setFilePath(uploadFileDto.getFilePath()); + String relativePath = uploadFileDto.getRelativePath(); + if (StringUtils.isNotEmpty(relativePath)) { + userFile.setFilePath(uploadFileDto.getFilePath() + PathUtil.getParentPath(relativePath) + "/"); + fileDealComp.restoreParentFilePath(uploadFileDto.getFilePath() + PathUtil.getParentPath(relativePath) + "/", userId); + } else { + userFile.setFilePath(uploadFileDto.getFilePath()); + } userFile.setUserId(userId); userFile.setFileName(uploadFile.getFileName()); userFile.setExtendName(uploadFile.getFileType());