Răsfoiți Sursa

createzip改造

wangliang 2 ani în urmă
părinte
comite
bd0071be17
21 a modificat fișierele cu 341 adăugiri și 562 ștergeri
  1. 9 30
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  2. 33 23
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  3. 78 77
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  4. 73 126
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  5. 9 31
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java
  6. 1 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  7. 24 52
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  8. 5 13
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java
  9. 5 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java
  10. 4 13
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java
  11. 19 30
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  12. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java
  13. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java
  14. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java
  15. 37 29
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java
  16. 5 5
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java
  17. 9 18
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java
  18. 3 3
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSchoolServiceImpl.java
  19. 19 29
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java
  20. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java
  21. 4 9
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

+ 9 - 30
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -16,7 +16,6 @@ import com.qmth.teachcloud.common.bean.dto.stmms.PicConfig;
 import com.qmth.teachcloud.common.bean.dto.stmms.QuestionBaseDTO;
 import com.qmth.teachcloud.common.bean.dto.stmms.QuestionDTO;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
-import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicCollege;
@@ -535,8 +534,9 @@ public class DataSyncServiceImpl implements DataSyncService {
             File file = null;
             try {
                 // 文件临时目录
-                String filePath = getTempDir(SyncFileTypeEnum.CARD);
-                file = createJsonFile(filePath, cardDetail.getContent());
+                String dirName = "upload-temp" + File.separator + SyncFileTypeEnum.CARD.name().toLowerCase() + File.separator + System.currentTimeMillis();
+                file = SystemConstant.getFileTempDirVar(dirName, SystemConstant.getNanoId() + ".json");
+                file = createJsonFile(file.getPath(), cardDetail.getContent());
                 if (file.exists()) {
                     String uploadCardUrl = cloudMarkingTaskUtils.syncFile(schoolId, String.valueOf(thirdRelateId), examTask.getCourseCode() + s + examTask.getSequence(), SyncFileTypeEnum.CARD, file);
                     if (StringUtils.isNotBlank(uploadCardUrl)) {
@@ -548,27 +548,10 @@ public class DataSyncServiceImpl implements DataSyncService {
             } catch (Exception e) {
                 throw ExceptionResultEnum.ERROR.exception(e.getMessage());
             } finally {
-                if (Objects.nonNull(dictionaryConfig.sysDomain()) && dictionaryConfig.sysDomain().isOss()) {
-                    if (file != null && file.exists()) {
-                        file.delete();
-                    }
+                if (file != null && file.exists()) {
+                    file.delete();
                 }
             }
-
-        }
-    }
-
-    /**
-     * 上传文件临时目录
-     *
-     * @param type 同步类型
-     */
-    private String getTempDir(SyncFileTypeEnum type) {
-        DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            return dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
-        } else {
-            return dictionaryConfig.fssPublicDomain().getConfig() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
         }
     }
 
@@ -595,15 +578,9 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param content 要生成的文件内容
      */
     public static File createJsonFile(String url, String content) {
-
-        File file = new File(url);
-        if (!file.exists()) {
-            file.mkdirs();
-        }
         BufferedWriter out = null;
-        file = new File(file, UUID.randomUUID().toString() + ".json");
+        File file = new File(url);
         try {
-            file.createNewFile();
             out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
             out.write(content);
         } catch (Exception e) {
@@ -631,7 +608,9 @@ public class DataSyncServiceImpl implements DataSyncService {
                     throw ExceptionResultEnum.ERROR.exception("附件数据异常");
                 }
                 String fileName = attachment.getName() + SystemConstant.HYPHEN + name + attachment.getType();
-                return teachcloudCommonService.copyFile(getTempDir(type), fileName, attachment);
+                String dirName = "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
+                File file = SystemConstant.getFileTempDirVar(dirName, SystemConstant.getNanoId() + ".json");
+                return teachcloudCommonService.copyFile(file.getPath(), fileName, attachment);
             }
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());

+ 33 - 23
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java

@@ -30,6 +30,7 @@ import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.BasicCourseService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -285,32 +286,41 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     @Override
     public void downloadFiles(HttpServletResponse response, ArraysParams arraysParams) throws Exception {
         // 路径规则:download-temp/{time}/{schoolId}/{courseCode}-{couseName}/{paperNumber}/{fileName}
-        long time = System.nanoTime();
+        File fileTemp = null;
         String rootPath = null;
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
-        } else {
-            rootPath = dictionaryConfig.fssPublicDomain().getConfig() + File.separator + time;
-        }
-        Long[] cardIds = arraysParams.getIds();
-        // 根据题卡取命题任务
-        for (Long cardId : cardIds) {
-            List<ExamTask> examTasks = examTaskService.listExamTaskByCardId(cardId);
-            if (examTasks.isEmpty() || examTasks.size() > 1) {
-                throw ExceptionResultEnum.ERROR.exception("题卡数据异常");
+        try {
+            long time = System.nanoTime();
+            fileTemp = SystemConstant.getFileTempDirVar(String.valueOf(time) + File.separator + SystemConstant.getNanoId(), SystemConstant.TEMP_PREFIX);
+            rootPath = fileTemp.getParent();
+            Long[] cardIds = arraysParams.getIds();
+            // 根据题卡取命题任务
+            for (Long cardId : cardIds) {
+                List<ExamTask> examTasks = examTaskService.listExamTaskByCardId(cardId);
+                if (examTasks.isEmpty() || examTasks.size() > 1) {
+                    throw ExceptionResultEnum.ERROR.exception("题卡数据异常");
+                }
+                ExamTask examTask = examTasks.get(0);
+                StringJoiner sj = new StringJoiner(File.separator);
+                sj.add(rootPath).add(examTask.getSchoolId().toString()).add(examTask.getCourseCode() + SystemConstant.HYPHEN + examTask.getCourseName()).add(examTask.getPaperNumber());
+
+                // 附件ID
+                ExamCardDetail examCardDetail = examCardDetailService.getByCardId(cardId);
+                BasicAttachment attachment = basicAttachmentService.getById(examCardDetail.getCustAttachmentId());
+                String fileName = attachment.getName() + attachment.getType();
+                teachcloudCommonService.copyFile(sj.toString(), fileName, attachment);
+            }
+            // 压缩
+            teachcloudCommonService.downloadFileAndZip(response, rootPath, time);
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+        } finally {
+            if (Objects.nonNull(fileTemp)) {
+                fileTemp.delete();
+            }
+            if (Objects.nonNull(rootPath)) {
+                ConvertUtil.delFolder(rootPath);
             }
-            ExamTask examTask = examTasks.get(0);
-            StringJoiner sj = new StringJoiner(File.separator);
-            sj.add(rootPath).add(examTask.getSchoolId().toString()).add(examTask.getCourseCode() + SystemConstant.HYPHEN + examTask.getCourseName()).add(examTask.getPaperNumber());
-
-            // 附件ID
-            ExamCardDetail examCardDetail = examCardDetailService.getByCardId(cardId);
-            BasicAttachment attachment = basicAttachmentService.getById(examCardDetail.getCustAttachmentId());
-            String fileName = attachment.getName() + attachment.getType();
-            teachcloudCommonService.copyFile(sj.toString(), fileName, attachment);
         }
-        // 压缩
-        teachcloudCommonService.downloadFileAndZip(response, rootPath, time);
     }
 
     @Override

+ 78 - 77
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -992,92 +992,93 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
         String paperAttachmentIds = examTaskDetailPdfDownloadDto.getPaperAttachmentIds();
         List<JSONObject> jsonObjectList = JSONObject.parseArray(paperAttachmentIds, JSONObject.class);
-        // 本地保存目录
-        Long time = System.currentTimeMillis();
+        File tempFile = null;
         String rootPath = null;
-        StringJoiner dirPath = new StringJoiner("");
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
-            dirPath = dirPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
-        } else {
-            rootPath = dictionaryConfig.fssPublicDomain().getConfig() + File.separator + time;
-            dirPath = dirPath.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
-        }
-        dirPath = dirPath.add(String.valueOf(time)).add(File.separator)
-                .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
-                .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
-                .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(File.separator)
-                .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(File.separator)
-                .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(SystemConstant.HYPHEN)
-                .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(SystemConstant.HYPHEN);
-        List<File> fileList = new ArrayList<>();
-        // 试卷
-        for (JSONObject jsonObject : jsonObjectList) {
-            String id = jsonObject.get("attachmentId").toString();
-            String name = jsonObject.get("name").toString();
-            if (StringUtils.isNotBlank(id)) {
-                BasicAttachment attachment = basicAttachmentService.getById(id);
-                if (attachment == null) {
-                    throw ExceptionResultEnum.ERROR.exception("附件数据异常");
-                }
-                StringJoiner paperPath = new StringJoiner("");
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    paperPath = paperPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
-                } else {
-                    paperPath = paperPath.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
-                }
-                paperPath = paperPath.add(String.valueOf(time)).add(File.separator)
-                        .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
-                        .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
-                        .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(File.separator)
-                        .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(File.separator);
-                String fileName = examTaskDetailPdfDownloadDto.getCourseNameCode() + SystemConstant.HYPHEN + examTaskDetailPdfDownloadDto.getPaperNumber() + SystemConstant.HYPHEN + "试卷" + SystemConstant.HYPHEN + name + attachment.getType();
-                File file = teachcloudCommonService.copyFile(paperPath.toString(), fileName, attachment);
-                if (Objects.nonNull(file)) {
-                    fileList.add(file);
+        try {
+            // 本地保存目录
+            Long time = System.currentTimeMillis();
+            tempFile = SystemConstant.getFileTempDirVar(String.valueOf(time) + File.separator + SystemConstant.getNanoId(), SystemConstant.TEMP_PREFIX);
+            rootPath = tempFile.getParent();
+            StringJoiner dirPath = new StringJoiner("");
+            dirPath = dirPath.add(String.valueOf(time)).add(File.separator)
+                    .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
+                    .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
+                    .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(File.separator)
+                    .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(File.separator)
+                    .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(SystemConstant.HYPHEN)
+                    .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(SystemConstant.HYPHEN);
+            List<File> fileList = new ArrayList<>();
+            // 试卷
+            for (JSONObject jsonObject : jsonObjectList) {
+                String id = jsonObject.get("attachmentId").toString();
+                String name = jsonObject.get("name").toString();
+                if (StringUtils.isNotBlank(id)) {
+                    BasicAttachment attachment = basicAttachmentService.getById(id);
+                    if (attachment == null) {
+                        throw ExceptionResultEnum.ERROR.exception("附件数据异常");
+                    }
+                    StringJoiner paperPath = new StringJoiner("");
+                    paperPath = paperPath.add(String.valueOf(time)).add(File.separator)
+                            .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
+                            .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
+                            .add(examTaskDetailPdfDownloadDto.getCourseNameCode()).add(File.separator)
+                            .add(examTaskDetailPdfDownloadDto.getPaperNumber()).add(File.separator);
+                    String fileName = examTaskDetailPdfDownloadDto.getCourseNameCode() + SystemConstant.HYPHEN + examTaskDetailPdfDownloadDto.getPaperNumber() + SystemConstant.HYPHEN + "试卷" + SystemConstant.HYPHEN + name + attachment.getType();
+                    File file = teachcloudCommonService.copyFile(paperPath.toString(), fileName, attachment);
+                    if (Objects.nonNull(file)) {
+                        fileList.add(file);
+                    }
                 }
-            }
 
-            // 题卡
-            Long cardId = Long.parseLong(jsonObject.getString("cardId"));
-            if (cardId != null) {
-                ExamCard examCard = examCardService.getById(cardId);
+                // 题卡
+                Long cardId = Long.parseLong(jsonObject.getString("cardId"));
+                if (cardId != null) {
+                    ExamCard examCard = examCardService.getById(cardId);
 
-                String cardHtmlPath = dirPath.toString() + "题卡" + SystemConstant.HYPHEN + name + SystemConstant.HTML_PREFIX;
-                String cardPdfPath = dirPath.toString() + "题卡" + SystemConstant.HYPHEN + name + SystemConstant.PDF_PREFIX;
+                    String cardHtmlPath = dirPath.toString() + "题卡" + SystemConstant.HYPHEN + name + SystemConstant.HTML_PREFIX;
+                    String cardPdfPath = dirPath.toString() + "题卡" + SystemConstant.HYPHEN + name + SystemConstant.PDF_PREFIX;
 
-                ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
-                String htmlContent;
-                // 通用模板
-                if (MakeMethodEnum.SELECT.equals(examCard.getMakeMethod())) {
-                    htmlContent = createPdfUtil.resetHtmlTemplateBar(examCardDetail.getHtmlContent());
-                } else {
-                    BasicCardRule basicCardRule = basicCardRuleService.getById(examTask.getCardRuleId());
-                    htmlContent = createPdfUtil.replaceHtmlCard(examCardDetail, basicCardRule);
-                }
+                    ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
+                    String htmlContent;
+                    // 通用模板
+                    if (MakeMethodEnum.SELECT.equals(examCard.getMakeMethod())) {
+                        htmlContent = createPdfUtil.resetHtmlTemplateBar(examCardDetail.getHtmlContent());
+                    } else {
+                        BasicCardRule basicCardRule = basicCardRuleService.getById(examTask.getCardRuleId());
+                        htmlContent = createPdfUtil.replaceHtmlCard(examCardDetail, basicCardRule);
+                    }
 
-                // html
-                File htmlFile = new File(cardHtmlPath);
-                if (!htmlFile.getParentFile().exists()) {
-                    htmlFile.getParentFile().mkdirs();
-                }
-                // 生成html文件
-                FileCopyUtils.copy(htmlContent.getBytes(), htmlFile);
-                fileList.add(htmlFile);
-                // 转pdf文件
-                File pdfFile = new File(cardPdfPath);
-                if (!pdfFile.exists()) {
-                    pdfFile.createNewFile();
+                    // html
+                    File htmlFile = new File(cardHtmlPath);
+                    if (!htmlFile.getParentFile().exists()) {
+                        htmlFile.getParentFile().mkdirs();
+                    }
+                    // 生成html文件
+                    FileCopyUtils.copy(htmlContent.getBytes(), htmlFile);
+                    fileList.add(htmlFile);
+                    // 转pdf文件
+                    File pdfFile = new File(cardPdfPath);
+                    if (!pdfFile.exists()) {
+                        pdfFile.createNewFile();
+                    }
+                    HtmlToPdfUtil.convert(cardHtmlPath, cardPdfPath, PageSizeEnum.A3);
+                    fileList.add(pdfFile);
                 }
-                HtmlToPdfUtil.convert(cardHtmlPath, cardPdfPath, PageSizeEnum.A3);
-                fileList.add(pdfFile);
+            }
+            if (fileList.size() == 0) {
+                throw ExceptionResultEnum.ERROR.exception("没有可导出文件");
+            }
+            teachcloudCommonService.downloadFileAndZip(response, rootPath, rootPath);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (Objects.nonNull(tempFile)) {
+                tempFile.delete();
+            }
+            if (Objects.nonNull(rootPath)) {
+                ConvertUtil.delFolder(rootPath);
             }
         }
-        if (fileList.size() == 0) {
-            throw ExceptionResultEnum.ERROR.exception("没有可导出文件");
-        }
-
-        teachcloudCommonService.downloadFileAndZip(response, rootPath, rootPath);
     }
 
     @Override

+ 73 - 126
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.aliyun.oss.common.utils.BinaryUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -179,20 +178,21 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.PATH);
                 UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
-                if (oss) {
+                if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                     ossStr = SystemConstant.OSS;
                     File htmlFileTemp = SystemConstant.getFileTempVar(SystemConstant.HTML_PREFIX);
                     fileTempList.add(htmlFileTemp);
                     htmlFile = fileStoreUtil.ossDownload(filePath, htmlFileTemp, uploadType.getFssType());
                 } else {
                     ossStr = SystemConstant.LOCAL;
-                    if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig()) && filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                    if (Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig()) && filePath.contains(dictionaryConfig.fssPublicDomain().getConfig())) {
                         htmlFile = new File(filePath);
                     } else {
-                        htmlFile = new File(dictionaryConfig.fssPublicDomain().getConfig(), filePath);
+                        File htmlFileTemp = SystemConstant.getFileTempVar(SystemConstant.HTML_PREFIX);
+                        htmlFile = fileStoreUtil.ossDownload(filePath, htmlFileTemp, uploadType.getFssType());
                     }
-                    if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                        pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+                    if (Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                        pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
                     }
                 }
             }
