Browse Source

通用文件上传接口代码更新

fangtasyj 6 months ago
parent
commit
a56ae1babd

+ 55 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/common/controller/BaseController.java

@@ -1,14 +1,27 @@
 package com.ruoyi.zzb.common.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.zzb.common.bean.RspResult;
+import com.ruoyi.zzb.common.domain.BaseFileInfo;
 import com.ruoyi.zzb.common.service.BaseService;
+import com.ruoyi.zzb.common.utils.SnowflakeIdGenerator;
+import com.ruoyi.zzb.dbjz.domain.DbjzFileSetDTO;
+import com.ruoyi.zzb.dbjz.service.DbjzService;
+import com.ruoyi.zzb.hybz.domain.HybzFileSetDTO;
+import com.ruoyi.zzb.hybz.service.HybzService;
+import com.ruoyi.zzb.zyww.domain.ZywwFileSetDTO;
+import com.ruoyi.zzb.zyww.service.ZywwService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 @RestController
@@ -23,6 +36,12 @@ public class BaseController {
     private String dbjzTemplateFilePath;
     @Value("${module.hybz.templateFilePath}")
     private String hybzTemplateFilePath;
+    @Autowired
+    private ZywwService zywwService;
+    @Autowired
+    private DbjzService dbjzService;
+    @Autowired
+    private HybzService hybzService;
 
     /**
      * 向目标邮箱地址发送一条带附件的邮件
@@ -69,4 +88,40 @@ public class BaseController {
         }
     }
 
+
+    @PostMapping("/upload")
+    public JSONObject upload(ZywwFileSetDTO zywwFileSetDTO, DbjzFileSetDTO dbjzFileSetDTO, HybzFileSetDTO hybzFileSetDTO,
+                             @RequestParam("moduleCode") String moduleCode, @RequestParam("applyFormId") String applyFormId){
+        if(StringUtils.isBlank(moduleCode) || StringUtils.isBlank(applyFormId)){
+            log.error("文件上传参数为空");
+            return RspResult.error("文件上传参数为空");
+        }
+        try {
+            // 文件上传路径
+            String fileStoragePath = RuoYiConfig.getUploadPath();
+            SysUser user = SecurityUtils.getLoginUser().getUser();
+            if(null != user){
+                List<BaseFileInfo> baseFileInfoList = new ArrayList<>();
+                if("zyww".equals(moduleCode)){
+                    baseFileInfoList = zywwService.processUploadAndBuildParams(zywwFileSetDTO, "zyww", "住院慰问", applyFormId, fileStoragePath);
+                } else if("dbjz".equals(moduleCode)){
+                    baseFileInfoList = dbjzService.processUploadAndBuildParams(dbjzFileSetDTO, "dbjz", "大病救助", applyFormId, fileStoragePath);
+                } else {
+                    baseFileInfoList = hybzService.processUploadAndBuildParams(hybzFileSetDTO, "hybz", "会员保障", applyFormId, fileStoragePath);
+                }
+                // 等上传的文件写盘成功,再向数据库写入对应的文件信息
+                if(baseFileInfoList.size() > 0){
+                    boolean optFlag = baseService.saveBaseFileInfo(baseFileInfoList.get(0));
+                    return optFlag? RspResult.success(true) : RspResult.error("申请信息保存/修改失败 - 申请单ID:" + applyFormId);
+                }
+                return RspResult.error("参数信息为空,申请信息无法保存/修改");
+            }
+            return RspResult.error("用户信息为空,申请信息无法保存/修改");
+        } catch (Exception e){
+            log.error("申请信息保存/修改失败", e);
+            return RspResult.error("申请信息保存/修改失败 - " + e.getMessage());
+        }
+    }
+
+
 }

+ 36 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/common/service/BaseService.java

@@ -7,6 +7,9 @@ import com.ruoyi.framework.config.ServerConfig;
 import com.ruoyi.zzb.common.domain.BaseFileInfo;
 import com.ruoyi.zzb.common.mapper.BaseFileInfoMapper;
 import com.ruoyi.zzb.common.utils.CommonUtils;
+import com.ruoyi.zzb.dbjz.mapper.DbjzApplyInfoMapper;
+import com.ruoyi.zzb.hybz.mapper.HybzApplyInfoMapper;
+import com.ruoyi.zzb.zyww.mapper.ZywwApplyInfoMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -24,6 +27,7 @@ import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.atomic.AtomicInteger;
 
 @Slf4j
@@ -39,6 +43,12 @@ public class BaseService {
     private JavaMailSender mailSender;
     @Value("${spring.mail.username}")
     private String from;
+    @Autowired
+    private ZywwApplyInfoMapper zywwApplyInfoMapper;
+    @Autowired
+    private DbjzApplyInfoMapper dbjzApplyInfoMapper;
+    @Autowired
+    private HybzApplyInfoMapper hybzApplyInfoMapper;
 
     /**
      * 发送一条带附件的邮件消息
@@ -137,4 +147,30 @@ public class BaseService {
         return rowDataList;
     }
 
+
+    /**
+     * 根据模块编码、申请单ID获取对应的申请信息记录
+     * @param moduleCode
+     * @param applyFormId
+     * @return
+     */
+    public Object getDataByApplyFormId(String moduleCode, String applyFormId){
+        if("zyww".equals(moduleCode)){
+            return zywwApplyInfoMapper.selectById(applyFormId);
+        }else if("dbjz".equals(moduleCode)){
+            return dbjzApplyInfoMapper.selectById(applyFormId);
+        }else {
+            return hybzApplyInfoMapper.selectById(applyFormId);
+        }
+    }
+
+
+    public boolean saveBaseFileInfo(BaseFileInfo baseFileInfo){
+        if(baseFileInfo != null){
+            int insertRows = baseFileInfoMapper.insert(baseFileInfo);
+            return insertRows > 0? true : false;
+        }
+        return false;
+    }
+
 }