From a40ea5109cb9d3bed685fcb49a387560bae11dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Fri, 18 Jun 2021 11:03:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=A7=88=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FiletransferController.java | 47 +++++++++++++++---- .../qiwenshare/file/dto/file/PreviewDTO.java | 6 +++ 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/qiwenshare/file/controller/FiletransferController.java b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java index 42f6359..ebfeeb6 100644 --- a/src/main/java/com/qiwenshare/file/controller/FiletransferController.java +++ b/src/main/java/com/qiwenshare/file/controller/FiletransferController.java @@ -11,13 +11,12 @@ import com.qiwenshare.file.api.IFiletransferService; import com.qiwenshare.file.api.IUserFileService; import com.qiwenshare.file.api.IUserService; import com.qiwenshare.file.component.FileDealComp; -import com.qiwenshare.file.domain.FileBean; -import com.qiwenshare.file.domain.StorageBean; -import com.qiwenshare.file.domain.UserBean; -import com.qiwenshare.file.domain.UserFile; +import com.qiwenshare.file.domain.*; import com.qiwenshare.file.dto.DownloadFileDTO; import com.qiwenshare.file.dto.UploadFileDTO; import com.qiwenshare.file.dto.file.PreviewDTO; +import com.qiwenshare.file.service.ShareFileService; +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; @@ -55,6 +54,10 @@ public class FiletransferController { FileDealComp fileDealComp; @Resource StorageService storageService; + @Resource + ShareService shareService; + @Resource + ShareFileService shareFileService; public static final String CURRENT_MODULE = "文件传输接口"; @Operation(summary = "极速上传", description = "校验文件MD5判断文件是否存在,如果存在直接上传成功并返回skipUpload=true,如果不存在返回skipUpload=false需要再次调用该接口的POST方法", tags = {"filetransfer"}) @@ -156,13 +159,39 @@ public class FiletransferController { @Operation(summary="预览文件", description="用于文件预览", tags = {"filetransfer"}) @GetMapping("/preview") public void preview(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, PreviewDTO previewDTO){ - - String token = previewDTO.getToken(); - UserBean sessionUserBean = userService.getUserBeanByToken(token); UserFile userFile = userFileService.getById(previewDTO.getUserFileId()); - if (userFile.getUserId() != sessionUserBean.getUserId()) { - return; + String token = previewDTO.getToken(); + if ("1".equals(previewDTO.getMode())) { + UserBean sessionUserBean = userService.getUserBeanByToken(token); + if (sessionUserBean == null) { + return; + } + if (userFile.getUserId() != sessionUserBean.getUserId()) { + return; + } + } else if ("2".equals(previewDTO.getMode())) { + Map param = new HashMap<>(); + param.put("shareBatchNum", previewDTO.getShareBatchNum()); + List shareList = shareService.listByMap(param); + //判断批次号 + if (shareList.size() <= 0) { + return; + } + Integer shareType = shareList.get(0).getShareType(); + if (1 == shareType) { + //判断提取码 + String extractionCode = shareList.get(0).getExtractionCode(); + if (!extractionCode.equals(previewDTO.getExtractionCode())) { + return; + } + } + param.put("userFileId", previewDTO.getUserFileId()); + List shareFileList = shareFileService.listByMap(param); + if (shareFileList.size() <= 0) { + return; + } } + FileBean fileBean = fileService.getById(userFile.getFileId()); String mime= MimeUtils.getMime(userFile.getExtendName()); httpServletResponse.setHeader("Content-Type", mime); diff --git a/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java b/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java index d7c9b6b..e659482 100644 --- a/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/file/PreviewDTO.java @@ -8,5 +8,11 @@ import lombok.Data; public class PreviewDTO { private Long userFileId; private String token; + @Schema(description="预览模式,1-登录,2-分享") + private String mode; + @Schema(description="批次号") + private String shareBatchNum; + @Schema(description="提取码") + private String extractionCode; private String isMin; }