@@ -207,14 +207,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 //            File pdfFile = asposePdfUtil.documentToPdf(htmlFile.getPath(), destUrl, PaperSize.A4);
             String htmlFileMd5 = DigestUtils.md5Hex(new FileInputStream(htmlFile));
             String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
-                } else {
-                    fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
             }
 
             PdfDto pdfDto = PdfUtil.addPdfPage(pdfFileTemp);
@@ -266,8 +262,8 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner pdfStringJoiner = new StringJoiner("");
             String ossStr = null;
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             pdfStringJoiner = SystemConstant.getDirName(pdfStringJoiner, UploadFileEnum.PDF, true);
             pdfStringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
@@ -279,16 +275,12 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             String pdfDirName = pdfStringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
             //pdf生成和上传
             String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 ossStr = SystemConstant.OSS;
                 fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {
                 ossStr = SystemConstant.LOCAL;
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
-                } else {
-                    fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
             }
             PdfDto pdfDto = PdfUtil.addPdfPage(pdfFileTemp);
 
@@ -346,11 +338,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner pdfStringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.HTML, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.HTML_PREFIX);
@@ -364,15 +356,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
             //html生成和上传
             String htmlFileMd5 = DigestUtils.md5Hex(new FileInputStream(htmlFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 fileStoreUtil.ossUpload(htmlDirName, htmlFileTemp, htmlFileMd5, fileStoreUtil.getUploadEnumByPath(htmlDirName).getFssType());
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.localUpload(htmlDirName, new FileInputStream(htmlFileTemp), htmlFileMd5, LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(htmlDirName, htmlFileTemp, htmlFileMd5, fileStoreUtil.getUploadEnumByPath(htmlDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(htmlDirName, new FileInputStream(htmlFileTemp), htmlFileMd5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             jsonObject.put(SystemConstant.HTML_PATH, htmlDirName);
@@ -381,14 +369,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
 
             //pdf生成和上传
             String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
-                } else {
-                    fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
             }
 
             pdfDto = PdfUtil.addPdfPage(pdfFileTemp);
@@ -427,86 +411,56 @@ public class PrintCommonServiceImpl implements PrintCommonService {
     @Override
     public BasicAttachment saveAttachmentHtmlAndPdf(String fileName, String htmlContent, Long userId) {
         BasicAttachment basicAttachment = null;
+        File htmlFile = null, pdfFile = null;
         try {
             byte[] bytes = htmlContent.getBytes();
             int size = bytes.length;
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            StringJoiner pdfStringJoiner = new StringJoiner("");
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
+            }
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.HTML, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.HTML_PREFIX);
 
+            pdfStringJoiner = SystemConstant.getDirName(pdfStringJoiner, UploadFileEnum.PDF, true);
+            pdfStringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
+
+            String htmlDirName = stringJoiner.toString();
+            String pdfDirName = pdfStringJoiner.toString();
+
             JSONObject jsonObject = new JSONObject();
-            String fileMd5 = null;
-            if (oss) {//上传至oss
-                String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-                fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
-                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
-                jsonObject.put(SystemConstant.PATH, dirName);
-                String url = null;
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName;
-                } else {
-                    url = dirName;
-                }
-                File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
-                StringJoiner pdfStringJoiner = SystemConstant.getDirName(UploadFileEnum.PDF, true);
-                pdfStringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
-                String pdfDirName = pdfStringJoiner.toString();
-
-                String destUrl = null;
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
-                } else {
-                    destUrl = pdfDirName;
-                }
-//                destUrl = destUrl.replaceAll("\\\\",SystemConstant.ORG_SPLIT);
+            jsonObject.put(SystemConstant.PATH, htmlDirName);
+            jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
+
+            htmlFile = SystemConstant.getFileTempVar(SystemConstant.HTML_PREFIX);
+            pdfFile = SystemConstant.getFileTempVar(SystemConstant.PDF_PREFIX);
 
-                HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A4);
+            FileCopyUtils.copy(htmlContent.getBytes(), htmlFile);
+
+            String htmlFileMd5 = DigestUtils.md5Hex(new FileInputStream(htmlFile));
+            String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
+
+            jsonObject.put("htmlMd5", htmlFileMd5);
+            jsonObject.put("pdfMd5", pdfFileMd5);
+            HtmlToPdfUtil.convert(htmlFile.getPath(), pdfFile.getPath(), PageSizeEnum.A4);
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
+                jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
+                fileStoreUtil.ossUpload(htmlDirName, htmlContent, fileStoreUtil.getUploadEnumByPath(htmlDirName).getFssType());
 //                File pdfFile = asposePdfUtil.documentToPdf(localHtmlFile.getPath(), destUrl, PaperSize.A3);
-                File pdfFile = new File(destUrl);
-                if (!pdfFile.exists()) {
-                    pdfFile.getParentFile().mkdirs();
-                    pdfFile.createNewFile();
-                }
-                fileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
-//                ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
-                pdfDirName = pdfDirName.replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-                fileStoreUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)), fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-//                localHtmlFile.delete();
-                jsonObject.put(SystemConstant.PDF_PATH, pdfDirName);
-                // htmlMd5
-                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(localHtmlFile)));
-                jsonObject.put("pdfMd5", fileMd5);
+                fileStoreUtil.ossUpload(pdfDirName, pdfFile, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {//上传至服务器
-                File finalFile = new File(stringJoiner.toString());
-                if (!finalFile.exists()) {
-                    finalFile.getParentFile().mkdirs();
-                    finalFile.createNewFile();
-                }
-                FileCopyUtils.copy(bytes, new File(stringJoiner.toString()));
-                fileMd5 = DigestUtils.md5Hex(new FileInputStream(stringJoiner.toString()));
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
-                String destUrl = finalFile.getPath().replaceAll(UploadFileEnum.HTML.name().toLowerCase(), UploadFileEnum.PDF.name().toLowerCase());
-                HtmlToPdfUtil.convert(finalFile.getPath(), destUrl, PageSizeEnum.A3);
-                File pdfFile = new File(destUrl);
-                if (!pdfFile.exists()) {
-                    pdfFile.getParentFile().mkdirs();
-                    pdfFile.createNewFile();
-                }
-                fileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFile));
-
-                jsonObject.put(SystemConstant.PDF_PATH, destUrl);
-                jsonObject.put("htmlMd5", DigestUtils.md5Hex(new FileInputStream(finalFile)));
-                jsonObject.put("pdfMd5", fileMd5);
+                fileStoreUtil.localUpload(htmlDirName, new FileInputStream(htmlFile), htmlFileMd5, LocalCatalogEnum.LOCAL_PDF);
             }
             jsonObject.put(SystemConstant.UPLOAD_TYPE, new UploadFileEnum[]{
                     UploadFileEnum.HTML, UploadFileEnum.PDF
             });
