瀏覽代碼

fix: 文件上传接口开发

chenjianhua 4 月之前
父節點
當前提交
0cf8709af0

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/FileManageDO.java

@@ -21,7 +21,7 @@ public class FileManageDO {
     /**
      * 文件ID
      */
-    private Integer fileId;
+    private Long fileId;
     /**
      *  文件名称
      */

+ 1 - 1
service-base/src/main/java/com/simuwang/base/pojo/vo/FileManageVO.java

@@ -19,7 +19,7 @@ public class FileManageVO {
     /**
      * 文件ID
      */
-    private Integer fileId;
+    private Long fileId;
     /**
      *  文件名称
      */

+ 1 - 1
service-deploy/src/main/resources/application.yml

@@ -61,7 +61,7 @@ email-rule:
 
 email:
   file:
-    path: /home/wwwroot/shzq_dataapi/file/nav
+    path: /home/wwwroot/shzq_dataapi/file/nav/
   parse:
     force-template-enable: false
 

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/file/FileManageController.java

@@ -62,7 +62,7 @@ public class FileManageController {
                                        @RequestParam("fundId") String fundId,
                                        @RequestParam("fundName") String fundName,
                                        @RequestParam("registerNumber") String registerNumber,
-                                       @RequestParam("fileType") String fileType,
+                                       @RequestParam("fileType") Integer fileType,
                                        @RequestParam("fileDate") String fileDate) {
         ResultVo vo = fileMangeService.uploadFile(file,fundId,fundName,registerNumber, fileType,fileDate);
         return vo;

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/FileMangeService.java

@@ -16,7 +16,7 @@ import org.springframework.web.multipart.MultipartFile;
 public interface FileMangeService {
     MybatisPage<FileManageVO> searchFileManage(FileManagePageQuery fileManagePageQuery);
 
-    ResultVo uploadFile(MultipartFile file, String fundId, String fundName, String registerNumber, String fileType, String fileDate);
+    ResultVo uploadFile(MultipartFile file, String fundId, String fundName, String registerNumber, Integer fileType, String fileDate);
 
     FileManageVO getFileByFileId(Integer fileId);
 

+ 47 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/FileMangeServiceImpl.java

@@ -1,6 +1,8 @@
 package com.simuwang.manage.service.impl;
 
+import com.simuwang.base.common.conts.FileSourceType;
 import com.simuwang.base.common.support.MybatisPage;
+import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.mapper.daq.FileManageMapper;
 import com.simuwang.base.pojo.dos.FileManageDO;
 import com.simuwang.base.pojo.dto.query.FileManagePageQuery;
@@ -9,10 +11,17 @@ import com.simuwang.base.pojo.vo.SourceTypeVO;
 import com.simuwang.manage.service.FileMangeService;
 import com.simuwang.shiro.utils.UserUtils;
 import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.status.ResultCode;
+import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -28,6 +37,8 @@ public class FileMangeServiceImpl implements FileMangeService {
     @Autowired
     private FileManageMapper fileManageMapper;
 
+    @Value("${email.file.path}")
+    private String path;
     @Override
     public MybatisPage<FileManageVO> searchFileManage(FileManagePageQuery fileManagePageQuery) {
         List<FileManageDO> fileManageDOList = fileManageMapper.searchFileManage(fileManagePageQuery);
@@ -37,8 +48,42 @@ public class FileMangeServiceImpl implements FileMangeService {
     }
 
     @Override
-    public ResultVo uploadFile(MultipartFile file, String fundId, String fundName, String registerNumber, String fileType, String fileDate) {
-        return null;
+    public ResultVo uploadFile(MultipartFile file, String fundId, String fundName, String registerNumber, Integer fileType, String fileDate) {
+        ResultVo vo = new ResultVo(true);
+        try{
+            Integer userId = UserUtils.getLoginUser().getUserId();
+            long fileId = System.currentTimeMillis();
+            String fileName = file.getName();
+            //路徑为固定存储目录加用户ID加时间戳
+            String filePath = (path.endsWith("/")?path:path+"/")+ userId + File.pathSeparator +fileId+File.pathSeparator;
+            File dir = new File(filePath);
+            if(!dir.exists()){
+                dir.mkdirs();
+            }
+            File dataFile = new File(filePath+fileName);
+            FileUtils.copyToFile(file.getInputStream(),dataFile);
+            FileManageDO fileManageDO = new FileManageDO();
+            fileManageDO.setFileName(fileName);
+            fileManageDO.setFundName(fundName);
+            fileManageDO.setFundId(fundId);
+            fileManageDO.setRegisterNumber(registerNumber);
+            fileManageDO.setFileType(fileType);
+            fileManageDO.setFileDate(DateUtils.parse(fileDate,DateUtils.YYYY_MM_DD));
+            fileManageDO.setSourceType(FileSourceType.CUSTOM_SOURCE);
+            fileManageDO.setFilePath(filePath+fileName);
+            //这里使用时间戳加用户ID作为自定义上传文件的ID
+            fileManageDO.setFileId(fileId+userId);
+            fileManageDO.setIsvalid(1);
+            fileManageDO.setCreateTime(DateUtils.getNowDate());
+            fileManageDO.setUpdateTime(DateUtils.getNowDate());
+            fileManageDO.setCreatorId(userId);
+            fileManageDO.setUpdaterId(userId);
+            fileManageMapper.saveFileManage(fileManageDO);
+        }catch (Exception e){
+            vo.setData(false);
+            vo.setCode(ResultCode.SAVE_FAILED.getCode());
+        }
+        return vo;
     }
 
     @Override