Переглянути джерело

新增根据文件ID获取Mongo文件

wukai 2 роки тому
батько
коміт
9d641dcb1f

+ 11 - 0
doc-biz/src/main/java/com/doc/biz/service/IMongoService.java

@@ -1,10 +1,12 @@
 package com.doc.biz.service;
 
+import com.doc.biz.domain.DocumentFile;
 import com.doc.biz.vo.DocumentVO;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.Optional;
 
 /**
  * Mongo存储Service接口
@@ -61,4 +63,13 @@ public interface IMongoService {
      * @return 结果
      */
     DocumentVO copy(String fileId);
+
+
+    /**
+     * 根据文件ID获取文档内容
+     *
+     * @param fileId 文件ID
+     * @return documentFile
+     */
+    public Optional<DocumentFile> findByFileId(String fileId);
 }

+ 31 - 28
doc-biz/src/main/java/com/doc/biz/service/impl/MongoServiceImpl.java

@@ -54,8 +54,8 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 多文件上传
      *
-     * @param files
-     * @return
+     * @param files 文件列表
+     * @return list
      */
     @Override
     public List<DocumentVO> uploadFiles(List<MultipartFile> files) {
@@ -72,9 +72,8 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 文件上传
      *
-     * @param file
-     * @return
-     * @throws Exception
+     * @param file 文件
+     * @return file
      */
     @Override
     public DocumentVO uploadFile(MultipartFile file) throws Exception {
@@ -88,12 +87,12 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 文件下载
      *
-     * @param fileId
-     * @return
+     * @param fileId 文件ID
+     * @return 文档
      */
     @Override
     public DocumentVO downloadFile(String fileId) {
-        Optional<DocumentFile> option = this.getBinaryFileById(fileId);
+        Optional<DocumentFile> option = this.findByFileId(fileId);
 
         if (option.isPresent()) {
             DocumentFile documentFile = option.get();
@@ -132,11 +131,11 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 文件删除
      *
-     * @param fileId
+     * @param fileId 文件ID
      */
     @Override
     public void removeFile(String fileId) {
-        Optional<DocumentFile> option = this.getBinaryFileById(fileId);
+        Optional<DocumentFile> option = this.findByFileId(fileId);
         if (option.isPresent()) {
             if (Objects.nonNull(option.get().getGridFsId())) {
                 this.removeGridFsFile(fileId);
@@ -149,7 +148,7 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 删除Binary文件
      *
-     * @param fileId
+     * @param fileId 文件ID
      */
     public void removeBinaryFile(String fileId) {
         mongoFileRepository.deleteById(fileId);
@@ -206,9 +205,8 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 保存GridFs文件(大文件)
      *
-     * @param file
-     * @return
-     * @throws Exception
+     * @param file 文件
+     * @return vo
      */
     public DocumentVO saveGridFsFile(MultipartFile file) throws Exception {
         String suffix = FileUtils.getFileSuffix(file);
@@ -236,9 +234,9 @@ public class MongoServiceImpl implements IMongoService {
     /**
      * 上传文件到Mongodb的GridFs中
      *
-     * @param in
-     * @param contentType
-     * @return
+     * @param in          文件输入流
+     * @param contentType type
+     * @return id
      */
     public String storeFileToGridFS(InputStream in, String filename, String contentType) {
         // 将文件存储进GridFS中
@@ -247,13 +245,14 @@ public class MongoServiceImpl implements IMongoService {
     }
 
     /**
-     * 获取Binary文件
+     * 根据文件ID获取文档内容
      *
-     * @param id
-     * @return
+     * @param fileId 文件ID
+     * @return documentFile
      */
-    public Optional<DocumentFile> getBinaryFileById(String id) {
-        return mongoFileRepository.findById(id);
+    @Override
+    public Optional<DocumentFile> findByFileId(String fileId) {
+        return mongoFileRepository.findById(fileId);
     }
 
     /**
@@ -265,17 +264,21 @@ public class MongoServiceImpl implements IMongoService {
     @Override
     public DocumentVO copy(String id) {
         Optional<DocumentFile> optional = mongoFileRepository.findById(id);
-        DocumentFile file = optional.get();
-        file.setId(null);
-        mongoFileRepository.save(file);
-        return new DocumentVO(file);
+        if (optional.isPresent()) {
+            DocumentFile file = optional.get();
+            file.setId(null);
+            mongoFileRepository.save(file);
+            return new DocumentVO(file);
+        } else {
+            return null;
+        }
     }
 
     /**
      * 获取Grid文件
      *
-     * @param id
-     * @return
+     * @param id 文件ID
+     * @return 文档
      */
     public Optional<DocumentFile> getGridFsFileById(String id) {
         DocumentFile documentFile = mongoTemplate.findById(id, DocumentFile.class);