-            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, SystemConstant.HTML_PREFIX, new BigDecimal(size), fileMd5, userId);
+            basicAttachment = new BasicAttachment(jsonObject.toJSONString(), fileName, SystemConstant.HTML_PREFIX, new BigDecimal(size), htmlFileMd5, userId);
             basicAttachmentService.save(basicAttachment);
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
@@ -516,6 +470,13 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             } else {
                 ResultUtil.error(e.getMessage());
             }
+        } finally {
+            if (Objects.nonNull(htmlFile)) {
+                htmlFile.delete();
+            }
+            if (Objects.nonNull(pdfFile)) {
+                pdfFile.delete();
+            }
         }
         return basicAttachment;
     }
@@ -579,26 +540,20 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             }
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss) {
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
-                }
+            if (!oss && (Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig()))) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, type, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(format);
 
             JSONObject jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-            if (oss) {//上传至oss
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.localUpload(dirName, file.getInputStream(), md5, LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
-                }
+                fileStoreUtil.localUpload(dirName, file.getInputStream(), md5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, dirName);
             }
@@ -1238,23 +1193,19 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         try {
             inputStream = new ByteArrayInputStream(fos.toByteArray());
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(".").add(SystemConstant.XLSX);
 
             jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-            if (oss) {//上传至oss
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
-                }
+                fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             jsonObject.put(SystemConstant.PATH, dirName);
@@ -1322,8 +1273,8 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner pdfStringJoiner = new StringJoiner("");
             String ossStr = null;
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             pdfStringJoiner = SystemConstant.getDirName(pdfStringJoiner, UploadFileEnum.PDF, true);
             pdfStringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
@@ -1334,16 +1285,12 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             createPrintPdfUtil.createPackagePdf(pdfPackageDto, pdfFileTemp.getPath());
             //pdf生成和上传
             String pdfFileMd5 = DigestUtils.md5Hex(new FileInputStream(pdfFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 ossStr = SystemConstant.OSS;
                 fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {
                 ossStr = SystemConstant.LOCAL;
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
-                } else {
-                    fileStoreUtil.ossUpload(pdfDirName, pdfFileTemp, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFileTemp), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
             }
 
             PdfDto pdfDto = PdfUtil.addPdfPage(pdfFileTemp);
@@ -1388,8 +1335,8 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         try {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner pdfStringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             pdfStringJoiner = SystemConstant.getDirName(pdfStringJoiner, UploadFileEnum.PDF, true);
             pdfStringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);

+ 9 - 31
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java

@@ -124,8 +124,8 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
             Optional.ofNullable(tSyncExamStudentScore.getSheetUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生原卷地址"));
             Optional.ofNullable(tSyncExamStudentScore.getSyncData()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生作答数据"));
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(File.separator);
@@ -161,15 +161,11 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
                         JSONObject sheetObject = new JSONObject();
                         sheetObject.put(SystemConstant.PATH, dirJpgName);
                         String jpgFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileSource));
-                        if (oss) {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossUpload(dirJpgName.toString(), fileSource, DigestUtils.md5Hex(new FileInputStream(fileSource)), UploadFileEnum.FILE.getFssType());
                             sheetObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                fileStoreUtil.localUpload(dirJpgName.toString(), new FileInputStream(fileSource), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
-                            } else {
-                                fileStoreUtil.ossUpload(dirJpgName.toString(), fileSource, DigestUtils.md5Hex(new FileInputStream(fileSource)), UploadFileEnum.FILE.getFssType());
-                            }
+                            fileStoreUtil.localUpload(dirJpgName.toString(), new FileInputStream(fileSource), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
                             sheetObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                         }
                         sheetObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
@@ -190,14 +186,10 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
                         String dirTargetName = dirTargetJpgName.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
                         String jpgTargetFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileTarget));
                         jsonImageTrajectoryPathArray.add(dirTargetName);
-                        if (oss) {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossUpload(dirTargetName, fileTarget, DigestUtils.md5Hex(new FileInputStream(fileTarget)), UploadFileEnum.FILE.getFssType());
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                fileStoreUtil.localUpload(dirTargetName, new FileInputStream(fileTarget), jpgTargetFileMd5, LocalCatalogEnum.LOCAL_FILE);
-                            } else {
-                                fileStoreUtil.ossUpload(dirTargetName, fileTarget, DigestUtils.md5Hex(new FileInputStream(fileTarget)), UploadFileEnum.FILE.getFssType());
-                            }
+                            fileStoreUtil.localUpload(dirTargetName, new FileInputStream(fileTarget), jpgTargetFileMd5, LocalCatalogEnum.LOCAL_FILE);
                         }
                         trailUrlsList.add(dirTargetName);
                     }
@@ -229,11 +221,7 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
                         if (imageTrajectoryEnum == ImageTrajectoryEnum.DOWNLOAD) {
                             fileTargetList.add(new File(url));
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                trailUrlsList.add(url);
-                            } else {
-                                trailUrlsList.add(fileStoreUtil.getPrivateUrl(url, UploadFileEnum.FILE.getFssType()));
-                            }
+                            trailUrlsList.add(fileStoreUtil.getPrivateUrl(url, UploadFileEnum.FILE.getFssType()));
                         }
                     }
                 }
@@ -272,19 +260,9 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
         OutputStream outputStream = null;
         try {
             if (Objects.nonNull(tSyncExamStudentScore.getTrajectoryFileList())) {
-                StringJoiner stringJoiner = new StringJoiner("");
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
-                } else {
-                    stringJoiner.add(dictionaryConfig.fssPublicDomain().getServer()).add(File.separator);
-                }
                 StringJoiner dirZipName = SystemConstant.getDirName(UploadFileEnum.FILE, true);
                 dirZipName.add(SystemConstant.getNanoId()).add(SystemConstant.ZIP_PREFIX);
-                zipFile = new File(stringJoiner.toString() + dirZipName.toString());
-                if (!zipFile.exists()) {
-                    zipFile.getParentFile().mkdirs();
-                    zipFile.createNewFile();
-                }
+                zipFile = SystemConstant.getFileTempDirVar(dirZipName.toString(), null);
 
                 List<File> fileList = tSyncExamStudentScore.getTrajectoryFileList();
                 if (fileList.isEmpty()) {
@@ -316,7 +294,7 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
                 outputStream.close();
             }
             if (Objects.nonNull(zipFile)) {
-                System.out.println(zipFile.delete());
+                zipFile.delete();
             }
         }
     }

+ 1 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -3,7 +3,6 @@ package com.qmth.distributed.print.business.templete.importData;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.TBTask;
@@ -15,7 +14,6 @@ import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.annotation.Async;
@@ -73,12 +71,7 @@ public abstract class AsyncImportTaskTemplete {
         if (Objects.equals(type, SystemConstant.OSS)) {
             inputStream = fileStoreUtil.ossDownloadIs(path, uploadType.getFssType());
         } else {
-            DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                inputStream = new FileInputStream(new File(path));
-            } else {
-                inputStream = fileStoreUtil.ossDownloadIs(path, uploadType.getFssType());
-            }
+            inputStream = new FileInputStream(new File(path));
         }
         return inputStream;
     }

+ 24 - 52
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -679,17 +679,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         JSONObject jsonObject = new JSONObject();
         String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
         boolean oss = dictionaryConfig.sysDomain().isOss();
-        if (oss) {//上传至oss
+        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
             fileStoreUtil.ossUpload(dirName, in, DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())), fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             jsonObject.put(SystemConstant.PATH, dirName);
         } else {
-            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                dirName = (dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName).replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-                fileStoreUtil.copyInputStreamToFile(in, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
-            } else {
-                fileStoreUtil.ossUpload(dirName, in, DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())), UploadFileEnum.FILE.getFssType());
-            }
+            dirName = (dictionaryConfig.fssPublicDomain().getConfig() + File.separator + dirName).replaceAll("\\\\", SystemConstant.ORG_SPLIT);
+            fileStoreUtil.copyInputStreamToFile(in, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             jsonObject.put(SystemConstant.PATH, dirName);
         }
@@ -927,8 +923,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 Long time = System.currentTimeMillis();
                 boolean oss = dictionaryConfig.sysDomain().isOss();
                 StringJoiner stringJoiner = new StringJoiner("");
-                if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                    stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
                 }
                 stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
                 stringJoiner.add("印刷任务管理_批量下载PDF_" + time).add(SystemConstant.ZIP_PREFIX);
@@ -1053,11 +1049,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
                 file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), file, uploadFileEnum.getFssType());
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    FileCopyUtils.copy(new File((String) jsonObject.get(SystemConstant.PATH)), file);
-                } else {
-                    file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), file, uploadFileEnum.getFssType());
-                }
+                FileCopyUtils.copy(new File((String) jsonObject.get(SystemConstant.PATH)), file);
             }
         }
         return file;
@@ -1074,8 +1066,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             Long time = System.currentTimeMillis();
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add("导出审核样本_" + time).add(SystemConstant.ZIP_PREFIX);
@@ -1122,14 +1114,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         JSONObject jsonObject = JSONObject.parseObject(paperAttachment.getPath());
                         UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
                         String paperPath = firstPath + File.separator + "试卷" + File.separator + paperAttachment.getName() + paperAttachment.getType();
-                        if (oss) {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), paperPath, uploadFileEnum.getFssType());
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), paperPath);
-                            } else {
-                                fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), paperPath, uploadFileEnum.getFssType());
-                            }
+                            FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), paperPath);
                         }
                         count++;
                     }
@@ -1151,14 +1139,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         JSONObject jsonObject = JSONObject.parseObject(confirmAttachment.getPath());
                         UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
                         String confirmPath = firstPath + File.separator + "审核样本" + File.separator + confirmAttachment.getName() + confirmAttachment.getType();
-                        if (oss) {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), confirmPath, uploadFileEnum.getFssType());
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), confirmPath);
-                            } else {
-                                fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), confirmPath, uploadFileEnum.getFssType());
-                            }
+                            FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), confirmPath);
                         }
                         count++;
                     }
@@ -1190,14 +1174,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         }
                         UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 
-                        if (oss) {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), cardPath, uploadFileEnum.getFssType());
                         } else {
-                            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), cardPath);
-                            } else {
-                                fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), cardPath, uploadFileEnum.getFssType());
-                            }
+                            FileUtil.copyFile(jsonObject.getString(SystemConstant.PATH), cardPath);
                         }
                     } else {
                         List<ExamCardDetail> examCardDetailList = examCardDetailService.list(new QueryWrapper<ExamCardDetail>().lambda().eq(ExamCardDetail::getCardId, cardId));
@@ -1257,8 +1237,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             Long time = System.currentTimeMillis();
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add("命题任务审核样本导出_" + time).add(SystemConstant.ZIP_PREFIX);
@@ -1765,8 +1745,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 Long time = System.currentTimeMillis();
                 boolean oss = dictionaryConfig.sysDomain().isOss();
                 StringJoiner stringJoiner = new StringJoiner("");
-                if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                    stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
                 }
                 stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
                 stringJoiner.add("成绩轨迹下载_" + time).add(SystemConstant.ZIP_PREFIX);
@@ -1878,8 +1858,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         try {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add("下载管理_批量下载_" + System.currentTimeMillis()).add(SystemConstant.ZIP_PREFIX);
@@ -2015,14 +1995,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                 paperName = paperName + SystemConstant.HYPHEN + examTaskPaperFileDto.getPaperType();
                                 String paperLocalPath = filePath + paperName + examTaskPaperFileDto.getPaperSuffix();
                                 String paperPath = examTaskPaperFileDto.getPaperPath();
-                                if (oss) {
+                                if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                                     fileStoreUtil.ossDownload(paperPath, paperLocalPath, fileStoreUtil.getUploadEnumByPath(paperPath).getFssType());
                                 } else {
-                                    if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                        FileUtil.copyFile(paperPath, paperLocalPath);
-                                    } else {
-                                        fileStoreUtil.ossDownload(paperPath, paperLocalPath, fileStoreUtil.getUploadEnumByPath(paperPath).getFssType());
-                                    }
+                                    FileUtil.copyFile(paperPath, paperLocalPath);
                                 }
                                 courseCount = 1;
                             }
@@ -2083,14 +2059,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                 String paperLocalPath = filePath + paperName + examTaskPaperFileDto.getPaperSuffix();
                                 String paperPath = examTaskPaperFileDto.getPaperPath();
 
-                                if (oss) {
+                                if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                                     fileStoreUtil.ossDownload(paperPath, paperLocalPath, fileStoreUtil.getUploadEnumByPath(paperPath).getFssType());
                                 } else {
-                                    if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                                        FileUtil.copyFile(paperPath, paperLocalPath);
-                                    } else {
-                                        fileStoreUtil.ossDownload(paperPath, paperLocalPath, fileStoreUtil.getUploadEnumByPath(paperPath).getFssType());
-                                    }
+                                    FileUtil.copyFile(paperPath, paperLocalPath);
                                 }
                                 courseCount = 1;
                             }

+ 5 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java

@@ -10,7 +10,6 @@ import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.util.ConvertUtil;
 import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.http.entity.ContentType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,12 +55,8 @@ public class HtmlToJpgUtil {
      */
     public List<BasicAttachment> convertHtmlToJpg(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
         // 本地存储目录
-        String rootPath = null;
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
-        } else {
-            rootPath = dictionaryConfig.fssPublicDomain().getConfig() + File.separator + System.currentTimeMillis();
-        }
+        File file = SystemConstant.getFileTempVar(SystemConstant.TEMP_PREFIX);
+        String rootPath = file.getParent();
         // html临时路径
         String htmlPath = rootPath + File.separator + "html" + File.separator + cardTitle + SystemConstant.HTML_PREFIX;
         // pdf临时路径
@@ -72,16 +67,10 @@ public class HtmlToJpgUtil {
         // html
         try {
             File htmlFile = new File(htmlPath);
-            if (!htmlFile.getParentFile().exists()) {
-                htmlFile.getParentFile().mkdirs();
-            }
             // 生成html文件
             FileCopyUtils.copy(htmlContent.getBytes(), htmlFile);
             // 转pdf文件
             File pdfFile = new File(pdfPath);
-            if (!pdfFile.getParentFile().exists()) {
-                pdfFile.getParentFile().mkdirs();
-            }
             HtmlToPdfUtil.convert(htmlPath, pdfPath, pageSizeEnum);
             // pdf文件转jpg
             List<File> jpgFileList = ConvertUtil.pdfToImageFile(pdfPath, jpgPath);
@@ -96,6 +85,9 @@ public class HtmlToJpgUtil {
         } catch (Exception e) {
             log.error(e.getMessage());
         } finally {
+            if (Objects.nonNull(file)) {
+                file.delete();
+            }
             ConvertUtil.delFolder(rootPath);
         }
         return basicAttachmentList;

+ 5 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java

@@ -17,7 +17,6 @@ import com.qmth.teachcloud.common.enums.PageSizeEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -297,13 +296,10 @@ public class PdfUtil {
 
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         StringJoiner stringJoiner = new StringJoiner("");
-        if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-            stringJoiner = stringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
-        } else {
-            stringJoiner = stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
-        }
         stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.PAPER, true);
         stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
+
+        File zipFile = SystemConstant.getFileTempDirVar(stringJoiner.toString(), null);
         String outputPath = stringJoiner.toString();
         PdfReader reader = null;
         PdfStamper stamper = null;
@@ -378,6 +374,9 @@ public class PdfUtil {
             if (outputFile.exists()) {
 //                outputFile.delete();
             }
+            if (Objects.nonNull(zipFile)) {
+                zipFile.delete();
+            }
         }
         return null;
     }

+ 4 - 13
teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java

@@ -1,6 +1,9 @@
 package com.qmth.teachcloud.common.config;
 
-import com.qmth.teachcloud.common.domain.*;
+import com.qmth.teachcloud.common.domain.FssPrivateDomain;
+import com.qmth.teachcloud.common.domain.FssPublicDomain;
+import com.qmth.teachcloud.common.domain.SmsDomain;
+import com.qmth.teachcloud.common.domain.SysDomain;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -48,16 +51,4 @@ public class DictionaryConfig {
     public FssPrivateDomain fssPrivateDomain() {
         return new FssPrivateDomain();
     }
-
-    @Bean
-    @ConfigurationProperties(prefix = "com.qmth.fss.localpdf", ignoreUnknownFields = false)
-    public FssLocalPdfDomain fssLocalPdfDomain() {
-        return new FssLocalPdfDomain();
-    }
-
-    @Bean
-    @ConfigurationProperties(prefix = "com.qmth.fss.localfile", ignoreUnknownFields = false)
-    public FssLocalFileDomain fssLocalFileDomain() {
-        return new FssLocalFileDomain();
-    }
 }

+ 19 - 30
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -216,6 +216,7 @@ public class SystemConstant {
     public static final String ZIP_PREFIX = ".zip";
     public static final String TXT_PREFIX = ".txt";
     public static final String JPG_PREFIX = ".jpg";
+    public static final String TEMP_PREFIX = ".temp";
     public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
     public static final String DATE_PATTERN = "yyyy-MM-dd";
     public static final String TIME_PATTERN = "HH:mm";
@@ -756,10 +757,14 @@ public class SystemConstant {
      */
     public static String getLocalFilePath(String filePath) {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-        if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getServer())) {
-            filePath = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalFileDomain().getServer()), filePath.length());
-        } else if (filePath.contains(dictionaryConfig.fssLocalPdfDomain().getServer())) {
-            filePath = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalPdfDomain().getServer()), filePath.length());
+        FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
+        boolean oss = dictionaryConfig.sysDomain().isOss();
+        if (!oss && filePath.contains(dictionaryConfig.fssPublicDomain().getServer())) {
+            filePath = filePath.substring(filePath.indexOf(dictionaryConfig.fssPublicDomain().getServer()), filePath.length());
+        } else if (!oss && filePath.contains(dictionaryConfig.fssPrivateDomain().getServer())) {
+            filePath = filePath.substring(filePath.indexOf(dictionaryConfig.fssPrivateDomain().getServer()), filePath.length());
+        } else if (oss) {
+            filePath = fileStoreUtil.getPrivateUrl(filePath, fileStoreUtil.getUploadEnumByPath(filePath).getFssType());
         }
         return filePath;
     }
@@ -872,14 +877,10 @@ public class SystemConstant {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
         boolean oss = dictionaryConfig.sysDomain().isOss();
-        if (oss) {
+        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
             fileStoreUtil.ossUpload(pdfDirName, file, DigestUtils.md5Hex(new FileInputStream(file)), fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
         } else {
-            if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)), LocalCatalogEnum.LOCAL_FILE);
-            } else {
-                fileStoreUtil.ossUpload(pdfDirName, file, DigestUtils.md5Hex(new FileInputStream(file)), fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-            }
+            fileStoreUtil.localUpload(pdfDirName, new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)), LocalCatalogEnum.LOCAL_FILE);
         }
         return pdfDirName;
     }
@@ -900,8 +901,8 @@ public class SystemConstant {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             String ossStr = null;
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.TXT_PREFIX);
@@ -916,16 +917,12 @@ public class SystemConstant {
             }
 
             String txtFileMd5 = DigestUtils.md5Hex(new FileInputStream(txtFileTemp));
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 ossStr = SystemConstant.OSS;
                 fileStoreUtil.ossUpload(txtDirName, txtFileTemp, txtFileMd5, fileStoreUtil.getUploadEnumByPath(txtDirName).getFssType());
             } else {
                 ossStr = SystemConstant.LOCAL;
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.localUpload(txtDirName, new FileInputStream(txtFileTemp), txtFileMd5, LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(txtDirName, txtFileTemp, txtFileMd5, fileStoreUtil.getUploadEnumByPath(txtDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(txtDirName, new FileInputStream(txtFileTemp), txtFileMd5, LocalCatalogEnum.LOCAL_FILE);
             }
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());
@@ -957,15 +954,11 @@ public class SystemConstant {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put(SystemConstant.PATH, zipDirName);
         String zipFileMd5 = DigestUtils.md5Hex(new FileInputStream(zipFile));
-        if (oss) {//上传至oss
+        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
             fileStoreUtil.ossUpload(zipDirName, zipFile, zipFileMd5, fileStoreUtil.getUploadEnumByPath(zipDirName).getFssType());
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
         } else {
-            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                fileStoreUtil.localUpload(zipDirName, new FileInputStream(zipFile), zipFileMd5, LocalCatalogEnum.LOCAL_FILE);
-            } else {
-                fileStoreUtil.ossUpload(zipDirName, zipFile, zipFileMd5, fileStoreUtil.getUploadEnumByPath(zipDirName).getFssType());
-            }
+            fileStoreUtil.localUpload(zipDirName, new FileInputStream(zipFile), zipFileMd5, LocalCatalogEnum.LOCAL_FILE);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
         }
         jsonObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
@@ -990,15 +983,11 @@ public class SystemConstant {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put(SystemConstant.PATH, zipDirName);
         String zipFileMd5 = DigestUtils.md5Hex(new FileInputStream(zipFile));
-        if (oss) {//上传至oss
+        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
             fileStoreUtil.ossUpload(zipDirName, zipFile, zipFileMd5, fileStoreUtil.getUploadEnumByPath(zipDirName).getFssType());
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
         } else {
-            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                fileStoreUtil.localUpload(zipDirName, new FileInputStream(zipFile), zipFileMd5, LocalCatalogEnum.LOCAL_FILE);
-            } else {
-                fileStoreUtil.ossUpload(zipDirName, zipFile, zipFileMd5, fileStoreUtil.getUploadEnumByPath(zipDirName).getFssType());
-            }
+            fileStoreUtil.localUpload(zipDirName, new FileInputStream(zipFile), zipFileMd5, LocalCatalogEnum.LOCAL_FILE);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
         }
         jsonObject.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);

+ 0 - 28
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java

@@ -1,28 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-/**
- * @Description:
- * @Author: CaoZixuan
- * @Date:
- */
-public class FssLocalFileDomain {
-    private String config;
-
-    private String server;
-
-    public String getConfig() {
-        return config;
-    }
-
-    public void setConfig(String config) {
-        this.config = config;
-    }
-
-    public String getServer() {
-        return server;
-    }
-
-    public void setServer(String server) {
-        this.server = server;
-    }
-}

+ 0 - 28
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java

@@ -1,28 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-/**
- * @Description:
- * @Author: CaoZixuan
- * @Date:
- */
-public class FssLocalPdfDomain {
-    private String config;
-
-    private String server;
-
-    public String getConfig() {
-        return config;
-    }
-
-    public void setConfig(String config) {
-        this.config = config;
-    }
-
-    public String getServer() {
-        return server;
-    }
-
-    public void setServer(String server) {
-        this.server = server;
-    }
-}

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java

@@ -6,8 +6,8 @@ package com.qmth.teachcloud.common.enums;
  * @Date: 2022-08-11
  */
 public enum LocalCatalogEnum {
-    LOCAL_FILE("localfile", "本地文件"),
-    LOCAL_PDF("localpdf", "本地pdf");
+    LOCAL_FILE("public", "本地文件"),
+    LOCAL_PDF("private", "本地pdf");
 
     private final String type;
     private final String desc;

+ 37 - 29
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java

@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.AttachmentCommonService;
+import com.qmth.teachcloud.common.util.ConvertUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.Zip4jUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -45,43 +46,50 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
         String type = object.getString(SystemConstant.TYPE);
         UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) object.get(SystemConstant.UPLOAD_TYPE));
 
-        // 存储路径为空,使用默认值
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
-        } else {
-            rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : dictionaryConfig.fssPublicDomain().getConfig() + File.separator + System.currentTimeMillis();
-        }
-        // 存储文件名为空,使用默认值
-        fileName = StringUtils.isNotBlank(fileName) ? fileName : SystemConstant.getNanoId() + basicAttachment.getType();
-        // 存储文件类型与附件类型不一样,默认改用附件类型
-        if (!fileName.endsWith(basicAttachment.getType())) {
-            fileName = SystemConstant.getNanoId() + basicAttachment.getType();
-        }
+        File fileTemp = null;
+        try {
+            fileTemp = SystemConstant.getFileTempDirVar(String.valueOf(System.currentTimeMillis() + File.separator + SystemConstant.getNanoId()), SystemConstant.TEMP_PREFIX);
+            // 存储路径为空,使用默认值
+            rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : fileTemp.getParent();
+            // 存储文件名为空,使用默认值
+            fileName = StringUtils.isNotBlank(fileName) ? fileName : SystemConstant.getNanoId() + basicAttachment.getType();
+            // 存储文件类型与附件类型不一样,默认改用附件类型
+            if (!fileName.endsWith(basicAttachment.getType())) {
+                fileName = SystemConstant.getNanoId() + basicAttachment.getType();
+            }
 
-        // oss存储
-        if (type.equals(SystemConstant.OSS)) {
-            File localPath = new File(rootPath, fileName);
-            try {
-                return fileStoreUtil.ossDownload(filePath, localPath.getPath(), uploadType.getFssType());
-            } catch (IOException e) {
-                throw ExceptionResultEnum.ERROR.exception("从OSS上下载文件失败");
+            // oss存储
+            if (type.equals(SystemConstant.OSS)) {
+                File localPath = new File(rootPath, fileName);
+                try {
+                    return fileStoreUtil.ossDownload(filePath, localPath.getPath(), uploadType.getFssType());
+                } catch (IOException e) {
+                    throw ExceptionResultEnum.ERROR.exception("从OSS上下载文件失败");
+                }
+            } else {
+                File file = new File(filePath);
+                if (!file.exists()) {
+                    throw ExceptionResultEnum.ERROR.exception("本地文件不存在");
+                }
+                return file;
             }
-        } else {
-            File file = new File(filePath);
-            if (!file.exists()) {
-                throw ExceptionResultEnum.ERROR.exception("本地文件不存在");
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+        } finally {
+            if (Objects.nonNull(fileTemp.getParent())) {
+                ConvertUtil.delFolder(fileTemp.getParent());
+            }
+            if (Objects.nonNull(fileTemp)) {
+                fileTemp.delete();
             }
-            return file;
         }
+        return null;
     }
 
     @Override
     public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files) {
-        if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            filePath = StringUtils.isNotBlank(filePath) ? filePath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
-        } else {
-            filePath = StringUtils.isNotBlank(filePath) ? filePath : dictionaryConfig.fssPublicDomain().getConfig() + File.separator + System.currentTimeMillis();
-        }
+        File fileTemp = SystemConstant.getFileTempDirVar(String.valueOf(System.currentTimeMillis()) + File.separator + SystemConstant.getNanoId(), SystemConstant.TEMP_PREFIX);
+        filePath = StringUtils.isNotBlank(filePath) ? filePath : fileTemp.getPath();
         File rootFile = new File(filePath);
         // 创建保存目录
         if (!rootFile.exists()) {

+ 5 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java

@@ -172,8 +172,8 @@ public class AuthInfoServiceImpl implements AuthInfoService {
 
         boolean oss = dictionaryConfig.sysDomain().isOss();
         StringJoiner stringJoiner = new StringJoiner("");
-        if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+        if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+            stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
         }
         stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
         for (OrgInfo o : orgInfoList) {
@@ -203,10 +203,10 @@ public class AuthInfoServiceImpl implements AuthInfoService {
 
                         dirName = stringJoiner.toString() + SystemConstant.getNanoId() + "." + FilenameUtils.getExtension(fileTemp.getPath());
                         String jpgFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileTemp));
-                        if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                            fileStoreUtil.localUpload(dirName, new FileInputStream(fileTemp), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
-                        } else {
+                        if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                             fileStoreUtil.ossUpload(dirName, fileTemp, jpgFileMd5, UploadFileEnum.FILE.getFssType());
+                        } else {
+                            fileStoreUtil.localUpload(dirName, new FileInputStream(fileTemp), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
                         }
                         basicSchool.setLogo(dirName);
                     } catch (Exception e) {

+ 9 - 18
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -71,8 +71,8 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             File pdfFile = new File(dirName);
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner pdfStringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                pdfStringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPrivateDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPrivateDomain().getConfig())) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
             }
             pdfStringJoiner = SystemConstant.getDirName(pdfStringJoiner, UploadFileEnum.PDF, true);
             String pdfName = SystemConstant.getNanoId() + SystemConstant.PDF_PREFIX;
@@ -83,15 +83,11 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
 
             JSONObject jsonPdf = new JSONObject();
             jsonPdf.put(SystemConstant.PATH, pdfDirName);
-            if (oss) {
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {
                 jsonPdf.put(SystemConstant.TYPE, SystemConstant.OSS);
                 fileStoreUtil.ossUpload(pdfDirName, pdfFile, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
             } else {
-                if (Objects.nonNull(dictionaryConfig.fssLocalPdfDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalPdfDomain().getConfig())) {
-                    fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFile), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
-                } else {
-                    fileStoreUtil.ossUpload(pdfDirName, pdfFile, pdfFileMd5, fileStoreUtil.getUploadEnumByPath(pdfDirName).getFssType());
-                }
+                fileStoreUtil.localUpload(pdfDirName, new FileInputStream(pdfFile), pdfFileMd5, LocalCatalogEnum.LOCAL_PDF);
                 jsonPdf.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             jsonPdf.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.PDF);
@@ -185,26 +181,21 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             }
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, type, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(format);
 
             JSONObject jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-            if (oss) {//上传至oss
+            jsonObject.put(SystemConstant.PATH, dirName);
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), DigestUtils.md5Hex(file.getInputStream()), type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
-                jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), DigestUtils.md5Hex(file.getInputStream()), LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(dirName, file.getInputStream(), DigestUtils.md5Hex(file.getInputStream()), type.getFssType());
-                }
+                fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), DigestUtils.md5Hex(file.getInputStream()), LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
-                jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }
             jsonObject.put(SystemConstant.UPLOAD_TYPE, type);
 

+ 3 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicSchoolServiceImpl.java

@@ -55,8 +55,8 @@ public class BasicSchoolServiceImpl extends ServiceImpl<BasicSchoolMapper, Basic
         if (logo != null) {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, UploadFileEnum.FILE, true);
 
@@ -68,7 +68,7 @@ public class BasicSchoolServiceImpl extends ServiceImpl<BasicSchoolMapper, Basic
 
                 dirName = stringJoiner + SystemConstant.getNanoId() + "." + FilenameUtils.getExtension(fileTemp.getPath());
                 String jpgFileMd5 = DigestUtils.md5Hex(new FileInputStream(fileTemp));
-                if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getServer())) {
+                if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getServer())) {
                     fileStoreUtil.localUpload(dirName, new FileInputStream(fileTemp), jpgFileMd5, LocalCatalogEnum.LOCAL_FILE);
                 } else {
                     fileStoreUtil.ossUpload(dirName, fileTemp, jpgFileMd5, UploadFileEnum.FILE.getFssType());

+ 19 - 29
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -446,10 +446,10 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String filePath = (String) jsonObject.get(SystemConstant.PATH);
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
-            if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                url = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalFileDomain().getServer()), filePath.length());
-            } else if (filePath.contains(dictionaryConfig.fssLocalPdfDomain().getServer())) {
-                url = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalPdfDomain().getServer()), filePath.length());
+            if (filePath.contains(dictionaryConfig.fssPrivateDomain().getServer())) {
+                url = filePath.substring(filePath.indexOf(dictionaryConfig.fssPrivateDomain().getServer()), filePath.length());
+            } else if (filePath.contains(dictionaryConfig.fssPublicDomain().getServer())) {
+                url = filePath.substring(filePath.indexOf(dictionaryConfig.fssPublicDomain().getServer()), filePath.length());
             } else {
                 UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
                 url = fileStoreUtil.getPrivateUrl(filePath, uploadFileEnum.getFssType());
@@ -477,10 +477,10 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         String pathUrl;
         if (Objects.equals(type, SystemConstant.LOCAL)) {
-            if (path.contains(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                pathUrl = path.substring(path.indexOf(dictionaryConfig.fssLocalFileDomain().getServer()), path.length());
-            } else if (path.contains(dictionaryConfig.fssLocalPdfDomain().getServer())) {
-                pathUrl = path.substring(path.indexOf(dictionaryConfig.fssLocalPdfDomain().getServer()), path.length());
+            if (path.contains(dictionaryConfig.fssPrivateDomain().getServer())) {
+                pathUrl = path.substring(path.indexOf(dictionaryConfig.fssPrivateDomain().getServer()), path.length());
+            } else if (path.contains(dictionaryConfig.fssPublicDomain().getServer())) {
+                pathUrl = path.substring(path.indexOf(dictionaryConfig.fssPublicDomain().getServer()), path.length());
             } else {
                 pathUrl = fileStoreUtil.getPrivateUrl(path, fileStoreUtil.getUploadEnumByPath(path).getFssType());
             }
@@ -513,10 +513,10 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         UploadFileEnum uploadFileEnum = jsonObject.get(SystemConstant.UPLOAD_TYPE).toString().contains(UploadFileEnum.HTML.name()) ? UploadFileEnum.HTML : UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 
         if (Objects.equals(attachmentType, SystemConstant.LOCAL)) {
-            if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getServer())) {
-                pathUrl = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalFileDomain().getServer()), filePath.length());
-            } else if (filePath.contains(dictionaryConfig.fssLocalPdfDomain().getServer())) {
-                pathUrl = filePath.substring(filePath.indexOf(dictionaryConfig.fssLocalPdfDomain().getServer()), filePath.length());
+            if (filePath.contains(dictionaryConfig.fssPrivateDomain().getServer())) {
+                pathUrl = filePath.substring(filePath.indexOf(dictionaryConfig.fssPrivateDomain().getServer()), filePath.length());
+            } else if (filePath.contains(dictionaryConfig.fssPublicDomain().getServer())) {
+                pathUrl = filePath.substring(filePath.indexOf(dictionaryConfig.fssPublicDomain().getServer()), filePath.length());
             } else {
                 pathUrl = fileStoreUtil.getPrivateUrl(filePath, uploadFileEnum.getFssType());
             }
@@ -544,19 +544,15 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         if (filePath.endsWith(SystemConstant.HTML_PREFIX) || filePath.endsWith(SystemConstant.FTL_PREFIX)) {
             StringBuffer sb = new StringBuffer();
             try {
-                InputStream fis;
+                InputStream fis = null;
                 if (type.equals(SystemConstant.OSS)) {
                     fis = fileStoreUtil.ossDownloadIs(filePath, uploadType.getFssType());
                 } else {
-                    if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                        File file = new File(filePath);
-                        if (!file.exists()) {
-                            throw ExceptionResultEnum.ERROR.exception("附件文件不存在");
-                        }
-                        fis = new FileInputStream(file);
-                    } else {
-                        fis = fileStoreUtil.ossDownloadIs(filePath, uploadType.getFssType());
+                    File file = new File(filePath);
+                    if (!file.exists()) {
+                        throw ExceptionResultEnum.ERROR.exception("附件文件不存在");
                     }
+                    fis = new FileInputStream(file);
                 }
                 ByteArrayOutputStream ou = new ByteArrayOutputStream();
                 IOUtils.copy(fis, ou);
@@ -595,14 +591,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             fileTempList.add(fileTemp);
             file = fileStoreUtil.ossDownload(filePath, fileTemp, uploadType.getFssType());
         } else {
-            if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                file = new File(filePath);
-            } else {
-                String suffix = filePath.substring(filePath.lastIndexOf(".")).toLowerCase();
-                File fileTemp = SystemConstant.getFileTempVar(suffix);
-                fileTempList.add(fileTemp);
-                file = fileStoreUtil.ossDownload(filePath, fileTemp, uploadType.getFssType());
-            }
+            file = new File(filePath);
         }
         return file;
     }
@@ -623,6 +612,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
                 throw ExceptionResultEnum.ERROR.exception("从OSS上下载文件失败");
             }
         } else {
+            filePath = SystemConstant.getLocalFilePath(filePath);
             File file = new File(filePath);
             if (!file.exists()) {
                 throw ExceptionResultEnum.ERROR.exception("本地文件不存在");

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java

@@ -56,10 +56,10 @@ public class FileStoreUtil {
         String configPath = "";
         switch (catalogType) {
             case LOCAL_FILE:
-                configPath = dictionaryConfig.fssLocalFileDomain().getConfig();
+                configPath = dictionaryConfig.fssPublicDomain().getConfig();
                 break;
             case LOCAL_PDF:
-                configPath = dictionaryConfig.fssLocalPdfDomain().getConfig();
+                configPath = dictionaryConfig.fssPrivateDomain().getConfig();
                 break;
             default:
                 break;

+ 4 - 9
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -47,7 +47,6 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLEncoder;
-import java.time.LocalDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -769,24 +768,20 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             }
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner stringJoiner = new StringJoiner("");
-            if (!oss && Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            if (!oss && Objects.nonNull(dictionaryConfig.fssPublicDomain()) && !StringUtils.isBlank(dictionaryConfig.fssPublicDomain().getConfig())) {
+                stringJoiner.add(dictionaryConfig.fssPublicDomain().getConfig()).add(File.separator);
             }
             stringJoiner = SystemConstant.getDirName(stringJoiner, type, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(format);
 
             JSONObject jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
-            if (oss) {//上传至oss\
+            if (oss || (!oss && dictionaryConfig.fssPrivateDomain().getConfig().startsWith("../"))) {//上传至oss\
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                if (Objects.nonNull(dictionaryConfig.fssLocalFileDomain()) && !StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                    fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), md5, LocalCatalogEnum.LOCAL_FILE);
-                } else {
-                    fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
-                }
+                fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), md5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }