Ver código fonte

资源文件前缀修改

wangliang 2 anos atrás
pai
commit
c57a6f4bf8
100 arquivos alterados com 686 adições e 1694 exclusões
  1. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java
  2. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java
  3. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DownloadServiceImpl.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  6. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  7. 6 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java
  8. 62 55
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  9. 30 29
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java
  10. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java
  11. 6 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java
  12. 10 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  13. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java
  14. 22 21
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  15. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java
  16. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java
  17. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java
  18. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java
  19. 1 0
      distributed-print/pom.xml
  20. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCampusController.java
  21. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCardRuleController.java
  22. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java
  23. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCollegeController.java
  24. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  25. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java
  26. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java
  27. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java
  28. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMessageController.java
  29. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicPrintConfigController.java
  30. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java
  31. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java
  32. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicTemplateController.java
  33. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java
  34. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/DownloadController.java
  35. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/EnumsController.java
  36. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java
  37. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  38. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java
  39. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  40. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  41. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  42. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java
  43. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java
  44. 1 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeModuleEvaluationController.java
  45. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperController.java
  46. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperDimensionController.java
  47. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperStructController.java
  48. 3 7
      distributed-print/src/main/java/com/qmth/distributed/print/api/MenuCustomController.java
  49. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/NotifyApiController.java
  50. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java
  51. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SsoController.java
  52. 4 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  53. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java
  54. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java
  55. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java
  56. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java
  57. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBSyncTaskController.java
  58. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  59. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java
  60. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java
  61. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java
  62. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java
  63. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java
  64. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java
  65. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  66. 5 4
      distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java
  67. 0 194
      distributed-print/src/main/resources/application-36dev.properties
  68. 0 197
      distributed-print/src/main/resources/application-dev.properties
  69. 0 197
      distributed-print/src/main/resources/application-offline.properties
  70. 0 199
      distributed-print/src/main/resources/application-test.properties
  71. 166 2
      distributed-print/src/main/resources/application.properties
  72. 8 8
      distributed-print/src/test/java/com/qmth/distributed/print/FssTest.java
  73. 6 0
      pom.xml
  74. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicAttachmentController.java
  75. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicSchoolController.java
  76. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysConfigController.java
  77. 1 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysRoleGroupMemberController.java
  78. 1 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/TSAuthController.java
  79. 4 0
      teachcloud-common/pom.xml
  80. 3 4
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/MqDto.java
  81. 0 8
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/cache/ThirdUserAuthCacheUtil.java
  82. 0 34
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java
  83. 67 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  84. 0 74
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/AliYunOssDomain.java
  85. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java
  86. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java
  87. 0 173
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java
  88. 12 76
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SysDomain.java
  89. 0 27
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java
  90. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java
  91. 27 22
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java
  92. 31 25
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java
  93. 0 4
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CommonCacheServiceImpl.java
  94. 11 15
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java
  95. 6 19
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java
  96. 7 17
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java
  97. 12 18
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java
  98. 27 31
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/threadPool/MyThreadPool.java
  99. 39 50
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/FileStoreUtil.java
  100. 22 21
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -237,7 +237,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         //保存png图片(这一步可做可不做)
         InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
         try {
-            FileUtils.copyInputStreamToFile(processDiagram, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
+            FileUtils.copyInputStreamToFile(processDiagram, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -265,7 +265,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         //保存xml文件(这一步可做可不做)
         InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
         try {
-            FileUtils.copyInputStreamToFile(processBpmn, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
+            FileUtils.copyInputStreamToFile(processBpmn, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
         } catch (IOException e) {
             e.printStackTrace();
         }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java

@@ -215,10 +215,10 @@ public class BasicTemplateServiceImpl extends ServiceImpl<BasicTemplateMapper, B
         pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                 .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                 .add(String.format("%02d", nowTime.getDayOfMonth()));
-        pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+        pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
         String pdfDirName = pdfStringJoiner.toString();
-        String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+        String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
         // 签到表
         if (ClassifyEnum.SIGN.equals(classifyEnum)) {

+ 2 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -17,6 +17,7 @@ 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;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -567,7 +568,7 @@ public class DataSyncServiceImpl implements DataSyncService {
      */
     private String getTempDir(SyncFileTypeEnum type) {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
-        return dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
+        return SystemConstant.getUserDir() + File.separator + "upload-temp" + File.separator + type.name().toLowerCase() + File.separator + System.currentTimeMillis();
     }
 
     /**

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DownloadServiceImpl.java

@@ -112,7 +112,7 @@ public class DownloadServiceImpl implements DownloadService {
 
         // 收集处理试卷和题卡
         // 本地存储目录
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        String rootPath = SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
         List<File> fileList = new ArrayList<>();
 
         List<String> unexposedPaperTypes = Arrays.asList(unexposedPaperType.split(","));

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

@@ -286,7 +286,7 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
     public void downloadFiles(HttpServletResponse response, ArraysParams arraysParams) throws Exception {
         // 路径规则:download-temp/{time}/{schoolId}/{courseCode}-{couseName}/{paperNumber}/{fileName}
         long time = System.nanoTime();
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+        String rootPath = SystemConstant.getUserDir() + File.separator + time;
 
         Long[] cardIds = arraysParams.getIds();
         // 根据题卡取命题任务

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

@@ -990,9 +990,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<JSONObject> jsonObjectList = JSONObject.parseArray(paperAttachmentIds, JSONObject.class);
         // 本地保存目录
         Long time = System.currentTimeMillis();
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+        String rootPath = SystemConstant.getUserDir() + File.separator + time;
         StringJoiner dirPath = new StringJoiner("")
-                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                .add(SystemConstant.getUserDir()).add(File.separator)
                 .add(String.valueOf(time)).add(File.separator)
                 .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                 .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
@@ -1011,7 +1011,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     throw ExceptionResultEnum.ERROR.exception("附件数据异常");
                 }
                 StringJoiner paperPath = new StringJoiner("")
-                        .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                        .add(SystemConstant.getUserDir()).add(File.separator)
                         .add(String.valueOf(time)).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)

+ 6 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -364,13 +364,13 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
                 if (!oss) {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
-                stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(TXT_PREFIX);
+                stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(TXT_PREFIX);
 
                 JSONObject jsonObject = new JSONObject();
 
@@ -393,7 +393,8 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                     jsonObject.put(SystemConstant.PATH, dirName);
                 } else {//上传至服务器
-                    fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
+//                    TODO 上传至服务器待完善
+//                    fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                     jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
                 }
@@ -492,12 +493,12 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 Long orgId = sysUser.getOrgId();
                 SysOrg userSecondaryOrg = sysOrgService.findCollegeLevelOrgByOrgId(orgId);
                 Long userSecondaryOrgId = userSecondaryOrg.getId();
-                if (!courseSecondaryOrgId.equals(userSecondaryOrgId)){
+                if (!courseSecondaryOrgId.equals(userSecondaryOrgId)) {
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户所在学院为【" + userSecondaryOrg.getName() +
                             "】,和课程所在学院【" + sysOrgService.getById(courseSecondaryOrgId).getName() + "】不一致");
                 }
                 String dbRealName = sysUser.getRealName();
-                if (!dbRealName.equals(key[1])){
+                if (!dbRealName.equals(key[1])) {
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户姓名【" + key[1] +
                             "】,与系统用户姓名【" + dbRealName + "】不一致 请检查excel数据");
                 }

+ 62 - 55
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -184,18 +184,18 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             File htmlFile = null;
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
-                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                if (filePath.contains(SystemConstant.getUserDir())) {
                     url = filePath;
                 } else {
-                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
+                    url = SystemConstant.getUserDir() + File.separator + filePath;
                 }
                 htmlFile = new File(url);
             } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.PATH);
-                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                if (filePath.contains(SystemConstant.getUserDir())) {
                     url = filePath;
                 } else {
-                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
+                    url = SystemConstant.getUserDir() + File.separator + filePath;
                 }
                 UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 //                htmlFile = ossUtil.ossDownload(filePath, url);
@@ -211,11 +211,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
-            pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+            pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
             String pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+            String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
             File pdfFile = new File(destUrl);
             if (!pdfFile.exists()) {
@@ -304,11 +304,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
-            pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+            pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
             String pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+            String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
             createPrintPdfUtil.createSignPdf(pdfFillDto, destUrl);
 
@@ -381,7 +381,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -389,7 +389,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
             JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.HTML_PREFIX);
+            stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.HTML_PREFIX);
             String fileMd5 = null;
             if (oss) {//上传至oss
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
@@ -397,7 +397,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.HTML_PATH, dirName);
-                String url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName;
+                String url = SystemConstant.getUserDir() + File.separator + dirName;
 //                File localHtmlFile = ossUtil.ossDownload(dirName, url);
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
@@ -405,10 +405,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
-                pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+                pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
                 String pdfDirName = pdfStringJoiner.toString();
-                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+                String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
@@ -490,7 +490,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -498,7 +498,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
             JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.HTML_PREFIX);
+            stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.HTML_PREFIX);
             String fileMd5 = null;
 
             if (oss) {//上传至oss
@@ -506,17 +506,17 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
-                String url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName;
+                String url = SystemConstant.getUserDir() + File.separator + dirName;
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
                 pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
                 pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
-                pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+                pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
                 String pdfDirName = pdfStringJoiner.toString();
-                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+                String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A4);
@@ -595,26 +595,30 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             int temp = file.getOriginalFilename().lastIndexOf(".");
             String fileName = file.getOriginalFilename().substring(0, temp);
             String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
-            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
-            if (Objects.nonNull(format)) {
-                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
-                if (count == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
-                }
-            }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
-            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
-                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
-            }
+
+            //TODO attachment验证待完善
+//            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
+//            if (Objects.nonNull(format)) {
+//                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
+//                if (count == 0) {
+//                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
+//                }
+//            }
+//            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+//            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
+//                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
+//            }
             long size = file.getSize();
             BigDecimal b = new BigDecimal(size);
             BigDecimal num = new BigDecimal(1024);
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
-            if (b.doubleValue() > attachmentSize) {
-                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
-            }
+
+//            TODO attachment验证待完善
+//            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+//            if (b.doubleValue() > attachmentSize) {
+//                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
+//            }
             log.info("fileName:{}", fileName);
             log.info("format:{}", format);
             log.info("size:{}", b);
@@ -629,7 +633,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
@@ -642,14 +646,15 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
             JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(format);
             String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-            if (oss) {//上传至oss\
+            if (oss) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                fileStoreUtil.localUpload(dirName, file.getInputStream(), md5, LocalCatalogEnum.LOCAL_FILE);
+//                TODO 上传至服务器待完善
+//                fileStoreUtil.localUpload(dirName, file.getInputStream(), md5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, dirName);
             }
@@ -882,20 +887,21 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
         if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
             for (TBTask tbTask : tbTasks) {
-                if (tbTask.getResetCount() < dictionaryConfig.sysDomain().getAutoCreatePdfResetMaxCount()) {
-                    Map<String, Object> map = new HashMap<>();
+                //TODO 重新生成pdf次数待完善
+//                if (tbTask.getResetCount() < dictionaryConfig.sysDomain().getAutoCreatePdfResetMaxCount()) {
+                Map<String, Object> map = new HashMap<>();
 //                    tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
-                    if (Objects.nonNull(tbTask.getRemark())) {
-                        JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
-                        ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
-                        map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
-                    }
-                    map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
-                    map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
-//                    asyncCreatePdfTempleteService.createPdf(map, null);
-                    MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
-                    redisUtil.sendMessage(mqDto.getTopic(), mqDto);
+                if (Objects.nonNull(tbTask.getRemark())) {
+                    JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
+                    ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
+                    map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
                 }
+                map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
+                map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
+//                    asyncCreatePdfTempleteService.createPdf(map, null);
+                MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
+                redisUtil.sendMessage(mqDto.getTopic(), mqDto);
+//                }
             }
         }
     }
@@ -1288,20 +1294,21 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()))
-                    .add(File.separator).add(SystemConstant.getUuid()).add(".").add(SystemConstant.XLSX);
+                    .add(File.separator).add(SystemConstant.getNanoId()).add(".").add(SystemConstant.XLSX);
             jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
             if (oss) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
-                fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
+//                TODO 上传至服务器待完善
+//                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);
@@ -1368,11 +1375,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
-            pdfStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+            pdfStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
 
             String pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+            String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
             createPrintPdfUtil.createPackagePdf(pdfPackageDto, destUrl);
 
@@ -1436,7 +1443,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             String pdfDirName = pdfFile.getPath();
 
-            String sysConfigPath = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator;
+            String sysConfigPath = SystemConstant.getUserDir() + File.separator;
             String pdfDirNameStr = pdfDirName.replace("\\", "/").replaceAll(sysConfigPath.replace("\\", "/"), "");
 
             byte[] data = ByteArray.fromFile(pdfFile).value();

+ 30 - 29
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
-import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.dto.ClazzContentDto;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
@@ -28,7 +27,10 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.service.SysOrgService;
-import com.qmth.teachcloud.common.util.*;
+import com.qmth.teachcloud.common.util.JacksonUtil;
+import com.qmth.teachcloud.common.util.RedisUtil;
+import com.qmth.teachcloud.common.util.Result;
+import com.qmth.teachcloud.common.util.ResultUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -80,7 +82,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
     }
 
 
-
     @Override
     @Transactional
     public void importJoinData(List<TCStatisticsTemp> tcStatisticsTempList) {
@@ -97,17 +98,17 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 // 导入的班级
                 Set<Long> clazzIdSet = Arrays.stream(clazzIds.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
                 // 根据课程和考试查到的命题计划数据
-                List<ExamTaskPlanStatisticDto> examTaskPlanStatisticDtoList = this.baseMapper.findByExamIdCourseCode(examId,courseCode);
+                List<ExamTaskPlanStatisticDto> examTaskPlanStatisticDtoList = this.baseMapper.findByExamIdCourseCode(examId, courseCode);
 
                 // 印刷计划备份数量map
-                Map<Long,Integer> backupCountMap = new HashMap<>();
+                Map<Long, Integer> backupCountMap = new HashMap<>();
                 int totalStudentCount = 0;
-                boolean printSumView= true;
+                boolean printSumView = true;
                 for (Long clazzId : clazzIdSet) {
                     int studentCount = 0;
                     // 匹配到班级的所有命题计划
                     List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
-                        if (!SystemConstant.strNotNull(e.getClazzIds())){
+                        if (!SystemConstant.strNotNull(e.getClazzIds())) {
                             return false;
                         }
                         Set<Long> ebcClazzIdSet = Arrays.stream(e.getClazzIds().split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
@@ -136,16 +137,16 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                         clazzContent.setStatus(ClazzContentEnum.FINISH);
                         studentCount = examStudentService.count(new QueryWrapper<ExamStudent>()
                                 .lambda()
-                                .eq(ExamStudent::getClazzId,clazzId)
-                                .eq(ExamStudent::getExamDetailCourseId,printMatchClazz.getExamDetailCourseId()));
+                                .eq(ExamStudent::getClazzId, clazzId)
+                                .eq(ExamStudent::getExamDetailCourseId, printMatchClazz.getExamDetailCourseId()));
                         StringBuilder printCount = new StringBuilder(String.valueOf(studentCount));
                         // 如果是按照考场备份再找备份数量
-                        if (BackupMethodEnum.ROOM.equals(printMatchClazz.getBackupMethod())){
+                        if (BackupMethodEnum.ROOM.equals(printMatchClazz.getBackupMethod())) {
                             // 如果是新的考场再加
-                            if (!backupCountMap.containsKey(examDetailId)){
+                            if (!backupCountMap.containsKey(examDetailId)) {
                                 int backupCount = printMatchClazz.getBackupCount();
-                                backupCountMap.put(examDetailId,backupCount);
-                                if (backupCount > 0){
+                                backupCountMap.put(examDetailId, backupCount);
+                                if (backupCount > 0) {
                                     printCount.append(" + ").append(backupCount);
                                 }
                             }
@@ -166,11 +167,11 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                                     .eq(ExamStudent::getExamDetailCourseId, matchClazz.getExamDetailCourseId()));
                             StringBuilder printCount = new StringBuilder(String.valueOf(studentCount));
                             // 如果是按照考场备份再找备份数量
-                            if (BackupMethodEnum.ROOM.equals(matchClazz.getBackupMethod())){
+                            if (BackupMethodEnum.ROOM.equals(matchClazz.getBackupMethod())) {
                                 // 如果是新的考场再加
-                                if (!backupCountMap.containsKey(examDetailId)){
+                                if (!backupCountMap.containsKey(examDetailId)) {
                                     int backupCount = matchClazz.getBackupCount();
-                                    backupCountMap.put(examDetailId,backupCount);
+                                    backupCountMap.put(examDetailId, backupCount);
                                     printCount.append(" + ").append(backupCount);
                                 }
                             }
@@ -194,11 +195,11 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 tcStatistics.setCourseCode(tcStatisticsTemp.getCourseCode());
                 tcStatistics.setTeacherName(tcStatisticsTemp.getTeacherName());
                 tcStatistics.setClazzIds(clazzIds);
-                tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds,","));
+                tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds, ","));
                 tcStatistics.setClazzContent(JSON.toJSONString(clazzContentDtoList));
                 tcStatistics.setStatus(status);
                 tcStatistics.insertInfo(requestUserId);
-                if (StatisticsStatusEnum.FINISH.equals(status)){
+                if (StatisticsStatusEnum.FINISH.equals(status)) {
                     ClazzContentDto cell = clazzContentDtoList.get(0);
                     tcStatistics.setPrintPlanId(cell.getExamPrintPlanId());
                     tcStatistics.setPaperNumber(cell.getPaperNumber());
@@ -210,10 +211,10 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                     backupTotal = backupTotal + backupCount;
                 }
                 String printSum = String.valueOf(totalStudentCount);
-                if (backupTotal > 0){
+                if (backupTotal > 0) {
                     printSum = printSum + " + " + backupTotal;
                 }
-                if (printSumView){
+                if (printSumView) {
                     tcStatistics.setPrintSum(printSum);
                 }
                 insertTCStatisticsList.add(tcStatistics);
@@ -249,24 +250,24 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
 
     @Override
     public IPage<TCStatisticResult> findExamTaskPrintStatistic(Long semesterId, Long examId, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId, Integer pageNumber, Integer pageSize) {
-        return tcStatisticsMapper.findExamTaskPrintStatistic(new Page<>(pageNumber,pageSize),semesterId, examId, collegeId, teachingRoomId, status, courseName, teacherName, userId);
+        return tcStatisticsMapper.findExamTaskPrintStatistic(new Page<>(pageNumber, pageSize), semesterId, examId, collegeId, teachingRoomId, status, courseName, teacherName, userId);
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void refreshTCStatisticByExamIdAndRequestUser(Long examId, SysUser requestUser) {
-        Long requestUserId =  requestUser.getId();
-        List<TCStatistics> tcStatisticsList = this.list(new QueryWrapper<TCStatistics>().lambda().eq(TCStatistics::getExamId,examId).eq(TCStatistics::getCreateId,requestUserId));
-        if (tcStatisticsList != null && tcStatisticsList.size() > 0){
+        Long requestUserId = requestUser.getId();
+        List<TCStatistics> tcStatisticsList = this.list(new QueryWrapper<TCStatistics>().lambda().eq(TCStatistics::getExamId, examId).eq(TCStatistics::getCreateId, requestUserId));
+        if (tcStatisticsList != null && tcStatisticsList.size() > 0) {
             String key = SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs((examId + String.valueOf(requestUserId)).hashCode());
             boolean lock = redisUtil.lock(key, SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT);
-            if (!lock){
+            if (!lock) {
                 throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
             }
             try {
                 // 删除该用户现在的本次考试的统计数据
-                this.removeImportData(examId,requestUserId);
-                List<TCStatisticsTemp> tcStatisticsTempList = tcStatisticsList.stream().flatMap(e ->{
+                this.removeImportData(examId, requestUserId);
+                List<TCStatisticsTemp> tcStatisticsTempList = tcStatisticsList.stream().flatMap(e -> {
                     TCStatisticsTemp tcStatisticsTemp = new TCStatisticsTemp(
                             examId,
                             e.getCollegeId(),
@@ -283,7 +284,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                     return Stream.of(tcStatisticsTemp);
                 }).collect(Collectors.toList());
                 this.importJoinData(tcStatisticsTempList);
-            }catch (Exception e){
+            } catch (Exception e) {
                 log.error(SystemConstant.LOG_ERROR, e);
             } finally {
                 redisUtil.releaseLock(key);
@@ -372,7 +373,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 tcStatisticsTempQueryWrapper.lambda().eq(TCStatisticsTemp::getBatchNo, batchNo);
                 tcStatisticsTempService.remove(tcStatisticsTempQueryWrapper);
 
-                String batchNoNew = SystemConstant.getUuid();
+                String batchNoNew = SystemConstant.getNanoId();
                 Set<Long> orgIds = this.joinDataGetOrgIds(sysUser, batchNoNew, tcStatisticsTempList);
                 List<TCStatisticsDto> tcStatisticsDtoList = this.findByBatchNoCountJoin(sysUser.getSchoolId(), batchNoNew, orgIds);
                 if (Objects.nonNull(tcStatisticsDtoList) && tcStatisticsDtoList.size() > 0) {

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

@@ -124,10 +124,10 @@ 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("");
-            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
 
-            String hostUrl = SystemConstant.getLocalFileHostByUserId(dictionaryConfig.fssLocalFileDomain().getServer(), userId);
+            String hostUrl = SystemConstant.getLocalFileHostByUserId(SystemConstant.getUserDir(), userId);
 
             if (needSync || Objects.isNull(tSyncExamStudentScore.getLocalSheetUrls()) || Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
                 JSONArray jsonArray = JSONArray.parseArray(tSyncExamStudentScore.getSheetUrls());
@@ -300,14 +300,14 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
         try {
             if (Objects.nonNull(tSyncExamStudentScore.getTrajectoryFileList())) {
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
-                        .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
+                        .add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.ZIP_PREFIX);
                 zipFile = new File(stringJoiner.toString() + dirZipName.toString());
                 if (!zipFile.exists()) {
                     zipFile.getParentFile().mkdirs();

+ 6 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java

@@ -9,7 +9,6 @@ import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
@@ -20,7 +19,6 @@ 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.codec.digest.DigestUtils;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -86,14 +84,14 @@ public abstract class AsyncExportTaskTemplete {
                 if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
-                        .add(File.separator).add(SystemConstant.getUuid()).add(TXT_PREFIX);
+                        .add(File.separator).add(SystemConstant.getNanoId()).add(TXT_PREFIX);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }
             String path = (String) jsonObject.get(SystemConstant.PATH);
@@ -116,18 +114,19 @@ public abstract class AsyncExportTaskTemplete {
             StringJoiner stringJoiner = new StringJoiner("");
             if (Objects.equals(type, SystemConstant.OSS)) {//上传至oss
                 path = path.substring(0, path.lastIndexOf("/") + 1);
-                stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
+                stringJoiner.add(path).add(SystemConstant.getNanoId()).add(TXT_PREFIX).toString();
 //                ossUtil.ossUpload(stringJoiner.toString(), inputStream, null);
                 fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
                 path = path.substring(0, path.lastIndexOf("/") + 1);
-                stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
+                stringJoiner.add(path).add(SystemConstant.getNanoId()).add(TXT_PREFIX).toString();
                 File finalFile = new File(stringJoiner.toString());
                 if (!finalFile.exists()) {
                     finalFile.getParentFile().mkdirs();
                     finalFile.createNewFile();
                 }
-                fileStoreUtil.copyInputStreamToFile(inputStream,finalFile,DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
+                //TODO 上传至服务器待完善
+//                fileStoreUtil.copyInputStreamToFile(inputStream,finalFile,DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
             }
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());

+ 10 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -8,7 +8,10 @@ import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.enums.TaskResultEnum;
+import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
@@ -102,14 +105,14 @@ public abstract class AsyncImportTaskTemplete {
                 if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
-                        .add(File.separator).add(SystemConstant.getUuid()).add(TXT_PREFIX);
+                        .add(File.separator).add(SystemConstant.getNanoId()).add(TXT_PREFIX);
                 if (dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
@@ -140,14 +143,15 @@ public abstract class AsyncImportTaskTemplete {
             }
 
             path = path.substring(0, path.lastIndexOf("/") + 1);
-            stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
+            stringJoiner.add(path).add(SystemConstant.getNanoId()).add(TXT_PREFIX).toString();
             if (Objects.equals(type, SystemConstant.OSS)) {//上传至oss
-                stringJoiner.add(path).add(SystemConstant.getUuid()).add(TXT_PREFIX).toString();
+                stringJoiner.add(path).add(SystemConstant.getNanoId()).add(TXT_PREFIX).toString();
                 FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
                 fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
                 FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
-                fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
+//                TODO 上传至服务器待完善
+//                fileStoreUtil.copyInputStreamToFile(inputStream, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
             }
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java

@@ -9,7 +9,6 @@ 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.SysConfig;
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
@@ -94,7 +93,7 @@ public abstract class AsyncPushTaskTemplate {
             if (oss) {
                 json.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 json.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
@@ -102,7 +101,7 @@ public abstract class AsyncPushTaskTemplate {
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()))
-                    .add(File.separator).add(SystemConstant.getUuid()).add(TXT_PREFIX);
+                    .add(File.separator).add(SystemConstant.getNanoId()).add(TXT_PREFIX);
 
             String path = stringJoiner.toString().replaceAll("\\\\","/");
             String type = (String) json.get(SystemConstant.TYPE);
@@ -111,7 +110,8 @@ public abstract class AsyncPushTaskTemplate {
             if (Objects.equals(type, SystemConstant.OSS)) {
                 fileStoreUtil.ossUpload(path, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
-                fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
+//                TODO 上传至服务器待完善
+//                fileStoreUtil.copyInputStreamToFile(inputStream,new File(stringJoiner.toString()),DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), LocalCatalogEnum.LOCAL_FILE);
             }
             json.put(SystemConstant.PATH, path);
             json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);

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

@@ -677,7 +677,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 .add(String.format("%02d", nowTime.getDayOfMonth()));
 
         JSONObject jsonObject = new JSONObject();
-        stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(".").add(SystemConstant.XLSX);
+        stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(".").add(SystemConstant.XLSX);
 
         String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
 
@@ -687,8 +687,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             jsonObject.put(SystemConstant.PATH, dirName);
         } else {
-            dirName = (dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + dirName).replaceAll("\\\\", "/");
-            fileStoreUtil.copyInputStreamToFile(in, new File(stringJoiner.toString()), DigestUtils.md5Hex(new ByteArrayInputStream(outputStream.toByteArray())), LocalCatalogEnum.LOCAL_FILE);
+            dirName = (SystemConstant.getUserDir() + File.separator + dirName).replaceAll("\\\\", "/");
+//            TODO 上传至服务器待完善
+//            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,20 +928,20 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             if (!CollectionUtils.isEmpty(examDetailList)) {
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("")
-                        .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                        .add(SystemConstant.getUserDir()).add(File.separator);
                 StringJoiner dirName = new StringJoiner("")
                         .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
-                        .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
+                        .add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.ZIP_PREFIX);
                 zipFile = new File(stringJoiner.toString() + dirName.toString());
                 if (!zipFile.getParentFile().exists()) {
                     zipFile.getParentFile().mkdirs();
                 }
 
                 Long time = System.currentTimeMillis();
-                zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+                zipLocalRootPath = SystemConstant.getUserDir() + File.separator + time;
                 sourceFileList = new ArrayList<>(examDetailList.size() * 5);
                 for (ExamDetailPdfDownloadDto e : examDetailList) {
                     StringJoiner dirPath = new StringJoiner("")
@@ -1039,7 +1040,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         File file = null;
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         StringJoiner stringJoinerPdf = new StringJoiner("")
-                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                .add(SystemConstant.getUserDir()).add(File.separator)
                 .add(pathName);
         if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
             file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PDF_PATH), stringJoinerPdf.toString(), UploadFileEnum.PDF.getFssType());
@@ -1069,7 +1070,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
             UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
             StringJoiner stringJoinerPdf = new StringJoiner("")
-                    .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                    .add(SystemConstant.getUserDir()).add(File.separator)
                     .add(pathName);
             if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
                 file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), stringJoinerPdf.toString(), uploadFileEnum.getFssType());
@@ -1091,12 +1092,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         int count = 0;
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         LocalDateTime nowTime = LocalDateTime.now();
-        String zipJoiner = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator;
+        String zipJoiner = SystemConstant.getUserDir() + File.separator;
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
                 nowTime.getYear() + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getDayOfMonth()) +
-                File.separator + SystemConstant.getUuid() + SystemConstant.ZIP_PREFIX;
+                File.separator + SystemConstant.getNanoId() + SystemConstant.ZIP_PREFIX;
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         File zipFile = new File(zipJoiner + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
@@ -1107,7 +1108,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         boolean oss = dictionaryConfig.sysDomain().isOss();
 
         // 跟文件路径
-        String zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        String zipLocalRootPath = SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
         Long[] ids = (Long[]) map.get("ids");
         for (Long id : ids) {
             ExamTask examTask = examTaskService.getById(id);
@@ -1266,7 +1267,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             BasicSchool basicSchool = commonCacheService.schoolCache(tbTask.getSchoolId());
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner zipJoiner = new StringJoiner("")
-                    .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    .add(SystemConstant.getUserDir()).add(File.separator);
             StringJoiner dirName = new StringJoiner("")
                     .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -1278,7 +1279,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
             // 根文件路径
             Long time = System.currentTimeMillis();
-            zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+            zipLocalRootPath = SystemConstant.getUserDir() + File.separator + time;
             boolean oss = dictionaryConfig.sysDomain().isOss();
 
             List<ExamTaskDetailDto> examTasks = (List<ExamTaskDetailDto>) map.get("examTasks");
@@ -1286,7 +1287,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 ExamTaskDetailPdfDownloadDto examTaskDetailPdfDownloadDto = examTaskDetailService.findPdfDownload(Long.valueOf(examTask.getId()));
 
                 StringJoiner dirPath = new StringJoiner("")
-                        .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                        .add(SystemConstant.getUserDir()).add(File.separator)
                         .add(String.valueOf(time)).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
@@ -1329,7 +1330,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         }
                         MakeMethodEnum makeMethodEnum = examCard.getMakeMethod();
 
-                        String cardHtmlPath = dirPath.toString() + "题卡" + "-" +paperMap.get("name") + SystemConstant.HTML_PREFIX;
+                        String cardHtmlPath = dirPath.toString() + "题卡" + "-" + paperMap.get("name") + SystemConstant.HTML_PREFIX;
                         String cardPdfPath = dirPath.toString() + "题卡" + "-" + paperMap.get("name") + SystemConstant.PDF_PREFIX;
                         // 通用题卡
                         ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
@@ -1686,7 +1687,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             Map<String, SysOrg> teachingRoomMap = new HashMap<>();
             Map<String, BasicCourse> courseMap = new HashMap<>();
             Map<String, DictionaryResult> clazzMap = new HashMap<>();
-            String batchNo = SystemConstant.getUuid();
+            String batchNo = SystemConstant.getNanoId();
             List<TCStatisticsTemp> tcStatisticsImportTempList = new ArrayList<>();
 
             for (int i = 0; i < finalExcelList.size(); i++) {
@@ -1806,13 +1807,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 }.getType());
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).add(File.separator)
                         .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
-                        .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.ZIP_PREFIX);
+                        .add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.ZIP_PREFIX);
                 zipFile = new File(stringJoiner.toString() + dirZipName.toString());
                 sourceFiles = new LinkedList<>();
                 List<TSyncExamStudentScore> updateTSyncExamStudentScoreList = new ArrayList<>();
@@ -1922,12 +1923,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
 
         LocalDateTime nowTime = LocalDateTime.now();
-        String zipJoiner = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator;
+        String zipJoiner = SystemConstant.getUserDir() + File.separator;
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
                 nowTime.getYear() + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getDayOfMonth()) +
-                File.separator + SystemConstant.getUuid() + SystemConstant.ZIP_PREFIX;
+                File.separator + SystemConstant.getNanoId() + SystemConstant.ZIP_PREFIX;
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         File zipFile = new File(zipJoiner + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
@@ -1936,7 +1937,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         }
 
         // 根文件路径
-        String zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        String zipLocalRootPath = SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
 
         ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);
         // 导出文件excel

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -1123,7 +1123,7 @@ public class CreatePdfUtil {
                                           BasicExamRule basicExamRule,
                                           List<PdfDto> mergePdfDeleteList) throws Exception {
         boolean oss = dictionaryConfig.sysDomain().isOss();
-        StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+        StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.getUserDir()).add(File.separator);
         // oss上只认"/",windows生成的路径分隔符全部替换为"/"
         File localA4PdfFile = null, localPaperPdfFile = null, localA3PdfCardFile = null;
         BasicAttachment basicAttachment = null;

+ 4 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java

@@ -98,10 +98,10 @@ public class FreemarkerUtil {
 
             Configuration configuration = new Configuration(Configuration.VERSION_2_3_29);
             File templates = null;
-            if (ftlPath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+            if (ftlPath.contains(SystemConstant.getUserDir())) {
                 templates = ResourceUtils.getFile(ftlPath);
             } else {
-                templates = ResourceUtils.getFile(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + ftlPath);
+                templates = ResourceUtils.getFile(SystemConstant.getUserDir() + File.separator + ftlPath);
             }
             configuration.setDirectoryForTemplateLoading(templates);
             // step1 加载模版文件
@@ -110,13 +110,13 @@ public class FreemarkerUtil {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
-            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             StringJoiner htmlStringJoiner = new StringJoiner("");
             htmlStringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator);
             htmlStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
-            htmlStringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.HTML_PREFIX);
+            htmlStringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.HTML_PREFIX);
             File htmlFile = new File(stringJoiner.toString() + htmlStringJoiner.toString());
             if (!htmlFile.getParentFile().exists()) {
                 htmlFile.getParentFile().mkdirs();

+ 2 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java

@@ -35,13 +35,11 @@ import java.util.stream.Stream;
  */
 @Component
 public class HtmlToJpgUtil {
+
     @Lazy
     @Resource
     PrintCommonService printCommonService;
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     private final static Logger log = LoggerFactory.getLogger(HtmlToJpgUtil.class);
 
     /**
@@ -53,7 +51,7 @@ public class HtmlToJpgUtil {
      */
     public List<BasicAttachment> convertHtmlToJpg(String cardTitle, String htmlContent, PageSizeEnum pageSizeEnum) throws Exception {
         // 本地存储目录
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        String rootPath = SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
         // html临时路径
         String htmlPath = rootPath + File.separator + "html" + File.separator + cardTitle + SystemConstant.HTML_PREFIX;
         // pdf临时路径

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

@@ -59,13 +59,13 @@ public class PdfUtil {
                 if (Objects.isNull(outputPath)) {
                     DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
                     LocalDateTime nowTime = LocalDateTime.now();
-                    StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+                    StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.getUserDir()).add(File.separator);
                     dirName = new StringJoiner("")
                             .add(UploadFileEnum.PDF.getTitle()).add(File.separator)
                             .add(String.valueOf(nowTime.getYear())).add(File.separator)
                             .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                             .add(String.format("%02d", nowTime.getDayOfMonth()))
-                            .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+                            .add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
                     outputPath = stringJoiner.toString() + dirName.toString();
                 }
                 copy = new PdfSmartCopy(document, new FileOutputStream(outputPath));
@@ -308,12 +308,12 @@ public class PdfUtil {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         LocalDateTime nowTime = LocalDateTime.now();
         StringJoiner stringJoiner = new StringJoiner("");
-        stringJoiner.add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator)
+        stringJoiner.add(SystemConstant.getUserDir()).add(File.separator)
                 .add(UploadFileEnum.PAPER.getTitle()).add(File.separator)
                 .add(String.valueOf(nowTime.getYear())).add(File.separator)
                 .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                 .add(String.format("%02d", nowTime.getDayOfMonth()))
-                .add(File.separator).add(SystemConstant.getUuid()).add(SystemConstant.PDF_PREFIX);
+                .add(File.separator).add(SystemConstant.getNanoId()).add(SystemConstant.PDF_PREFIX);
         String outputPath = stringJoiner.toString();
         PdfReader reader = null;
         PdfStamper stamper = null;

+ 1 - 0
distributed-print/pom.xml

@@ -44,6 +44,7 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.6.2</version>
                 <configuration>
                     <includeSystemScope>true</includeSystemScope>
                 </configuration>

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCampusController.java

@@ -26,7 +26,7 @@ import javax.validation.Valid;
  */
 @Api(tags = "校区管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/campus")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/campus")
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicCampusController {
     @Resource

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCardRuleController.java

@@ -30,7 +30,7 @@ import java.util.List;
  */
 @Api(tags = "题卡规则Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/card_rule")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/card_rule")
 @Validated
 public class BasicCardRuleController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java

@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "班级管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/clazz")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/clazz")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicClazzController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCollegeController.java

@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "学生学院管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/college")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/college")
 public class BasicCollegeController {
     @Resource
     private BasicCollegeService basicCollegeService;

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java

@@ -44,7 +44,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "课程Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/course")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/course")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicCourseController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java

@@ -24,7 +24,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "考试管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/exam")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/exam")
 public class BasicExamController {
     @Resource
     private BasicExamService basicExamService;

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java

@@ -4,6 +4,7 @@ package com.qmth.distributed.print.api;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.service.BasicExamRuleService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
@@ -24,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @Api(tags = "考务规则Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/exam_rule")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/exam_rule")
 public class BasicExamRuleController {
 
     @Autowired

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "专业管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/major")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/major")
 public class BasicMajorController {
     @Resource
     private BasicMajorService basicMajorService;

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMessageController.java

@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "短信发送日志Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/message")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/message")
 @Validated
 public class BasicMessageController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicPrintConfigController.java

@@ -29,7 +29,7 @@ import java.util.List;
  */
 @Api(tags = "印品配置Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/print_config")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/print_config")
 @Validated
 public class BasicPrintConfigController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java

@@ -28,7 +28,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "学期管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/semester")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/semester")
 public class BasicSemesterController {
     @Resource
     private BasicSemesterService basicSemesterService;

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java

@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "学生管理controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/student")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/student")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicStudentController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/BasicTemplateController.java

@@ -30,7 +30,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "通用模板Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/template")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/template")
 @Validated
 public class BasicTemplateController {
 

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -9,6 +9,7 @@ import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.params.ClientLoginParam;
 import com.qmth.distributed.print.business.service.ClientService;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.AppSourceEnum;
@@ -35,7 +36,7 @@ import java.util.Objects;
  */
 @Api(tags = "客户端Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.client}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_CLIENT)
 //@Validated
 public class ClientController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/DownloadController.java

@@ -27,7 +27,7 @@ import java.util.Objects;
  */
 @Api(tags = "系统管理-下载管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}/download")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DATA + "/download")
 public class DownloadController {
 
     @Resource

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/EnumsController.java

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.enums.*;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -21,7 +22,7 @@ import java.util.List;
  */
 @Api(tags = "枚举类型Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/get_enums")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON + "/get_enums")
 public class EnumsController {
 
     /**

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java

@@ -36,7 +36,7 @@ import java.util.List;
  */
 @Api(tags = "题卡Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/card")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/card")
 @Validated
 public class ExamCardController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "考务数据管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print")
 @Validated
 public class ExamDetailController {
     @Resource

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java

@@ -32,7 +32,7 @@ import java.util.Map;
  */
 @Api(tags = "试卷结构Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/structure")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/structure")
 public class ExamPaperStructureController {
 
     @Resource

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -53,7 +53,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "印刷计划管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print")
 @Validated
 public class ExamPrintPlanController {
     @Resource

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -26,7 +26,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "印刷计划管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print_sync")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print_sync")
 @Validated
 public class ExamPrintPlanSyncController {
     @Resource

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -56,7 +56,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "命题任务Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/task")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/task")
 @Validated
 public class ExamTaskController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java

@@ -35,7 +35,7 @@ import java.io.IOException;
  */
 @Api(tags = "分析批次管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/batch")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/batch")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeBatchController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java

@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "分析批次课程管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/batch/paper")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/batch/paper")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeBatchPaperController {

+ 1 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/GradeModuleEvaluationController.java

@@ -1,7 +1,5 @@
 package com.qmth.distributed.print.api;
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleEvaluationParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeModuleEvaluationResult;
@@ -31,7 +29,7 @@ import javax.validation.Valid;
  */
 @Api(tags = "分析课程维度模块评价管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/module/evaluation")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/module/evaluation")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeModuleEvaluationController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperController.java

@@ -31,7 +31,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "分析课程(试卷)管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperDimensionController.java

@@ -31,7 +31,7 @@ import java.io.IOException;
  */
 @Api(tags = "分析课程维度管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper/dimension")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper/dimension")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperDimensionController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperStructController.java

@@ -30,7 +30,7 @@ import java.io.IOException;
  */
 @Api(tags = "分析课程试卷结构管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper/struct")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper/struct")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperStructController {

+ 3 - 7
distributed-print/src/main/java/com/qmth/distributed/print/api/MenuCustomController.java

@@ -37,7 +37,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "菜单权限修改Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.menu}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_MENU)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class MenuCustomController {
 
@@ -124,12 +124,8 @@ public class MenuCustomController {
         //清缓存
         if (!CollectionUtils.isEmpty(roleSetIds)) {
             for (Long l : roleSetIds) {
-                if (Objects.isNull(commonCacheService.updateRoleCache(l))) {
-                    commonCacheService.removeRoleCache(l);
-                }
-                if (CollectionUtils.isEmpty(commonCacheService.updateRolePrivilegeCache(l))) {
-                    commonCacheService.removeRolePrivilegeCache(l);
-                }
+                commonCacheService.updateRoleCache(l);
+                commonCacheService.updateRolePrivilegeCache(l);
                 //绑定该角色的用户都需要清除鉴权缓存
                 List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(l);
                 for (SysUserRole s : sysUserRoleList) {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/NotifyApiController.java

@@ -45,7 +45,7 @@ import java.util.*;
  */
 @Api(tags = "回调接口Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.notify}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_NOTIFY)
 @Validated
 public class NotifyApiController {
     private final static Logger log = LoggerFactory.getLogger(NotifyApiController.class);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/OpenApiController.java

@@ -40,7 +40,7 @@ import java.util.Optional;
  */
 @Api(tags = "知学知考开放接口Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.open}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
 @Validated
 public class OpenApiController {
     private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SsoController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.SsoService;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
@@ -29,7 +30,7 @@ import java.util.Objects;
  */
 @Api(tags = "单点登录Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/sso")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_EXAM + "/sso")
 public class SsoController {
 
     @Autowired

+ 4 - 3
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -51,7 +51,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "系统Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON)
 public class SysController {
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
 
@@ -419,7 +419,7 @@ public class SysController {
             SysConfig sysConfig = commonCacheService.addSysConfigCache(basicSchool.getId(), SystemConstant.ACCOUNT_SMS_VERIFY);
             Map<String, Object> map = new HashMap<>();
             if (Objects.nonNull(basicSchool.getLogo()) && (!basicSchool.getLogo().startsWith("http") || !basicSchool.getLogo().startsWith("https"))) {
-                String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
+                String hostUrl = SystemConstant.getLocalFileHost(SystemConstant.getUserDir());
                 String filePath = SystemConstant.getLocalFilePath(hostUrl, basicSchool.getLogo());
                 String url = null;
                 if (filePath.startsWith("/")) {
@@ -436,7 +436,8 @@ public class SysController {
             return ResultUtil.ok(map);
         } else {
             Map<String, Object> map = new HashMap<>();
-            map.put(SystemConstant.LOGO, dictionaryConfig.sysDomain().getAdminLogoUrl());
+//            TODO 超管logo待完善
+//            map.put(SystemConstant.LOGO, dictionaryConfig.sysDomain().getAdminLogoUrl());
             map.put("name", null);
             map.put("accountSmsVerify", false);
             return ResultUtil.ok(map);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java

@@ -34,7 +34,7 @@ import java.util.Objects;
  */
 @Api(tags = "组织架构Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/org")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/org")
 public class SysOrgController {
 
     @Resource

+ 2 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysPrivilege;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.util.Result;
@@ -20,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @Api(tags = "菜单权限Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/privilege")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/privilege")
 public class SysPrivilegeController {
 
     @Autowired

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java

@@ -28,7 +28,7 @@ import java.security.NoSuchAlgorithmException;
  */
 @Api(tags = "角色Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/role")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/role")
 @Validated
 public class SysRoleController {
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java

@@ -45,7 +45,7 @@ import java.util.Objects;
  */
 @Api(tags = "用户Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/user")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SYS + "/user")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class SysUserController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TBSyncTaskController.java

@@ -32,7 +32,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "数据管理-任务管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}/sync")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_DATA + "/sync")
 @Validated
 public class TBSyncTaskController {
     private final static Logger log = LoggerFactory.getLogger(TBSyncTaskController.class);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java

@@ -45,7 +45,7 @@ import java.util.*;
  */
 @Api(tags = "数据管理-任务管理Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_DATA)
 @Validated
 public class TBTaskController {
     private final static Logger log = LoggerFactory.getLogger(TBTaskController.class);

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java

@@ -41,7 +41,7 @@ import java.util.Objects;
  */
 @Api(tags = "命题统计Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.statistics}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_STATISTICS)
 @Validated
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class TCStatisticsController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java

@@ -59,7 +59,7 @@ import java.util.stream.Collectors;
  */
 @Api(tags = "自定义流程Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.customFlow}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_CUSTOM_FLOW)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 public class TFCustomFlowController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -47,7 +47,7 @@ import java.util.*;
  */
 @Api(tags = "成绩归档Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sync}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYNC)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 public class TSyncExamStudentScoreController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java

@@ -27,7 +27,7 @@ import java.util.List;
  */
 @Api(tags = "教学班级Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/clazz")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/clazz")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachClazzController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java

@@ -31,7 +31,7 @@ import java.util.List;
  */
 @Api(tags = "教学课程Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/course")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/course")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachCourseController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java

@@ -34,7 +34,7 @@ import java.util.Set;
  */
 @Api(tags = "教学学生Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/student")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/student")
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachStudentController {

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -34,7 +34,7 @@ import javax.validation.constraints.Min;
  */
 @Api(tags = "工作台Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.work}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_WORK)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 public class WorkController {

+ 5 - 4
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java

@@ -79,10 +79,11 @@ public class DistributedPrintAuthenticationService implements AuthorizationServi
             if (auth) {
                 Long expireTime = redisUtil.getUserSessionExpire(accessEntity.getIdentity());
                 if (Objects.nonNull(expireTime) && expireTime.longValue() > -1L) {
-                    if (Objects.nonNull(tbSession.getLastAccessTime()) && (System.currentTimeMillis() - tbSession.getLastAccessTime()) / 1000 > dictionaryConfig.sysDomain().getSessionActive().getSeconds()) {
-                        log.warn("Authorization faile: session active, session active is {}", dictionaryConfig.sysDomain().getSessionActive().getSeconds());
-                        throw ExceptionResultEnum.NOT_LOGIN.exception();
-                    }
+//                    TODO session时长待完善
+//                    if (Objects.nonNull(tbSession.getLastAccessTime()) && (System.currentTimeMillis() - tbSession.getLastAccessTime()) / 1000 > dictionaryConfig.sysDomain().getSessionActive().getSeconds()) {
+//                        log.warn("Authorization faile: session active, session active is {}", dictionaryConfig.sysDomain().getSessionActive().getSeconds());
+//                        throw ExceptionResultEnum.NOT_LOGIN.exception();
+//                    }
                     tbSession.setLastInfo();
                     redisUtil.setUserSession(accessEntity.getIdentity(), tbSession, expireTime);
                 }

+ 0 - 194
distributed-print/src/main/resources/application-36dev.properties

@@ -1,194 +0,0 @@
-server.port=7771
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=distributed-print
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=192.168.10.136
-db.port=3306
-db.name=distributed-print-v3.0.1
-db.username=root
-db.password=Qmth87863577!
-
-#redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.db=13
-com.qmth.redis.port=6379
-com.qmth.redis.password=123456
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mybatis.log-level=debug
-
-#activiti\u914D\u7F6E
-#activiti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u8868\u8FDB\u884C\u66F4\u65B0\u64CD\u4F5C\u3002\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u81EA\u52A8\u521B\u5EFA
-#false\uFF1Afalse\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u5728\u542F\u52A8\u65F6\uFF0C\u4F1A\u5BF9\u6BD4\u6570\u636E\u5E93\u8868\u4E2D\u4FDD\u5B58\u7684\u7248\u672C\uFF0C\u5982\u679C\u6CA1\u6709\u8868\u6216\u8005\u7248\u672C\u4E0D\u5339\u914D\u65F6\uFF0C\u5C06\u5728\u542F\u52A8\u65F6\u629B\u51FA\u5F02\u5E38\u3002
-#true\uFF1A\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u7684\u8868\u8FDB\u884C\u66F4\u65B0\uFF0C\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219Activiti\u4F1A\u81EA\u52A8\u521B\u5EFA\u3002
-#create-drop\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\uFF0C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u3002
-#drop-create\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\u3002
-spring.activiti.database-schema-update=true
-#\u68C0\u6D4B\u5386\u53F2\u8868\u662F\u5426\u5B58\u5728
-spring.activiti.db-history-used=true
-#\u81EA\u52A8\u90E8\u7F72\u9A8C\u8BC1\u8BBE\u7F6E:true-\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\u3001false-\u5173\u95ED
-spring.activiti.check-process-definitions=false
-#spring.activiti.process-definition-location-prefix=classpath:/processes/
-#\u5BF9\u4E8E\u5386\u53F2\u6570\u636E\uFF0C\u4FDD\u5B58\u5230\u4F55\u79CD\u7C92\u5EA6\uFF0CActiviti\u63D0\u4F9B\u4E86history-level\u5C5E\u6027\u5BF9\u5176\u8FDB\u884C\u914D\u7F6E\u3002history-level\u5C5E\u6027\u6709\u70B9\u50CFlog4j\u7684\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\uFF0C\u8BE5\u5C5E\u6027\u6709\u4EE5\u4E0B\u56DB\u4E2A\u503C\uFF1A
-#none\uFF1A\u4E0D\u4FDD\u5B58\u4EFB\u4F55\u7684\u5386\u53F2\u6570\u636E\uFF0C\u56E0\u6B64\uFF0C\u5728\u6D41\u7A0B\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0C\u8FD9\u662F\u6700\u9AD8\u6548\u7684\u3002
-#activity\uFF1A\u7EA7\u522B\u9AD8\u4E8Enone\uFF0C\u4FDD\u5B58\u6D41\u7A0B\u5B9E\u4F8B\u4E0E\u6D41\u7A0B\u884C\u4E3A\uFF0C\u5176\u4ED6\u6570\u636E\u4E0D\u4FDD\u5B58\u3002
-#audit\uFF1A\u9664activity\u7EA7\u522B\u4F1A\u4FDD\u5B58\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5168\u90E8\u7684\u6D41\u7A0B\u4EFB\u52A1\u53CA\u5176\u5C5E\u6027\u3002audit\u4E3Ahistory\u7684\u9ED8\u8BA4\u503C\u3002
-#full\uFF1A\u4FDD\u5B58\u5386\u53F2\u6570\u636E\u7684\u6700\u9AD8\u7EA7\u522B\uFF0C\u9664\u4E86\u4F1A\u4FDD\u5B58audit\u7EA7\u522B\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5176\u4ED6\u5168\u90E8\u6D41\u7A0B\u76F8\u5173\u7684\u7EC6\u8282\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u6D41\u7A0B\u53C2\u6570\u7B49\u3002
-spring.activiti.history-level=audit
-
-com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.qmth.com.cn
-com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
-com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
-com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
-com.qmth.fss.localfile.config=/Users/king/Downloads/file-temp
-com.qmth.fss.localfile.server=http://127.0.0.1:7001
-com.qmth.fss.localpdf.config=/Users/king/Downloads/pdf-temp
-com.qmth.fss.localpdf.server=http://127.0.0.1:7001
-
-#\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=true
-sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
-sys.config.attachmentLength=100
-sys.config.attachmentSize=200
-sys.config.serverUpload=
-sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
-sys.config.autoCreatePdfResetMaxCount=5
-sys.config.threadPoolCoreSize=1
-sys.config.customThreadPoolCoreSize=true
-sys.config.sessionActive=4h
-spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#api\u524D\u7F00
-prefix.url.common=admin/common
-prefix.url.sys=admin/sys
-prefix.url.basic=admin/basic
-prefix.url.exam=admin/exam
-prefix.url.data=admin/data
-prefix.url.work=admin/workcom.qmth.solar.access-key
-prefix.url.client=admin/client
-prefix.url.flow=admin/flow
-prefix.url.statistics=admin/statistics
-prefix.url.sync=admin/sync
-prefix.url.menu=admin/menu
-prefix.url.customFlow=admin/custom/flow
-prefix.url.teach=admin/teach
-prefix.url.auth=admin/auth
-prefix.url.open=admin/print/open
-prefix.url.notify=admin/print/notify
-prefix.url.grade=admin/grade
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/ONLINE_EXAM/distributed/tomcat/logs/distributed-print.log
-
-#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
-#spring.profiles.include=task
-
-#\uFFFD\uFFFD\uFFFD\u013E\uFFFD\uFFFD\uFFFD\uFFFDurl
-sync.config.hostUrl=http://192.168.10.225:8000
-\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.examSaveUrl=/api/exam/save
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentSaveUrl=/api/exam/student/save
-#\u036C\uFFFD\uFFFD\uFFFD\u2FE8
-sync.config.fileUploadUrl=/api/file/{type}/upload
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\u046F\uFFFD\u04FF\uFFFD
-sync.config.queryPaperStructure=/api/exam/paper/query
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
-sync.config.markLoginUrl=/open/mark/login
-#\uFFFD\uFFFD\uFFFD\u9CE4\uFFFD\uFFFD\u00BC
-sync.config.markLeaderLoginUrl=/open/subject_header/login
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentCountUrl=/api/exam/student/count
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
-sync.config.studentScoreUrl=/api/exam/student/score
-# \u036C\uFFFD\uFFFD\uFFFD\u053E\uFFFD\u1E79
-sync.config.structureUrl=/api/exam/paper/save
-# \uFFFD\u00FB\uFFFD\u036C\uFFFD\uFFFD
-sync.config.userSaveUrl=/api/user/external/save
-sync.config.groupSaveUrl=/api/exam/mark_group/save
-sync.config.groupCountUrl=/api/exam/mark_group/count
-sync.config.groupDeleteUrl=/api/exam/mark_group/delete
-sync.config.markerSaveUrl=/api/exam/marker/save
-sync.config.markLeaderSaveUrl=/api/exam/subject_header/save
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
-
-sms.config.smsNormalCode=qmth
-sms.config.codeExpiredTime=2
-sms.config.codeSendInterval=60
-#aliyun SMS key
-sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
-#aliyun SMS secret
-sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
-sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
-sms.config.aliyunSMSTplCode=SMS_147416565
-sms.config.aliyunSMSAuditPassCode=SMS_216425141
-sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
-#\u5BA1\u6838\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSAuditCreatedCode=SMS_237216000
-#\u5BA1\u6838\u5F85\u529E\u4FEE\u6539\u7533\u8BF7\u901A\u77E5
-sms.config.aliyunSMSAuditReviewCode=SMS_237216002
-#\u5BA1\u6838\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5\uFF08\u672A\u901A\u8FC7\uFF09
-sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
-#\u5BA1\u6838\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
-#\uFFFD\uFFFD\uFFFD\uFFFD
-sms.config.aliyunSMSAuditRejectCode=SMS_237206063
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\uFFFD\uFFFD\u03F4\uFFFD\u0368\u05AA
-sms.config.aliyunSMSUploadStructureCode=SMS_237201068
-sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
-
-report.open.hostUrl=http://192.168.10.86:7004
-report.open.semesterApi=/api/report/open/semester_edit
-report.open.examApi=/api/report/open/exam_edit
-report.open.examDeleteApi=/api/report/open/exam_delete
-report.open.courseEditApi=/api/report/open/course_edit
-report.open.courseDelApi=/api/report/open/course_del
-report.open.calculateApi=/api/report/open/calculate
-report.open.publishApi=/api/report/open/publish
-report.open.ssoLoginApi=/api/report/sso/login
-
-print.open.callbackPwd=123456

+ 0 - 197
distributed-print/src/main/resources/application-dev.properties

@@ -1,197 +0,0 @@
-server.port=7001
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=distributed-print
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=localhost
-db.port=3306
-db.name=distributed-v3.2.0
-db.username=root
-db.password=123456789
-
-#redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.port=6379
-com.qmth.redis.db=1
-#com.qmth.redis.password=
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mybatis.log-level=debug
-
-#activiti\u914D\u7F6E
-#activiti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u8868\u8FDB\u884C\u66F4\u65B0\u64CD\u4F5C\u3002\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u81EA\u52A8\u521B\u5EFA
-#false\uFF1Afalse\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u5728\u542F\u52A8\u65F6\uFF0C\u4F1A\u5BF9\u6BD4\u6570\u636E\u5E93\u8868\u4E2D\u4FDD\u5B58\u7684\u7248\u672C\uFF0C\u5982\u679C\u6CA1\u6709\u8868\u6216\u8005\u7248\u672C\u4E0D\u5339\u914D\u65F6\uFF0C\u5C06\u5728\u542F\u52A8\u65F6\u629B\u51FA\u5F02\u5E38\u3002
-#true\uFF1A\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u7684\u8868\u8FDB\u884C\u66F4\u65B0\uFF0C\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219Activiti\u4F1A\u81EA\u52A8\u521B\u5EFA\u3002
-#create-drop\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\uFF0C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u3002
-#drop-create\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\u3002
-spring.activiti.database-schema-update=true
-#\u68C0\u6D4B\u5386\u53F2\u8868\u662F\u5426\u5B58\u5728
-spring.activiti.db-history-used=true
-#\u81EA\u52A8\u90E8\u7F72\u9A8C\u8BC1\u8BBE\u7F6E:true-\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\u3001false-\u5173\u95ED
-spring.activiti.check-process-definitions=false
-#spring.activiti.process-definition-location-prefix=classpath:/processes/
-#\u5BF9\u4E8E\u5386\u53F2\u6570\u636E\uFF0C\u4FDD\u5B58\u5230\u4F55\u79CD\u7C92\u5EA6\uFF0CActiviti\u63D0\u4F9B\u4E86history-level\u5C5E\u6027\u5BF9\u5176\u8FDB\u884C\u914D\u7F6E\u3002history-level\u5C5E\u6027\u6709\u70B9\u50CFlog4j\u7684\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\uFF0C\u8BE5\u5C5E\u6027\u6709\u4EE5\u4E0B\u56DB\u4E2A\u503C\uFF1A
-#none\uFF1A\u4E0D\u4FDD\u5B58\u4EFB\u4F55\u7684\u5386\u53F2\u6570\u636E\uFF0C\u56E0\u6B64\uFF0C\u5728\u6D41\u7A0B\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0C\u8FD9\u662F\u6700\u9AD8\u6548\u7684\u3002
-#activity\uFF1A\u7EA7\u522B\u9AD8\u4E8Enone\uFF0C\u4FDD\u5B58\u6D41\u7A0B\u5B9E\u4F8B\u4E0E\u6D41\u7A0B\u884C\u4E3A\uFF0C\u5176\u4ED6\u6570\u636E\u4E0D\u4FDD\u5B58\u3002
-#audit\uFF1A\u9664activity\u7EA7\u522B\u4F1A\u4FDD\u5B58\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5168\u90E8\u7684\u6D41\u7A0B\u4EFB\u52A1\u53CA\u5176\u5C5E\u6027\u3002audit\u4E3Ahistory\u7684\u9ED8\u8BA4\u503C\u3002
-#full\uFF1A\u4FDD\u5B58\u5386\u53F2\u6570\u636E\u7684\u6700\u9AD8\u7EA7\u522B\uFF0C\u9664\u4E86\u4F1A\u4FDD\u5B58audit\u7EA7\u522B\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5176\u4ED6\u5168\u90E8\u6D41\u7A0B\u76F8\u5173\u7684\u7EC6\u8282\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u6D41\u7A0B\u53C2\u6570\u7B49\u3002
-spring.activiti.history-level=audit
-
-com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.qmth.com.cn
-com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
-com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
-com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
-com.qmth.fss.localfile.config=/Users/king/Downloads/file-temp
-com.qmth.fss.localfile.server=http://127.0.0.1:7001
-com.qmth.fss.localpdf.config=/Users/king/Downloads/pdf-temp
-com.qmth.fss.localpdf.server=http://127.0.0.1:7001
-
-#\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=false
-sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
-sys.config.attachmentLength=100
-sys.config.attachmentSize=200
-sys.config.serverUpload=
-sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
-sys.config.autoCreatePdfResetMaxCount=5
-sys.config.threadPoolCoreSize=1
-sys.config.customThreadPoolCoreSize=true
-sys.config.sessionActive=4h
-spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#api\u524D\u7F00
-prefix.url.common=admin/common
-prefix.url.sys=admin/sys
-prefix.url.basic=admin/basic
-prefix.url.exam=admin/exam
-prefix.url.data=admin/data
-prefix.url.work=admin/work
-prefix.url.client=admin/client
-prefix.url.flow=admin/flow
-prefix.url.statistics=admin/statistics
-prefix.url.sync=admin/sync
-prefix.url.menu=admin/menu
-prefix.url.customFlow=admin/custom/flow
-prefix.url.teach=admin/teach
-prefix.url.auth=admin/auth
-prefix.url.open=admin/print/open
-prefix.url.notify=admin/print/notify
-prefix.url.grade=admin/grade
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/Users/king/Downloads/distributed-print.log
-
-#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
-#spring.profiles.include=task
-
-#\uFFFD\uFFFD\uFFFD\u013E\uFFFD\uFFFD\uFFFD\uFFFDurl
-sync.config.hostUrl=http://192.168.10.224:80
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.examSaveUrl=/api/exam/save
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentSaveUrl=/api/exam/student/save
-#\u036C\uFFFD\uFFFD\uFFFD\u2FE8
-sync.config.fileUploadUrl=/api/file/{type}/upload
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\u046F\uFFFD\u04FF\uFFFD
-sync.config.queryPaperStructure=/api/exam/paper/query
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
-sync.config.markLoginUrl=/open/mark/login
-#\uFFFD\uFFFD\uFFFD\u9CE4\uFFFD\uFFFD\u00BC
-sync.config.markLeaderLoginUrl=/open/subject_header/login
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentCountUrl=/api/exam/student/count
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
-sync.config.studentScoreUrl=/api/exam/student/score
-# \u036C\uFFFD\uFFFD\uFFFD\u053E\uFFFD\u1E79
-sync.config.structureUrl=/api/exam/paper/save
-# \uFFFD\u00FB\uFFFD\u036C\uFFFD\uFFFD
-sync.config.userSaveUrl=/api/user/external/save
-sync.config.groupSaveUrl=/api/exam/mark_group/save
-sync.config.groupCountUrl=/api/exam/mark_group/count
-sync.config.groupDeleteUrl=/api/exam/mark_group/delete
-sync.config.markerSaveUrl=/api/exam/marker/save
-sync.config.markLeaderSaveUrl=/api/exam/subject_header/save
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-#com.qmth.solar.license=/Volumes/extend/\u542F\u660E/\u5206\u5E03\u5F0F\u5370\u5237/\u5206\u5E03\u5F0F\u5370\u5237&\u6559\u7814\u5206\u6790v3.1.0/tc-dev-wl.lic
-
-sms.config.smsNormalCode=qmth
-sms.config.codeExpiredTime=2
-sms.config.codeSendInterval=60
-#aliyun SMS key
-sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
-#aliyun SMS secret
-sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
-sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
-sms.config.aliyunSMSTplCode=SMS_147416565
-sms.config.aliyunSMSAuditPassCode=SMS_216425141
-sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
-#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAuditCreatedCode=SMS_237216000
-#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\u07B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAuditReviewCode=SMS_237216002
-#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
-#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
-sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
-#\uFFFD\uFFFD\uFFFD\uFFFD
-sms.config.aliyunSMSAuditRejectCode=SMS_237206063
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\uFFFD\uFFFD\u03F4\uFFFD\u0368\u05AA
-sms.config.aliyunSMSUploadStructureCode=SMS_237201068
-sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
-
-report.open.hostUrl=http://127.0.0.1:7004
-report.open.semesterApi=/api/report/open/semester_edit
-report.open.examApi=/api/report/open/exam_edit
-report.open.examDeleteApi=/api/report/open/exam_delete
-report.open.courseEditApi=/api/report/open/course_edit
-report.open.courseDelApi=/api/report/open/course_del
-report.open.calculateApi=/api/report/open/calculate
-report.open.publishApi=/api/report/open/publish
-report.open.ssoLoginApi=/api/report/sso/login
-
-print.open.callbackPwd=123456
-
-cas.config.questionHostUrl=http://127.0.0.1:7000
-cas.config.questionLoginUri=/admin/login-open

+ 0 - 197
distributed-print/src/main/resources/application-offline.properties

@@ -1,197 +0,0 @@
-server.port=7781
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=distributed-print
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=192.168.10.136
-db.port=3307
-db.name=dps-offline
-db.username=dps-offline
-db.password=dps-offline
-
-#redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.db=11
-com.qmth.redis.port=6379
-com.qmth.redis.password=123456
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mysql.log-level=debug
-
-#activiti\u914D\u7F6E
-#activiti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u8868\u8FDB\u884C\u66F4\u65B0\u64CD\u4F5C\u3002\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u81EA\u52A8\u521B\u5EFA
-#false\uFF1Afalse\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u5728\u542F\u52A8\u65F6\uFF0C\u4F1A\u5BF9\u6BD4\u6570\u636E\u5E93\u8868\u4E2D\u4FDD\u5B58\u7684\u7248\u672C\uFF0C\u5982\u679C\u6CA1\u6709\u8868\u6216\u8005\u7248\u672C\u4E0D\u5339\u914D\u65F6\uFF0C\u5C06\u5728\u542F\u52A8\u65F6\u629B\u51FA\u5F02\u5E38\u3002
-#true\uFF1A\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u7684\u8868\u8FDB\u884C\u66F4\u65B0\uFF0C\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219Activiti\u4F1A\u81EA\u52A8\u521B\u5EFA\u3002
-#create-drop\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\uFF0C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u3002
-#drop-create\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\u3002
-spring.activiti.database-schema-update=true
-#\u68C0\u6D4B\u5386\u53F2\u8868\u662F\u5426\u5B58\u5728
-spring.activiti.db-history-used=true
-#\u81EA\u52A8\u90E8\u7F72\u9A8C\u8BC1\u8BBE\u7F6E:true-\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\u3001false-\u5173\u95ED
-spring.activiti.check-process-definitions=false
-#spring.activiti.process-definition-location-prefix=classpath:/processes/
-#\u5BF9\u4E8E\u5386\u53F2\u6570\u636E\uFF0C\u4FDD\u5B58\u5230\u4F55\u79CD\u7C92\u5EA6\uFF0CActiviti\u63D0\u4F9B\u4E86history-level\u5C5E\u6027\u5BF9\u5176\u8FDB\u884C\u914D\u7F6E\u3002history-level\u5C5E\u6027\u6709\u70B9\u50CFlog4j\u7684\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\uFF0C\u8BE5\u5C5E\u6027\u6709\u4EE5\u4E0B\u56DB\u4E2A\u503C\uFF1A
-#none\uFF1A\u4E0D\u4FDD\u5B58\u4EFB\u4F55\u7684\u5386\u53F2\u6570\u636E\uFF0C\u56E0\u6B64\uFF0C\u5728\u6D41\u7A0B\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0C\u8FD9\u662F\u6700\u9AD8\u6548\u7684\u3002
-#activity\uFF1A\u7EA7\u522B\u9AD8\u4E8Enone\uFF0C\u4FDD\u5B58\u6D41\u7A0B\u5B9E\u4F8B\u4E0E\u6D41\u7A0B\u884C\u4E3A\uFF0C\u5176\u4ED6\u6570\u636E\u4E0D\u4FDD\u5B58\u3002
-#audit\uFF1A\u9664activity\u7EA7\u522B\u4F1A\u4FDD\u5B58\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5168\u90E8\u7684\u6D41\u7A0B\u4EFB\u52A1\u53CA\u5176\u5C5E\u6027\u3002audit\u4E3Ahistory\u7684\u9ED8\u8BA4\u503C\u3002
-#full\uFF1A\u4FDD\u5B58\u5386\u53F2\u6570\u636E\u7684\u6700\u9AD8\u7EA7\u522B\uFF0C\u9664\u4E86\u4F1A\u4FDD\u5B58audit\u7EA7\u522B\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5176\u4ED6\u5168\u90E8\u6D41\u7A0B\u76F8\u5173\u7684\u7EC6\u8282\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u6D41\u7A0B\u53C2\u6570\u7B49\u3002
-spring.activiti.history-level=audit
-
-com.qmth.fss.public.config=oss://key:secret@teachcloud-dps-dev-public.oss-api.qmth.com.cn
-com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-public
-com.qmth.fss.private.config=oss://key:secret@teachcloud-dps-dev-private.oss-api.qmth.com.cn
-com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-private
-com.qmth.fss.localfile.config=/file-temp
-com.qmth.fss.localfile.server=http://192.168.10.138:7781
-com.qmth.fss.localpdf.config=/pdf-temp
-com.qmth.fss.localpdf.server=http://192.168.10.138:7781
-
-#\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=false
-sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
-sys.config.attachmentLength=100
-sys.config.attachmentSize=200
-sys.config.serverUpload=
-sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
-sys.config.autoCreatePdfResetMaxCount=5
-sys.config.threadPoolCoreSize=1
-sys.config.customThreadPoolCoreSize=false
-sys.config.sessionActive=4h
-spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#api\u524D\u7F00
-prefix.url.common=admin/common
-prefix.url.sys=admin/sys
-prefix.url.basic=admin/basic
-prefix.url.exam=admin/exam
-prefix.url.data=admin/data
-prefix.url.work=admin/work
-prefix.url.client=admin/client
-prefix.url.flow=admin/flow
-prefix.url.statistics=admin/statistics
-prefix.url.sync=admin/sync
-prefix.url.menu=admin/menu
-prefix.url.customFlow=admin/custom/flow
-prefix.url.teach=admin/teach
-prefix.url.auth=admin/auth
-prefix.url.open=admin/print/open
-prefix.url.notify=admin/print/notify
-prefix.url.grade=admin/grade
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/opt/logs/distributed-print.log
-
-#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
-#spring.profiles.include=task
-
-#\u4E91\u9605\u5377\u76F8\u5173url
-sync.config.hostUrl=http://192.168.10.225:8000
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.examSaveUrl=/api/exam/save
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentSaveUrl=/api/exam/student/save
-#\u036C\uFFFD\uFFFD\uFFFD\u2FE8
-sync.config.fileUploadUrl=/api/file/{type}/upload
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\u046F\uFFFD\u04FF\uFFFD
-sync.config.queryPaperStructure=/api/exam/paper/query
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
-sync.config.markLoginUrl=/open/mark/login
-#\uFFFD\uFFFD\uFFFD\u9CE4\uFFFD\uFFFD\u00BC
-sync.config.markLeaderLoginUrl=/open/subject_header/login
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentCountUrl=/api/exam/student/count
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
-sync.config.studentScoreUrl=/api/exam/student/score
-# \u036C\uFFFD\uFFFD\uFFFD\u053E\uFFFD\u1E79
-sync.config.structureUrl=/api/exam/paper/save
-# \uFFFD\u00FB\uFFFD\u036C\uFFFD\uFFFD
-sync.config.userSaveUrl=/api/user/external/save
-sync.config.groupSaveUrl=/api/exam/mark_group/save
-sync.config.groupCountUrl=/api/exam/mark_group/count
-sync.config.groupDeleteUrl=/api/exam/mark_group/delete
-sync.config.markerSaveUrl=/api/exam/marker/save
-sync.config.markLeaderSaveUrl=/api/exam/subject_header/save
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
-
-sms.config.smsNormalCode=8635
-sms.config.codeExpiredTime=2
-sms.config.codeSendInterval=60
-#aliyun SMS key
-sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
-#aliyun SMS secret
-sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
-sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
-sms.config.aliyunSMSTplCode=SMS_147416565
-sms.config.aliyunSMSAuditPassCode=SMS_216425141
-sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
-#\u5BA1\u6838\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSAuditCreatedCode=SMS_237216000
-#\u5BA1\u6838\u5F85\u529E\u4FEE\u6539\u7533\u8BF7\u901A\u77E5
-sms.config.aliyunSMSAuditReviewCode=SMS_237216002
-#\u5BA1\u6838\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5\uFF08\u672A\u901A\u8FC7\uFF09
-sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
-#\u5BA1\u6838\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
-#\uFFFD\uFFFD\uFFFD\uFFFD
-sms.config.aliyunSMSAuditRejectCode=SMS_237206063
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\uFFFD\uFFFD\u03F4\uFFFD\u0368\u05AA
-sms.config.aliyunSMSUploadStructureCode=SMS_237201068
-sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
-
-report.open.hostUrl=http://192.168.10.136:7783
-report.open.semesterApi=/api/report/open/semester_edit
-report.open.examApi=/api/report/open/exam_edit
-report.open.examDeleteApi=/api/report/open/exam_delete
-report.open.courseEditApi=/api/report/open/course_edit
-report.open.courseDelApi=/api/report/open/course_del
-report.open.calculateApi=/api/report/open/calculate
-report.open.publishApi=/api/report/open/publish
-report.open.ssoLoginApi=/api/report/sso/login
-
-print.open.callbackPwd=123456
-
-cas.config.questionHostUrl=https://test.tiku.work
-cas.config.questionLoginUri=/admin/login-open

+ 0 - 199
distributed-print/src/main/resources/application-test.properties

@@ -1,199 +0,0 @@
-server.port=7771
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=distributed-print
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=192.168.10.136
-db.port=3307
-db.name=dps-v3.0.1-test
-db.username=dps_test
-db.password=dps_test
-
-#redis\u6570\u636E\u6E90\u914D\u7F6E
-com.qmth.redis.host=${db.host}
-com.qmth.redis.db=15
-com.qmth.redis.port=6379
-com.qmth.redis.password=123456
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mysql.log-level=debug
-
-#activiti\u914D\u7F6E
-#activiti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u8868\u8FDB\u884C\u66F4\u65B0\u64CD\u4F5C\u3002\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u81EA\u52A8\u521B\u5EFA
-#false\uFF1Afalse\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u5728\u542F\u52A8\u65F6\uFF0C\u4F1A\u5BF9\u6BD4\u6570\u636E\u5E93\u8868\u4E2D\u4FDD\u5B58\u7684\u7248\u672C\uFF0C\u5982\u679C\u6CA1\u6709\u8868\u6216\u8005\u7248\u672C\u4E0D\u5339\u914D\u65F6\uFF0C\u5C06\u5728\u542F\u52A8\u65F6\u629B\u51FA\u5F02\u5E38\u3002
-#true\uFF1A\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u7684\u8868\u8FDB\u884C\u66F4\u65B0\uFF0C\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219Activiti\u4F1A\u81EA\u52A8\u521B\u5EFA\u3002
-#create-drop\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\uFF0C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u3002
-#drop-create\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\u3002
-spring.activiti.database-schema-update=true
-#\u68C0\u6D4B\u5386\u53F2\u8868\u662F\u5426\u5B58\u5728
-spring.activiti.db-history-used=true
-#\u81EA\u52A8\u90E8\u7F72\u9A8C\u8BC1\u8BBE\u7F6E:true-\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\u3001false-\u5173\u95ED
-spring.activiti.check-process-definitions=false
-#spring.activiti.process-definition-location-prefix=classpath:/processes/
-#\u5BF9\u4E8E\u5386\u53F2\u6570\u636E\uFF0C\u4FDD\u5B58\u5230\u4F55\u79CD\u7C92\u5EA6\uFF0CActiviti\u63D0\u4F9B\u4E86history-level\u5C5E\u6027\u5BF9\u5176\u8FDB\u884C\u914D\u7F6E\u3002history-level\u5C5E\u6027\u6709\u70B9\u50CFlog4j\u7684\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\uFF0C\u8BE5\u5C5E\u6027\u6709\u4EE5\u4E0B\u56DB\u4E2A\u503C\uFF1A
-#none\uFF1A\u4E0D\u4FDD\u5B58\u4EFB\u4F55\u7684\u5386\u53F2\u6570\u636E\uFF0C\u56E0\u6B64\uFF0C\u5728\u6D41\u7A0B\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0C\u8FD9\u662F\u6700\u9AD8\u6548\u7684\u3002
-#activity\uFF1A\u7EA7\u522B\u9AD8\u4E8Enone\uFF0C\u4FDD\u5B58\u6D41\u7A0B\u5B9E\u4F8B\u4E0E\u6D41\u7A0B\u884C\u4E3A\uFF0C\u5176\u4ED6\u6570\u636E\u4E0D\u4FDD\u5B58\u3002
-#audit\uFF1A\u9664activity\u7EA7\u522B\u4F1A\u4FDD\u5B58\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5168\u90E8\u7684\u6D41\u7A0B\u4EFB\u52A1\u53CA\u5176\u5C5E\u6027\u3002audit\u4E3Ahistory\u7684\u9ED8\u8BA4\u503C\u3002
-#full\uFF1A\u4FDD\u5B58\u5386\u53F2\u6570\u636E\u7684\u6700\u9AD8\u7EA7\u522B\uFF0C\u9664\u4E86\u4F1A\u4FDD\u5B58audit\u7EA7\u522B\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5176\u4ED6\u5168\u90E8\u6D41\u7A0B\u76F8\u5173\u7684\u7EC6\u8282\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u6D41\u7A0B\u53C2\u6570\u7B49\u3002
-spring.activiti.history-level=audit
-
-com.qmth.fss.public.config=oss://key:secret@teachcloud-dps-dev-public.oss-api.qmth.com.cn
-com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-public
-com.qmth.fss.private.config=oss://key:secret@teachcloud-dps-dev-private.oss-api.qmth.com.cn
-com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-dps-dev-private
-com.qmth.fss.localfile.config=/file-temp
-com.qmth.fss.localfile.server=https://*.teach-cloud-test.com
-com.qmth.fss.localpdf.config=/pdf-temp
-com.qmth.fss.localpdf.server=https://*.teach-cloud-test.com
-
-#\u7CFB\u7EDF\u914D\u7F6E
-sys.config.oss=true
-sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
-sys.config.attachmentLength=100
-sys.config.attachmentSize=200
-sys.config.serverUpload=
-sys.config.adminLogoUrl=http://qmth-test.oss-cn-shenzhen.aliyuncs.com/frontend/wx_logo.png
-sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
-sys.config.autoCreatePdfResetMaxCount=5
-sys.config.threadPoolCoreSize=1
-sys.config.customThreadPoolCoreSize=false
-sys.config.sessionActive=4h
-spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#api\u524D\u7F00
-prefix.url.common=admin/common
-prefix.url.sys=admin/sys
-prefix.url.basic=admin/basic
-prefix.url.exam=admin/exam
-prefix.url.data=admin/data
-prefix.url.work=admin/work
-prefix.url.client=admin/client
-prefix.url.flow=admin/flow
-prefix.url.statistics=admin/statistics
-prefix.url.sync=admin/sync
-prefix.url.menu=admin/menu
-prefix.url.customFlow=admin/custom/flow
-prefix.url.teach=admin/teach
-prefix.url.auth=admin/auth
-prefix.url.open=admin/print/open
-prefix.url.notify=admin/print/notify
-prefix.url.grade=admin/grade
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/opt/logs/distributed-print.log
-
-#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
-#spring.profiles.include=task
-
-#\u4E91\u9605\u5377\u76F8\u5173url
-sync.config.hostUrl=http://192.168.10.225:8000
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.examSaveUrl=/api/exam/save
-#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentSaveUrl=/api/exam/student/save
-#\u036C\uFFFD\uFFFD\uFFFD\u2FE8
-sync.config.fileUploadUrl=/api/file/{type}/upload
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\u046F\uFFFD\u04FF\uFFFD
-sync.config.queryPaperStructure=/api/exam/paper/query
-#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
-sync.config.markLoginUrl=/open/mark/login
-#\uFFFD\uFFFD\uFFFD\u9CE4\uFFFD\uFFFD\u00BC
-sync.config.markLeaderLoginUrl=/open/subject_header/login
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
-sync.config.studentCountUrl=/api/exam/student/count
-#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
-sync.config.studentScoreUrl=/api/exam/student/score
-# \u036C\uFFFD\uFFFD\uFFFD\u053E\uFFFD\u1E79
-sync.config.structureUrl=/api/exam/paper/save
-# \uFFFD\u00FB\uFFFD\u036C\uFFFD\uFFFD
-sync.config.userSaveUrl=/api/user/external/save
-sync.config.groupSaveUrl=/api/exam/mark_group/save
-sync.config.groupCountUrl=/api/exam/mark_group/count
-sync.config.groupDeleteUrl=/api/exam/mark_group/delete
-sync.config.markerSaveUrl=/api/exam/marker/save
-sync.config.markLeaderSaveUrl=/api/exam/subject_header/save
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-#com.qmth.solar.access-key=918d0878ee7944beb448980b011ff804
-#com.qmth.solar.access-secret=IY3NB9FXtd7OQHWH5YHl6mbrU9ch33QC
-#com.qmth.solar.license=/Users/king/Downloads/tc-dev-wl.lic
-
-sms.config.smsNormalCode=8635
-sms.config.codeExpiredTime=2
-sms.config.codeSendInterval=60
-#aliyun SMS key
-sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
-#aliyun SMS secret
-sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
-sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
-sms.config.aliyunSMSTplCode=SMS_147416565
-sms.config.aliyunSMSAuditPassCode=SMS_216425141
-sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
-#\u547D\u9898\u4EFB\u52A1\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5
-sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
-#\u547D\u9898\u5206\u914D\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
-#\u5BA1\u6838\u5F85\u529E\u751F\u6210\u901A\u77E5
-sms.config.aliyunSMSAuditCreatedCode=SMS_237216000
-#\u5BA1\u6838\u5F85\u529E\u4FEE\u6539\u7533\u8BF7\u901A\u77E5
-sms.config.aliyunSMSAuditReviewCode=SMS_237216002
-#\u5BA1\u6838\u5F85\u529E\u5230\u671F\u9884\u8B66\u901A\u77E5\uFF08\u672A\u901A\u8FC7\uFF09
-sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
-#\u5BA1\u6838\u5F85\u529E\u903E\u671F\u901A\u77E5
-sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
-#\uFFFD\uFFFD\uFFFD\uFFFD
-sms.config.aliyunSMSAuditRejectCode=SMS_237206063
-# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\uFFFD\uFFFD\u03F4\uFFFD\u0368\u05AA
-sms.config.aliyunSMSUploadStructureCode=SMS_237201068
-sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
-
-report.open.hostUrl=https://*.teachcloud-report-test.work
-report.open.semesterApi=/api/report/open/semester_edit
-report.open.examApi=/api/report/open/exam_edit
-report.open.examDeleteApi=/api/report/open/exam_delete
-report.open.courseEditApi=/api/report/open/course_edit
-report.open.courseDelApi=/api/report/open/course_del
-report.open.calculateApi=/api/report/open/calculate
-report.open.publishApi=/api/report/open/publish
-report.open.ssoLoginApi=/api/report/sso/login
-
-print.open.callbackPwd=123456
-
-cas.config.questionHostUrl=https://test.tiku.work
-cas.config.questionLoginUri=/admin/login-open

+ 166 - 2
distributed-print/src/main/resources/application.properties

@@ -1,2 +1,166 @@
-#\u5207\u6362\u914D\u7F6E\u6587\u4EF6
-spring.profiles.active=dev
+server.port=7001
+#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
+server.tomcat.threads.max=2500
+#tomcat\u6700\u5927\u8FDE\u63A5\u6570
+server.tomcat.max-connections=2500
+#tomcat\u7684URI\u7F16\u7801
+server.tomcat.uri-encoding=UTF-8
+
+#\u9879\u76EE\u540D\u79F0
+spring.application.name=distributed-print
+
+#\u6570\u636E\u6E90\u914D\u7F6E
+db.host=localhost
+db.port=3306
+db.name=distributed-v3.2.0
+db.username=root
+db.password=123456789
+
+#redis\u6570\u636E\u6E90\u914D\u7F6E
+com.qmth.redis.host=${db.host}
+com.qmth.redis.port=6379
+com.qmth.redis.db=1
+#com.qmth.redis.password=
+
+#mysql\u914D\u7F6E
+com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
+com.qmth.datasource.username=${db.username}
+com.qmth.datasource.password=${db.password}
+com.qmth.mybatis.log-level=debug
+
+#activiti\u914D\u7F6E
+#activiti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u8868\u8FDB\u884C\u66F4\u65B0\u64CD\u4F5C\u3002\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219\u81EA\u52A8\u521B\u5EFA
+#false\uFF1Afalse\u4E3A\u9ED8\u8BA4\u503C\uFF0C\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u5728\u542F\u52A8\u65F6\uFF0C\u4F1A\u5BF9\u6BD4\u6570\u636E\u5E93\u8868\u4E2D\u4FDD\u5B58\u7684\u7248\u672C\uFF0C\u5982\u679C\u6CA1\u6709\u8868\u6216\u8005\u7248\u672C\u4E0D\u5339\u914D\u65F6\uFF0C\u5C06\u5728\u542F\u52A8\u65F6\u629B\u51FA\u5F02\u5E38\u3002
+#true\uFF1A\u8BBE\u7F6E\u4E3A\u8BE5\u503C\u540E\uFF0CActiviti\u4F1A\u5BF9\u6570\u636E\u5E93\u4E2D\u6240\u6709\u7684\u8868\u8FDB\u884C\u66F4\u65B0\uFF0C\u5982\u679C\u8868\u4E0D\u5B58\u5728\uFF0C\u5219Activiti\u4F1A\u81EA\u52A8\u521B\u5EFA\u3002
+#create-drop\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\uFF0C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u3002
+#drop-create\uFF1AActiviti\u542F\u52A8\u65F6\uFF0C\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u5220\u9664\u64CD\u4F5C\u5728Activiti\u5173\u95ED\u65F6\uFF0C\u4F1A\u6267\u884C\u6570\u636E\u5E93\u8868\u7684\u521B\u5EFA\u64CD\u4F5C\u3002
+spring.activiti.database-schema-update=true
+#\u68C0\u6D4B\u5386\u53F2\u8868\u662F\u5426\u5B58\u5728
+spring.activiti.db-history-used=true
+#\u81EA\u52A8\u90E8\u7F72\u9A8C\u8BC1\u8BBE\u7F6E:true-\u5F00\u542F\uFF08\u9ED8\u8BA4\uFF09\u3001false-\u5173\u95ED
+spring.activiti.check-process-definitions=false
+#spring.activiti.process-definition-location-prefix=classpath:/processes/
+#\u5BF9\u4E8E\u5386\u53F2\u6570\u636E\uFF0C\u4FDD\u5B58\u5230\u4F55\u79CD\u7C92\u5EA6\uFF0CActiviti\u63D0\u4F9B\u4E86history-level\u5C5E\u6027\u5BF9\u5176\u8FDB\u884C\u914D\u7F6E\u3002history-level\u5C5E\u6027\u6709\u70B9\u50CFlog4j\u7684\u65E5\u5FD7\u8F93\u51FA\u7EA7\u522B\uFF0C\u8BE5\u5C5E\u6027\u6709\u4EE5\u4E0B\u56DB\u4E2A\u503C\uFF1A
+#none\uFF1A\u4E0D\u4FDD\u5B58\u4EFB\u4F55\u7684\u5386\u53F2\u6570\u636E\uFF0C\u56E0\u6B64\uFF0C\u5728\u6D41\u7A0B\u6267\u884C\u8FC7\u7A0B\u4E2D\uFF0C\u8FD9\u662F\u6700\u9AD8\u6548\u7684\u3002
+#activity\uFF1A\u7EA7\u522B\u9AD8\u4E8Enone\uFF0C\u4FDD\u5B58\u6D41\u7A0B\u5B9E\u4F8B\u4E0E\u6D41\u7A0B\u884C\u4E3A\uFF0C\u5176\u4ED6\u6570\u636E\u4E0D\u4FDD\u5B58\u3002
+#audit\uFF1A\u9664activity\u7EA7\u522B\u4F1A\u4FDD\u5B58\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5168\u90E8\u7684\u6D41\u7A0B\u4EFB\u52A1\u53CA\u5176\u5C5E\u6027\u3002audit\u4E3Ahistory\u7684\u9ED8\u8BA4\u503C\u3002
+#full\uFF1A\u4FDD\u5B58\u5386\u53F2\u6570\u636E\u7684\u6700\u9AD8\u7EA7\u522B\uFF0C\u9664\u4E86\u4F1A\u4FDD\u5B58audit\u7EA7\u522B\u7684\u6570\u636E\u5916\uFF0C\u8FD8\u4F1A\u4FDD\u5B58\u5176\u4ED6\u5168\u90E8\u6D41\u7A0B\u76F8\u5173\u7684\u7EC6\u8282\u6570\u636E\uFF0C\u5305\u62EC\u4E00\u4E9B\u6D41\u7A0B\u53C2\u6570\u7B49\u3002
+spring.activiti.history-level=audit
+
+com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.qmth.com.cn
+com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
+com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
+com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
+
+#\u7CFB\u7EDF\u914D\u7F6E
+sys.config.oss=true
+sys.config.htmlToPdfUrl=/usr/local/bin/wkhtmltopdf
+sys.config.serverUpload=
+spring.resources.static-locations=file:${sys.config.serverUpload},classpath:/META-INF/resources/,classpath:/resources/
+
+#com.qmth.api.uri-prefix=/aaa
+#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
+com.qmth.api.metrics-endpoint=/metrics-count
+com.qmth.api.global-auth=true
+#com.qmth.api.global-strict=false
+#com.qmth.api.global-rate-limit=1/5s
+
+#token\u8D85\u65F6\u914D\u7F6E
+com.qmth.auth.time-max-ahead=1m
+com.qmth.auth.time-max-delay=5m
+
+#\u7F13\u5B58\u65F6\u95F4
+com.qmth.cache.expire-after-write=8h
+
+#\u65E5\u671F\u683C\u5F0F\u5316
+spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
+spring.jackson.time-zone=GMT+8
+
+#\u65E5\u5FD7\u914D\u7F6E
+com.qmth.logging.root-level=info
+com.qmth.logging.file-path=/Users/king/Downloads/distributed-print.log
+
+#\u5F15\u5165task\u914D\u7F6E\u6587\u4EF6
+#spring.profiles.include=task
+
+#\uFFFD\uFFFD\uFFFD\u013E\uFFFD\uFFFD\uFFFD\uFFFDurl
+sync.config.hostUrl=http://192.168.10.224:80
+#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+sync.config.examSaveUrl=/api/exam/save
+#\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+sync.config.studentSaveUrl=/api/exam/student/save
+#\u036C\uFFFD\uFFFD\uFFFD\u2FE8
+sync.config.fileUploadUrl=/api/file/{type}/upload
+# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\u046F\uFFFD\u04FF\uFFFD
+sync.config.queryPaperStructure=/api/exam/paper/query
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00BC
+sync.config.markLoginUrl=/open/mark/login
+#\uFFFD\uFFFD\uFFFD\u9CE4\uFFFD\uFFFD\u00BC
+sync.config.markLeaderLoginUrl=/open/subject_header/login
+#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+sync.config.studentCountUrl=/api/exam/student/count
+#\uFFFD\u027C\uFFFD\uFFFD\u0634\uFFFD
+sync.config.studentScoreUrl=/api/exam/student/score
+# \u036C\uFFFD\uFFFD\uFFFD\u053E\uFFFD\u1E79
+sync.config.structureUrl=/api/exam/paper/save
+# \uFFFD\u00FB\uFFFD\u036C\uFFFD\uFFFD
+sync.config.userSaveUrl=/api/user/external/save
+sync.config.groupSaveUrl=/api/exam/mark_group/save
+sync.config.groupCountUrl=/api/exam/mark_group/count
+sync.config.groupDeleteUrl=/api/exam/mark_group/delete
+sync.config.markerSaveUrl=/api/exam/marker/save
+sync.config.markLeaderSaveUrl=/api/exam/subject_header/save
+
+#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
+#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
+#com.qmth.solar.license=/Volumes/extend/\u542F\u660E/\u5206\u5E03\u5F0F\u5370\u5237/\u5206\u5E03\u5F0F\u5370\u5237&\u6559\u7814\u5206\u6790v3.1.0/tc-dev-wl.lic
+
+sms.config.smsNormalCode=qmth
+sms.config.codeExpiredTime=2
+sms.config.codeSendInterval=60
+#aliyun SMS key
+sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
+#aliyun SMS secret
+sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
+sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
+sms.config.aliyunSMSTplCode=SMS_147416565
+sms.config.aliyunSMSAuditPassCode=SMS_216425141
+sms.config.aliyunSMSAuditNotPassCode=SMS_216275156
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskCreatedCode=SMS_217436292
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskWillExpireCode=SMS_217436295
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSExamTaskOverdueCode=SMS_217426313
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAllocationWillExpireCode=SMS_217406305
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAllocationOverdueCode=SMS_217406308
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditCreatedCode=SMS_237216000
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\u07B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditReviewCode=SMS_237216002
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uCD7D\uFFFD\uFFFD\u0524\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditWillExpireCode=SMS_217436302
+#\uFFFD\uFFFD\u02F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0368\u05AA
+sms.config.aliyunSMSAuditOverdueCode=SMS_217416271
+#\uFFFD\uFFFD\uFFFD\uFFFD
+sms.config.aliyunSMSAuditRejectCode=SMS_237206063
+# \uFFFD\u053E\uFFFD\u1E79\uFFFD\uFFFD\uFFFD\uFFFD\u03F4\uFFFD\u0368\u05AA
+sms.config.aliyunSMSUploadStructureCode=SMS_237201068
+sms.config.aliyunSMSAuditCopyUserCode=SMS_237206065
+
+report.open.hostUrl=http://127.0.0.1:7004
+report.open.semesterApi=/api/report/open/semester_edit
+report.open.examApi=/api/report/open/exam_edit
+report.open.examDeleteApi=/api/report/open/exam_delete
+report.open.courseEditApi=/api/report/open/course_edit
+report.open.courseDelApi=/api/report/open/course_del
+report.open.calculateApi=/api/report/open/calculate
+report.open.publishApi=/api/report/open/publish
+report.open.ssoLoginApi=/api/report/sso/login
+
+print.open.callbackPwd=123456
+
+cas.config.questionHostUrl=http://127.0.0.1:7000
+cas.config.questionLoginUri=/admin/login-open

+ 8 - 8
distributed-print/src/test/java/com/qmth/distributed/print/FssTest.java

@@ -57,14 +57,14 @@ public class FssTest {
         String date = DateUtil.today().replace("-", "/");
         System.out.println(file.getName());
         System.out.println(date);
-        String path = FssUtils.buildPath(type.getTitle(), date, SystemConstant.getUuid() + SystemConstant.XLSX);
+        String path = FssUtils.buildPath(type.getTitle(), date, SystemConstant.getNanoId() + SystemConstant.XLSX);
         System.out.println(path);
 //        fileService.getFileStore("public").write(path, new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)));
-        fileStoreUtil.ossUpload(path,new FileInputStream(file),DigestUtils.md5Hex(new FileInputStream(file)),"public");
+        fileStoreUtil.ossUpload(path, new FileInputStream(file), DigestUtils.md5Hex(new FileInputStream(file)), "public");
     }
 
     @Test
-    public void findFile(){
+    public void findFile() {
         String path = "{\"path\":\"file/2021/08/18/7faa128fc0104e05b34b32961c221ac2.xlsx\",\"uploadType\":\"FILE\",\"type\":\"oss\"}";
         JSONObject jsonObject = JSONObject.parseObject(path);
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
@@ -73,13 +73,13 @@ public class FssTest {
 
         String server;
         String config;
-        if ("public".equals(uploadFileEnum.getFssType())){
+        if ("public".equals(uploadFileEnum.getFssType())) {
             config = dictionaryConfig.fssPublicDomain().getConfig();
             server = dictionaryConfig.fssPublicDomain().getServer();
-        }else if ("private".equals(uploadFileEnum.getFssType())){
+        } else if ("private".equals(uploadFileEnum.getFssType())) {
             config = dictionaryConfig.fssPrivateDomain().getConfig();
             server = dictionaryConfig.fssPrivateDomain().getServer();
-        }else {
+        } else {
             throw ExceptionResultEnum.ERROR.exception("文件存储store类型不存在");
         }
 
@@ -90,9 +90,9 @@ public class FssTest {
     }
 
     @Test
-    public void findType(){
+    public void findType() {
         String path = "upload/2021/08/18/7faa128fc0104e05b34b32961c221ac2.xlsx";
-        String target = path.substring(0,path.indexOf('/'));
+        String target = path.substring(0, path.indexOf('/'));
         UploadFileEnum type = UploadFileEnum.valueOf(target.toUpperCase());
         System.out.println(type);
     }

+ 6 - 0
pom.xml

@@ -52,6 +52,7 @@
         <activiti.version>6.0.0</activiti.version>
         <activiti-modeler.version>5.22.0</activiti-modeler.version>
         <zip4j.version>1.3.3</zip4j.version>
+        <nanoid.version>2.0.0</nanoid.version>
     </properties>
 
     <dependencyManagement>
@@ -339,6 +340,11 @@
                 <artifactId>zip4j</artifactId>
                 <version>${zip4j.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.aventrix.jnanoid</groupId>
+                <artifactId>jnanoid</artifactId>
+                <version>${nanoid.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 2 - 1
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicAttachmentController.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.common.api.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.util.Result;
@@ -23,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @Api(tags = "文件上传Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/file")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_COMMON + "/file")
 public class BasicAttachmentController {
 
     @Autowired

+ 2 - 1
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicSchoolController.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.common.api.api;
 
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.service.BasicSchoolService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -24,7 +25,7 @@ import java.util.List;
  */
 @Api(tags = "学校Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/school")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_COMMON + "/school")
 public class BasicSchoolController {
 
     @Autowired

+ 2 - 1
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysConfigController.java

@@ -3,6 +3,7 @@ package com.qmth.teachcloud.common.api.api;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.util.Result;
@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @Api(tags = "参数Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/sys_config")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_COMMON + "/sys_config")
 public class SysConfigController {
 
     @Autowired

+ 1 - 1
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysRoleGroupMemberController.java

@@ -25,7 +25,7 @@ import javax.validation.Valid;
  */
 @Api(tags = "角色组成员Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/role/group")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/role/group")
 @Validated
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class SysRoleGroupMemberController {

+ 1 - 1
teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/TSAuthController.java

@@ -35,7 +35,7 @@ import java.io.IOException;
  */
 @Api(tags = "授权配置Controller")
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.auth}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_AUTH)
 @Validated
 public class TSAuthController {
     private final static Logger log = LoggerFactory.getLogger(TSAuthController.class);

+ 4 - 0
teachcloud-common/pom.xml

@@ -157,5 +157,9 @@
             <groupId>net.lingala.zip4j</groupId>
             <artifactId>zip4j</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.aventrix.jnanoid</groupId>
+            <artifactId>jnanoid</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 3 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/MqDto.java

@@ -5,7 +5,6 @@ import com.qmth.teachcloud.common.enums.MqTagEnum;
 
 import java.io.Serializable;
 import java.util.Map;
-import java.util.UUID;
 
 /**
  * @Description: mq dto
@@ -42,7 +41,7 @@ public class MqDto implements Serializable {
         this.type = MqTagEnum.valueOf(tag);
         this.objId = objId;
         this.timestamp = timestamp;
-        this.id = SystemConstant.getUuid();
+        this.id = SystemConstant.getNanoId();
     }
 
     public MqDto(String topic, Object body, String objId) {
@@ -52,7 +51,7 @@ public class MqDto implements Serializable {
         this.type = MqTagEnum.valueOf(MqTagEnum.convertToName(tag));
         this.objId = objId;
         this.timestamp = System.currentTimeMillis();
-        this.id = SystemConstant.getUuid();
+        this.id = SystemConstant.getNanoId();
     }
 
     public MqDto(String topic, String tag, Object body, MqTagEnum type, String objId, Map properties) {
@@ -62,7 +61,7 @@ public class MqDto implements Serializable {
         this.type = type;
         this.objId = objId;
         this.timestamp = System.currentTimeMillis();
-        this.id = SystemConstant.getUuid();
+        this.id = SystemConstant.getNanoId();
         this.properties = properties;
     }
 

+ 0 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/cache/ThirdUserAuthCacheUtil.java

@@ -41,12 +41,4 @@ public class ThirdUserAuthCacheUtil {
 //    public static void deleteAuthReturnUrl(String key) {
 //        redisUtil.delete(RedisKeyHelper.thirdUserAuthReturnUrl(key));
 //    }
-
-    public static void deleteCache(Long userId) {
-        CommonCacheService commonCacheService = SpringContextHolder.getBean(CommonCacheService.class);
-        commonCacheService.removeUserCache(userId);
-        commonCacheService.removeUserAuthCache(userId);
-        commonCacheService.removeUserMenuCache(userId);
-        commonCacheService.removeUserRolePrivilegeCache(userId);
-    }
 }

+ 0 - 34
teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java

@@ -15,17 +15,6 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 public class DictionaryConfig {
 
-    /**
-     * 模块前缀
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "prefix.url")
-    public PrefixUrlDomain prefixUrlDomain() {
-        return new PrefixUrlDomain();
-    }
-
     /**
      * 系统配置
      *
@@ -59,17 +48,6 @@ public class DictionaryConfig {
         return new SmsDomain();
     }
 
-//    /**
-//     * 阿里云oss配置
-//     *
-//     * @return
-//     */
-//    @Bean
-//    @ConfigurationProperties(prefix = "aliyun.oss")
-//    public AliYunOssDomain aliYunOssDomain() {
-//        return new AliYunOssDomain();
-//    }
-
     /**
      * 云阅卷同步推送
      *
@@ -104,18 +82,6 @@ public class DictionaryConfig {
         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();
-    }
-
     /**
      * 分布式印刷开放接口
      *

+ 67 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.common.contant;
 
+import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
 import com.qmth.boot.core.uid.service.UidService;
 import com.qmth.teachcloud.common.annotation.DBVerify;
 import com.qmth.teachcloud.common.bean.result.DBVerifyResult;
@@ -32,6 +33,39 @@ import java.util.stream.Collectors;
  * @Date: 2019/10/11
  */
 public class SystemConstant {
+
+    /**
+     * 分布式印刷api前缀
+     */
+    public static final String PREFIX_URL_COMMON = "/admin/common";
+    public static final String PREFIX_URL_SYS = "/admin/sys";
+    public static final String PREFIX_URL_BASIC = "/admin/basic";
+    public static final String PREFIX_URL_EXAM = "/admin/exam";
+    public static final String PREFIX_URL_DATA = "/admin/data";
+    public static final String PREFIX_URL_WORK = "/admin/work";
+    public static final String PREFIX_URL_CLIENT = "/admin/client";
+    public static final String PREFIX_URL_STATISTICS = "/admin/statistics";
+    public static final String PREFIX_URL_SYNC = "/admin/sync";
+    public static final String PREFIX_URL_MENU = "/admin/menu";
+    public static final String PREFIX_URL_CUSTOM_FLOW = "/admin/custom/flow";
+    public static final String PREFIX_URL_TEACH = "/admin/teach";
+    public static final String PREFIX_URL_AUTH = "/admin/auth";
+    public static final String PREFIX_URL_OPEN = "/admin/print/open";
+    public static final String PREFIX_URL_NOTIFY = "/admin/print/notify";
+    public static final String PREFIX_URL_GRADE = "/admin/grade";
+
+    /**
+     * 教研分析api前缀
+     */
+    public static final String PREFIX_URL_REPORT_WUDA = "/report/wuda/open";
+    public static final String PREFIX_URL_REPORT_SCHOOL = "/report/school";
+    public static final String PREFIX_URL_REPORT_COURSE = "/report/course";
+    public static final String PREFIX_URL_REPORT_EXAM_STUDENT = "/report/exam_student";
+    public static final String PREFIX_URL_REPORT_DATASOURCE = "/report/datasource";
+    public static final String PREFIX_URL_REPORT_ANALYZE = "/report/analyze";
+    public static final String PREFIX_URL_REPORT_OPEN = "/report/open";
+    public static final String PREFIX_URL_REPORT_SSO = "/report/sso";
+
     /**
      * 系统常量
      */
@@ -344,13 +378,31 @@ public class SystemConstant {
         return Objects.nonNull(id) && id.length() > 0 ? Integer.parseInt(id) : null;
     }
 
+//    /**
+//     * 获取全局uuid
+//     *
+//     * @return
+//     */
+//    public static String getUuid() {
+//        return String.valueOf(UUID.randomUUID()).replaceAll("-", "");
+//    }
+
     /**
      * 获取全局uuid
      *
      * @return
      */
-    public static String getUuid() {
-        return String.valueOf(UUID.randomUUID()).replaceAll("-", "");
+    public static String getNanoId() {
+        return NanoIdUtils.randomNanoId();
+    }
+
+    /**
+     * 获取全局uuid
+     *
+     * @return
+     */
+    public static String getUserDir() {
+        return System.getProperty(SystemConstant.USER_DIR);
     }
 
     /**
@@ -694,4 +746,17 @@ public class SystemConstant {
         }
         return filePath;
     }
+
+    /**
+     * 删除缓存
+     *
+     * @param userId
+     */
+    public static void deleteUserCache(Long userId) {
+        CommonCacheService commonCacheService = SpringContextHolder.getBean(CommonCacheService.class);
+        commonCacheService.removeUserCache(userId);
+        commonCacheService.removeUserAuthCache(userId);
+        commonCacheService.removeUserMenuCache(userId);
+        commonCacheService.removeUserRolePrivilegeCache(userId);
+    }
 }

+ 0 - 74
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/AliYunOssDomain.java

@@ -1,74 +0,0 @@
-//package com.qmth.teachcloud.common.domain;
-//
-//import java.io.Serializable;
-//
-///**
-// * @Description: 阿里云oss config
-// * @Param:
-// * @return:
-// * @Author: wangliang
-// * @Date: 2020/3/30
-// */
-//public class AliYunOssDomain implements Serializable {
-//
-//    private String endpoint;
-//
-//    private String name;
-//
-//    private String accessKeyId;
-//
-//    private String accessKeySecret;
-//
-//    private String bucket;
-//
-//    private String url;
-//
-//    public String getEndpoint() {
-//        return endpoint;
-//    }
-//
-//    public void setEndpoint(String endpoint) {
-//        this.endpoint = endpoint;
-//    }
-//
-//    public String getName() {
-//        return name;
-//    }
-//
-//    public void setName(String name) {
-//        this.name = name;
-//    }
-//
-//    public String getAccessKeyId() {
-//        return accessKeyId;
-//    }
-//
-//    public void setAccessKeyId(String accessKeyId) {
-//        this.accessKeyId = accessKeyId;
-//    }
-//
-//    public String getAccessKeySecret() {
-//        return accessKeySecret;
-//    }
-//
-//    public void setAccessKeySecret(String accessKeySecret) {
-//        this.accessKeySecret = accessKeySecret;
-//    }
-//
-//    public String getBucket() {
-//        return bucket;
-//    }
-//
-//    public void setBucket(String bucket) {
-//        this.bucket = bucket;
-//    }
-//
-//    public String getUrl() {
-//        return url;
-//    }
-//
-//    public void setUrl(String url) {
-//        this.url = url;
-//    }
-//}
-//

+ 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;
-    }
-}

+ 0 - 173
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java

@@ -1,173 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-import java.io.Serializable;
-
-/**
- * @Description: 模块前缀
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/4/10
- */
-public class PrefixUrlDomain implements Serializable {
-
-    String common;
-
-    String sys;
-
-    String basic;
-
-    String exam;
-
-    String data;
-
-    String work;
-
-    String client;
-
-    String reportWuda;
-
-    String reportSchool;
-
-    String reportCourse;
-
-    String reportExamStudent;
-
-    String datasource;
-
-    String analyze;
-
-    String open;
-
-    String notify;
-
-    String sso;
-
-    public String getSso() {
-        return sso;
-    }
-
-    public void setSso(String sso) {
-        this.sso = sso;
-    }
-
-    public String getNotify() {
-        return notify;
-    }
-
-    public void setNotify(String notify) {
-        this.notify = notify;
-    }
-
-    public String getOpen() {
-        return open;
-    }
-
-    public void setOpen(String open) {
-        this.open = open;
-    }
-
-    public String getDatasource() {
-        return datasource;
-    }
-
-    public void setDatasource(String datasource) {
-        this.datasource = datasource;
-    }
-
-    public String getAnalyze() {
-        return analyze;
-    }
-
-    public void setAnalyze(String analyze) {
-        this.analyze = analyze;
-    }
-
-    public String getReportExamStudent() {
-        return reportExamStudent;
-    }
-
-    public void setReportExamStudent(String reportExamStudent) {
-        this.reportExamStudent = reportExamStudent;
-    }
-
-    public String getReportCourse() {
-        return reportCourse;
-    }
-
-    public void setReportCourse(String reportCourse) {
-        this.reportCourse = reportCourse;
-    }
-
-    public String getReportWuda() {
-        return reportWuda;
-    }
-
-    public void setReportWuda(String reportWuda) {
-        this.reportWuda = reportWuda;
-    }
-
-    public String getData() {
-        return data;
-    }
-
-    public void setData(String data) {
-        this.data = data;
-    }
-
-    public String getWork() {
-        return work;
-    }
-
-    public void setWork(String work) {
-        this.work = work;
-    }
-
-    public String getClient() {
-        return client;
-    }
-
-    public void setClient(String client) {
-        this.client = client;
-    }
-
-    public String getReportSchool() {
-        return reportSchool;
-    }
-
-    public void setReportSchool(String reportSchool) {
-        this.reportSchool = reportSchool;
-    }
-
-    public String getCommon() {
-        return common;
-    }
-
-    public void setCommon(String common) {
-        this.common = common;
-    }
-
-    public String getSys() {
-        return sys;
-    }
-
-    public void setSys(String sys) {
-        this.sys = sys;
-    }
-
-    public String getBasic() {
-        return basic;
-    }
-
-    public void setBasic(String basic) {
-        this.basic = basic;
-    }
-
-    public String getExam() {
-        return exam;
-    }
-
-    public void setExam(String exam) {
-        this.exam = exam;
-    }
-}

+ 12 - 76
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SysDomain.java

@@ -15,27 +15,27 @@ public class SysDomain implements Serializable {
 
     boolean oss;
 
-    List attachmentType;
-
-    Integer attachmentLength;
-
-    Double attachmentSize;
+//    List attachmentType;
+//
+//    Integer attachmentLength;
+//
+//    Double attachmentSize;
 
     String serverUpload;
 
-    String adminLogoUrl;
+//    String adminLogoUrl;
 
     String htmlToPdfUrl;
 
-    Integer autoCreatePdfResetMaxCount;
-
-    Integer threadPoolCoreSize;
-
-    boolean customThreadPoolCoreSize;
+//    Integer autoCreatePdfResetMaxCount;
+//
+//    Integer threadPoolCoreSize;
+//
+//    boolean customThreadPoolCoreSize;
 
     String reportUrl;
 
-    Duration sessionActive;
+//    Duration sessionActive;
 
     String loginAuthenUrl;
 
@@ -47,14 +47,6 @@ public class SysDomain implements Serializable {
         this.loginAuthenUrl = loginAuthenUrl;
     }
 
-    public Duration getSessionActive() {
-        return sessionActive;
-    }
-
-    public void setSessionActive(Duration sessionActive) {
-        this.sessionActive = sessionActive;
-    }
-
     public String getReportUrl() {
         return reportUrl;
     }
@@ -63,30 +55,6 @@ public class SysDomain implements Serializable {
         this.reportUrl = reportUrl;
     }
 
-    public boolean isCustomThreadPoolCoreSize() {
-        return customThreadPoolCoreSize;
-    }
-
-    public void setCustomThreadPoolCoreSize(boolean customThreadPoolCoreSize) {
-        this.customThreadPoolCoreSize = customThreadPoolCoreSize;
-    }
-
-    public Integer getAutoCreatePdfResetMaxCount() {
-        return autoCreatePdfResetMaxCount;
-    }
-
-    public void setAutoCreatePdfResetMaxCount(Integer autoCreatePdfResetMaxCount) {
-        this.autoCreatePdfResetMaxCount = autoCreatePdfResetMaxCount;
-    }
-
-    public Integer getThreadPoolCoreSize() {
-        return threadPoolCoreSize;
-    }
-
-    public void setThreadPoolCoreSize(Integer threadPoolCoreSize) {
-        this.threadPoolCoreSize = threadPoolCoreSize;
-    }
-
     public String getHtmlToPdfUrl() {
         return htmlToPdfUrl;
     }
@@ -95,30 +63,6 @@ public class SysDomain implements Serializable {
         this.htmlToPdfUrl = htmlToPdfUrl;
     }
 
-    public String getAdminLogoUrl() {
-        return adminLogoUrl;
-    }
-
-    public void setAdminLogoUrl(String adminLogoUrl) {
-        this.adminLogoUrl = adminLogoUrl;
-    }
-
-    public Integer getAttachmentLength() {
-        return attachmentLength;
-    }
-
-    public void setAttachmentLength(Integer attachmentLength) {
-        this.attachmentLength = attachmentLength;
-    }
-
-    public Double getAttachmentSize() {
-        return attachmentSize;
-    }
-
-    public void setAttachmentSize(Double attachmentSize) {
-        this.attachmentSize = attachmentSize;
-    }
-
     public boolean isOss() {
         return oss;
     }
@@ -127,14 +71,6 @@ public class SysDomain implements Serializable {
         this.oss = oss;
     }
 
-    public List getAttachmentType() {
-        return attachmentType;
-    }
-
-    public void setAttachmentType(List attachmentType) {
-        this.attachmentType = attachmentType;
-    }
-
     public String getServerUpload() {
         return serverUpload;
     }

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

@@ -1,27 +0,0 @@
-package com.qmth.teachcloud.common.enums;
-
-/**
- * @Description: 本地文件目录枚举
- * @Author: CaoZixuan
- * @Date: 2022-08-11
- */
-public enum LocalCatalogEnum {
-    LOCAL_FILE("localfile","本地文件"),
-    LOCAL_PDF("localpdf","本地pdf")
-    ;
-    private final String type;
-    private final String desc;
-
-    LocalCatalogEnum(String type, String desc) {
-        this.type = type;
-        this.desc = desc;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public String getDesc() {
-        return desc;
-    }
-}

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

@@ -46,7 +46,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
         UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) object.get(SystemConstant.UPLOAD_TYPE));
 
         // 存储路径为空,使用默认值
-        rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        rootPath = StringUtils.isNotBlank(rootPath) ? rootPath : SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
         // 存储文件名为空,使用默认值
         fileName = StringUtils.isNotBlank(fileName) ? fileName : UUID.fastUUID() + basicAttachment.getType();
         // 存储文件类型与附件类型不一样,默认改用附件类型
@@ -73,7 +73,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
 
     @Override
     public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files) {
-        filePath = StringUtils.isNotBlank(filePath) ? filePath : dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + System.currentTimeMillis();
+        filePath = StringUtils.isNotBlank(filePath) ? filePath : SystemConstant.getUserDir() + File.separator + System.currentTimeMillis();
         File rootFile = new File(filePath);
         // 创建保存目录
         if (!rootFile.exists()) {

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

@@ -17,6 +17,7 @@ import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -167,7 +168,14 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             sysOrgSet = new HashSet<>();
             orgCodesMap = new HashMap<>();
         }
-        boolean oss = dictionaryConfig.sysDomain().isOss();
+
+        LocalDateTime nowTime = LocalDateTime.now();
+        StringJoiner stringJoiner = new StringJoiner("");
+        stringJoiner.add(UploadFileEnum.FILE.name().toLowerCase()).add(File.separator)
+                .add(String.valueOf(nowTime.getYear())).add(File.separator)
+                .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
+                .add(String.format("%02d", nowTime.getDayOfMonth())).add(File.separator);
+
         for (OrgInfo o : orgInfoList) {
             orgCodesMap.put(o.getCode(), o.getCode());
             if (authEnum == AuthEnum.OFF_LINE) {
@@ -185,28 +193,25 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             if (Objects.isNull(basicSchool)) {//不存在则创建学校
                 basicSchool = new BasicSchool(o.getId(), o.getCode(), o.getName(), o.getAccessKey(), o.getAccessSecret());
                 if (Objects.nonNull(o.getLogo()) && (!o.getLogo().startsWith("https:") || !o.getLogo().startsWith("http"))) {
-                    String filePath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + SystemConstant.getUuid() + ".jpg";
-                    File logoFile = new File(filePath);
-                    if (!logoFile.getParentFile().exists()) {
-                        // 不存在则创建父目录及子文件
-                        logoFile.getParentFile().mkdirs();
-                        logoFile.createNewFile();
-                    }
-                    SystemConstant.base64ToImage(o.getLogo(), filePath);
+                    File fileTemp = null;
+                    String dirName = null;
+                    try {
+//                        File fileNew = new File("/Users/king/Downloads/spring.jpg");
+//                        fileTemp = File.createTempFile("temp", ".jpg");
+                        SystemConstant.base64ToImage(o.getLogo(), fileTemp.getPath());
+//                        FileUtils.copyInputStreamToFile(new FileInputStream(fileNew), fileTemp);
 
-                    if (oss) {
-                        LocalDateTime nowTime = LocalDateTime.now();
-                        StringJoiner stringJoiner = new StringJoiner("");
-                        stringJoiner.add(UploadFileEnum.FILE.name().toLowerCase()).add(File.separator)
-                                .add(String.valueOf(nowTime.getYear())).add(File.separator)
-                                .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
-                                .add(String.format("%02d", nowTime.getDayOfMonth())).add(File.separator)
-                                .add(SystemConstant.getUuid()).add(".jpg");
-                        fileStoreUtil.ossUpload(stringJoiner.toString(), logoFile, DigestUtils.md5Hex(new FileInputStream(logoFile)), UploadFileEnum.FILE.getFssType());
-                        logoFile.delete();
-                        basicSchool.setLogo(fileStoreUtil.getPrivateUrl(stringJoiner.toString(), UploadFileEnum.FILE.getFssType()));
-                    } else {
-                        basicSchool.setLogo(filePath);
+                        dirName = stringJoiner.toString() + SystemConstant.getNanoId() + "." + FilenameUtils.getExtension(fileTemp.getPath());
+                        fileStoreUtil.ossUpload(dirName, fileTemp, DigestUtils.md5Hex(new FileInputStream(fileTemp)), UploadFileEnum.FILE.getFssType());
+                    } catch (Exception e) {
+                        log.error(SystemConstant.LOG_ERROR, e);
+                    } finally {
+                        if (Objects.nonNull(fileTemp)) {
+                            fileTemp.delete();
+                        }
+                        if (Objects.nonNull(dirName)) {
+                            basicSchool.setLogo(dictionaryConfig.fssPublicDomain().getServer() + File.separator + dirName);
+                        }
                     }
                 } else {
                     basicSchool.setLogo(o.getLogoUrl());

+ 31 - 25
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -8,7 +8,6 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
@@ -16,13 +15,12 @@ import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.FileCopyUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
@@ -66,7 +64,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     public BasicAttachment saveAttachmentPdf(String dirName, Long userId) throws IOException {
         BasicAttachment basicAttachment = null;
         try {
-            StringJoiner stringJoiner = new StringJoiner("").add(dictionaryConfig.fssLocalPdfDomain().getConfig()).add(File.separator);
+            StringJoiner stringJoiner = new StringJoiner("").add(SystemConstant.getUserDir()).add(File.separator);
             File localPdfFile = new File(stringJoiner.toString() + File.separator + dirName);
             if (!localPdfFile.getParentFile().exists()) {
                 localPdfFile.getParentFile().mkdirs();
@@ -128,29 +126,36 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
         BasicAttachment basicAttachment = null;
         try {
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
-            int temp = file.getOriginalFilename().indexOf(".");
-            String fileName = file.getOriginalFilename().substring(0, temp);
-            String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
-            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
-            if (Objects.nonNull(format)) {
-                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
-                if (count == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
-                }
-            }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
-            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
-                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
-            }
+//            int temp = file.getOriginalFilename().indexOf(".");
+//            String fileName = file.getOriginalFilename().substring(0, temp);
+//            String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
+            String fileName = FilenameUtils.getName(file.getOriginalFilename());
+            String format = FilenameUtils.getExtension(file.getOriginalFilename());
+//            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
+            //TODO attachment验证待完善
+//            if (Objects.nonNull(format)) {
+//                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
+//                if (count == 0) {
+//                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
+//                }
+//            }
+//            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+//            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
+//                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
+//            }
+            //TODO attachment验证待完善
             long size = file.getSize();
             BigDecimal b = new BigDecimal(size);
             BigDecimal num = new BigDecimal(1024);
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
-            if (b.doubleValue() > attachmentSize) {
-                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
-            }
+
+            //TODO attachment验证待完善
+//            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+//            if (b.doubleValue() > attachmentSize) {
+//                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
+//            }
+            //TODO attachment验证待完善
             log.info("fileName:{}", fileName);
             log.info("format:{}", format);
             log.info("size:{}", b);
@@ -165,7 +170,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -173,14 +178,15 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
             JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(format);
             if (oss) {//上传至oss\
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), DigestUtils.md5Hex(file.getInputStream()), type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), DigestUtils.md5Hex(file.getInputStream()), LocalCatalogEnum.LOCAL_FILE);
+                //TODO 上传至服务器待加
+//                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());
             }

+ 0 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CommonCacheServiceImpl.java

@@ -1,7 +1,6 @@
 package com.qmth.teachcloud.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qmth.boot.core.solar.service.SolarService;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.result.MenuResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -45,9 +44,6 @@ public class CommonCacheServiceImpl implements CommonCacheService {
     @Resource
     SysRoleService sysRoleService;
 
-    @Resource
-    SolarService solarService;
-
     @Resource
     SysConfigService sysConfigService;
 

+ 11 - 15
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -53,7 +53,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     private CommonCacheService commonCacheService;
 
     @Override
-    public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum,boolean withoutPrintingRoom) {
+    public List<OrgDto> listOrgTree(SpecialPrivilegeEnum specialPrivilegeEnum, boolean withoutPrintingRoom) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         List<SysUserResult> sysUserResultList = sysUserService.findSysUserResultList();
         List<SysUserResult> finalSysUserResultList = sysUserResultList.stream()
@@ -74,7 +74,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 }).collect(Collectors.toList());
 
         List<OrgDto> orgList = this.listOrgAll(schoolId);
-        if (withoutPrintingRoom){
+        if (withoutPrintingRoom) {
             orgList = orgList.stream().filter(e -> !OrgTypeEnum.PRINTING_HOUSE.name().equals(e.getType())).collect(Collectors.toList());
         }
         Map<Long, OrgDto> map = orgList.stream()
@@ -127,9 +127,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 org.updateInfo(sysUser.getId());
                 success = this.updateById(org);
             }
-            if(Objects.isNull(commonCacheService.updateOrgCollegeLevelCache(schoolId))){
-                commonCacheService.removeOrgCollegeLevelCache(schoolId);
-            }
+            commonCacheService.updateOrgCollegeLevelCache(schoolId);
         } catch (Exception e) {
             if (e instanceof DuplicateKeyException) {
                 String errorColumn = e.getCause().toString();
@@ -399,9 +397,7 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                 }
             }
         }
-        if(Objects.isNull(commonCacheService.updateOrgCollegeLevelCache(requestUser.getSchoolId()))){
-            commonCacheService.removeOrgCollegeLevelCache(requestUser.getSchoolId());
-        }
+        commonCacheService.updateOrgCollegeLevelCache(requestUser.getSchoolId());
         return map;
     }
 
@@ -414,13 +410,13 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
 
         List<SysOrg> orgList = this.findParentsByOrgId(orgId).stream().distinct().collect(Collectors.toList());
         List<SysOrg> schoolOrgList = orgList.stream().filter(e -> OrgTypeEnum.SCHOOL.equals(e.getType())).collect(Collectors.toList());
-        if (schoolOrgList.size() != 1){
+        if (schoolOrgList.size() != 1) {
             throw ExceptionResultEnum.ERROR.exception("学校信息异常");
         }
         SysOrg schoolOrg = schoolOrgList.get(0);
         Long schoolOrgId = schoolOrg.getId();
         List<SysOrg> collegeOrgList = orgList.stream().filter(e -> schoolOrgId.equals(e.getParentId())).collect(Collectors.toList());
-        if (collegeOrgList.size() != 1){
+        if (collegeOrgList.size() != 1) {
             throw ExceptionResultEnum.ERROR.exception("开课学院异常");
         }
         return collegeOrgList.get(0);
@@ -430,15 +426,15 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public List<SysOrg> findCollegeLevelOrgList(Long schoolId) {
         SysOrg schoolOrg = this.getOne(new QueryWrapper<SysOrg>()
                 .lambda()
-                .eq(SysOrg::getSchoolId,schoolId)
-                .eq(SysOrg::getType,OrgTypeEnum.SCHOOL));
+                .eq(SysOrg::getSchoolId, schoolId)
+                .eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
 
         Long schoolOrgId = schoolOrg.getId();
 
         return this.list(new QueryWrapper<SysOrg>()
-                .lambda()
-                .eq(SysOrg::getSchoolId,schoolId)
-                .eq(SysOrg::getParentId,schoolOrgId))
+                        .lambda()
+                        .eq(SysOrg::getSchoolId, schoolId)
+                        .eq(SysOrg::getParentId, schoolOrgId))
                 .stream()
                 .filter(e -> !OrgTypeEnum.PRINTING_HOUSE.equals(e.getType()))
                 .collect(Collectors.toList());

+ 6 - 19
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRoleServiceImpl.java

@@ -19,7 +19,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.security.NoSuchAlgorithmException;
@@ -115,15 +114,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 int count = (int) sysRolePrivilegeList.stream().filter(s -> relatedList.contains(s.getPrivilegeId())).count();
                 role.updateInfo(sysUser.getId());
                 sysRoleService.updateById(role);
-                if (Objects.isNull(commonCacheService.updateRoleCache(role.getId()))) {
-                    commonCacheService.removeRoleCache(role.getId());
-                }
+                commonCacheService.updateRoleCache(role.getId());
                 if (count != sysRolePrivilegeList.size() || count != finalRelatedSet.size()) {
                     sysRolePrivilegeService.removeByRoleId(role.getId());
                     sysRolePrivilegeService.saveBatch(role);//角色权限
-                    if (CollectionUtils.isEmpty(commonCacheService.updateRolePrivilegeCache(role.getId()))) {
-                        commonCacheService.removeRolePrivilegeCache(role.getId());
-                    }
+                    commonCacheService.updateRolePrivilegeCache(role.getId());
                     //绑定该角色的用户都需要清除鉴权缓存
                     List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
                     commonService.removeUserInfoBatch(sysUserRoleList.stream().map(SysUserRole::getUserId).collect(Collectors.toList()), true);
@@ -191,16 +186,12 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 int count = (int) sysRolePrivilegeList.stream().filter(s -> relatedList.contains(s.getPrivilegeId())).count();
                 role.updateInfo(sysUser.getId());
                 sysRoleService.updateById(role);
-                if (Objects.isNull(commonCacheService.updateRoleCache(role.getId()))) {
-                    commonCacheService.removeRoleCache(role.getId());
-                }
+                commonCacheService.updateRoleCache(role.getId());
                 if (count != sysRolePrivilegeList.size() || count != finalRelatedSet.size()) {
                     // 删除权限前先更新涉及特殊权限用户 -> 需要重新同步
                     sysRolePrivilegeService.removeByRoleId(role.getId());
                     sysRolePrivilegeService.saveBatch(role);//角色权限
-                    if (CollectionUtils.isEmpty(commonCacheService.updateRolePrivilegeCache(role.getId()))) {
-                        commonCacheService.removeRolePrivilegeCache(role.getId());
-                    }
+                    commonCacheService.updateRolePrivilegeCache(role.getId());
                     //绑定该角色的用户都需要清除鉴权缓存
                     List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
                     commonService.removeUserInfoBatch(sysUserRoleList.stream().map(s -> s.getUserId()).collect(Collectors.toList()), true);
@@ -235,9 +226,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
                 .set(SysRoleGroupMember::getEnable, role.getEnable());
         sysRoleGroupMemberService.update(sysRoleGroupMemberUpdateWrapper);
 
-        if (Objects.isNull(commonCacheService.updateRoleCache(role.getId()))) {
-            commonCacheService.removeRoleCache(role.getId());
-        }
+        commonCacheService.updateRoleCache(role.getId());
         //如果状态为禁用,需要踢下线重新登录
         if (!role.getEnable()) {
             List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());
@@ -254,9 +243,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         updateWrapper.lambda().set(SysRole::getEnable, role.getEnable()).eq(SysRole::getId, role.getId());
         this.update(updateWrapper);
 
-        if (Objects.isNull(commonCacheService.updateRoleCache(role.getId()))) {
-            commonCacheService.removeRoleCache(role.getId());
-        }
+        commonCacheService.updateRoleCache(role.getId());
         //如果状态为禁用,需要踢下线重新登录
         if (!role.getEnable()) {
             List<SysUserRole> sysUserRoleList = sysUserRoleService.listByRoleId(role.getId());

+ 7 - 17
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -161,9 +161,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public boolean enable(SysUser user) throws NoSuchAlgorithmException, IllegalAccessException {
         UpdateWrapper<SysUser> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(SysUser::getEnable, user.getEnable()).eq(SysUser::getId, user.getId());
-        if (Objects.isNull(commonCacheService.updateUserCache(user.getId()))) {
-            commonCacheService.removeUserCache(user.getId());
-        }
+        commonCacheService.updateUserCache(user.getId());
         boolean success = this.update(updateWrapper);
         //如果状态为禁用,需要踢下线重新登录
         if (!user.getEnable()) {
@@ -556,12 +554,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 if (Objects.nonNull(dbUser.getOrgId())) {
                     if (dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
-                        if (Objects.isNull(commonCacheService.updateUserCache(sysUser.getId()))) {
-                            commonCacheService.removeUserCache(sysUser.getId());
-                        }
-                        if (Objects.isNull(commonCacheService.updateUserAuthCache(sysUser.getId()))) {
-                            commonCacheService.removeUserAuthCache(sysUser.getId());
-                        }
+                        commonCacheService.updateUserCache(sysUser.getId());
+                        commonCacheService.updateUserAuthCache(sysUser.getId());
                     }
                 }
 
@@ -655,12 +649,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 if (Objects.nonNull(dbUser.getOrgId())) {
                     if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
                             || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
-                        if (Objects.isNull(commonCacheService.updateUserCache(sysUser.getId()))) {
-                            commonCacheService.removeUserCache(sysUser.getId());
-                        }
-                        if (Objects.isNull(commonCacheService.updateUserAuthCache(sysUser.getId()))) {
-                            commonCacheService.removeUserAuthCache(sysUser.getId());
-                        }
+                        commonCacheService.updateUserCache(sysUser.getId());
+                        commonCacheService.updateUserAuthCache(sysUser.getId());
                     }
                 }
             }
@@ -1003,8 +993,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public void buildAdministratorForSchool(Long schoolId) {
         // 为没有学校管理员的学校自动创建一个学校管理员
         QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
-        if (SystemConstant.longNotNull(schoolId)){
-            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getId,schoolId);
+        if (SystemConstant.longNotNull(schoolId)) {
+            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getId, schoolId);
         }
         List<BasicSchool> basicSchoolList = basicSchoolService.list(basicSchoolQueryWrapper);
         SysRole role = sysRoleService.list(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.SCHOOL_ADMIN)).get(0);

+ 12 - 18
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -372,10 +372,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             tbSessionService.removeById(sessionId);
             redisUtil.deleteUserSession(sessionId);
         }
-        commonCacheService.removeUserCache(userId);
-        commonCacheService.removeUserAuthCache(userId);
-        commonCacheService.removeUserMenuCache(userId);
-        commonCacheService.removeUserRolePrivilegeCache(userId);
+        SystemConstant.deleteUserCache(userId);
     }
 
     /**
@@ -429,10 +426,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
                     redisUtil.deleteUserSession(tbSession.getId());
                 }
                 for (Long l : userIds) {
-                    commonCacheService.removeUserCache(l);
-                    commonCacheService.removeUserAuthCache(l);
-                    commonCacheService.removeUserMenuCache(l);
-                    commonCacheService.removeUserRolePrivilegeCache(l);
+                    SystemConstant.deleteUserCache(l);
                 }
             }).start();
         }
@@ -451,7 +445,7 @@ 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)) {
-            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
+            String hostUrl = SystemConstant.getLocalFileHost(SystemConstant.getUserDir());
             filePath = SystemConstant.getLocalFilePath(hostUrl, filePath);
             if (filePath.startsWith("/")) {
                 url = hostUrl + filePath;
@@ -481,7 +475,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         String pathUrl;
         if (Objects.equals(type, SystemConstant.LOCAL)) {
-            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
+            String hostUrl = SystemConstant.getLocalFileHost(SystemConstant.getUserDir());
             path = SystemConstant.getLocalFilePath(hostUrl, path);
             if (path.startsWith("/")) {
                 pathUrl = hostUrl + path;
@@ -522,7 +516,7 @@ 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)) {
-            String hostUrl = SystemConstant.getLocalFileHost(dictionaryConfig.fssLocalFileDomain().getServer());
+            String hostUrl = SystemConstant.getLocalFileHost(SystemConstant.getUserDir());
             filePath = SystemConstant.getLocalFilePath(hostUrl, filePath);
             if (filePath.startsWith("/")) {
                 pathUrl = hostUrl + filePath;
@@ -597,11 +591,11 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         StringJoiner localPath = new StringJoiner("");
         if (Objects.equals(attachmentType, SystemConstant.OSS)) {
 //            file = ossUtil.ossDownload(filePath, localPath.toString());
-            localPath = localPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator).add(filePath);
+            localPath = localPath.add(SystemConstant.getUserDir()).add(File.separator).add(filePath);
             file = fileStoreUtil.ossDownload(filePath, localPath.toString(), uploadType.getFssType());
         } else {
-            if (!filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
-                localPath = localPath.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator).add(filePath);
+            if (!filePath.contains(SystemConstant.getUserDir())) {
+                localPath = localPath.add(SystemConstant.getUserDir()).add(File.separator).add(filePath);
             } else {
                 localPath = localPath.add(filePath);
             }
@@ -651,7 +645,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         File zipFile = null;
         try {
-            String zipPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + schoolId;
+            String zipPath = SystemConstant.getUserDir() + File.separator + schoolId;
             zipFile = FileUtil.file(zipPath, time + ".zip");
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), files, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));
@@ -682,7 +676,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         File zipFile = null;
         try {
-            String zipPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + schoolId;
+            String zipPath = SystemConstant.getUserDir() + File.separator + schoolId;
             zipFile = FileUtil.file(zipPath, time + ".zip");
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), zipRootPath, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));
@@ -705,7 +699,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         }
         File zipFile = null;
         try {
-            zipFile = FileUtil.file(dictionaryConfig.fssLocalFileDomain().getConfig(), time + ".zip");
+            zipFile = FileUtil.file(SystemConstant.getUserDir(), time + ".zip");
             Zip4jUtil.zipEncryptFile(zipFile.getPath(), rootPath, SystemConstant.ZIP_ENCRYPT_PWD);
             outputFile(response, zipFile, String.valueOf(time));
         } catch (Exception e) {
@@ -761,7 +755,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             throw ExceptionResultEnum.ROLE_ENABLE_AUTHORIZATION.exception();
         }
         //生成token
-        String token = SystemConstant.getUuid();
+        String token = SystemConstant.getNanoId();
         commonCacheService.userCache(sysUser.getId());
         //添加用户会话缓存
         Set<String> roleNamesSet = new HashSet<>(), roleTypes = new HashSet<>();

+ 27 - 31
teachcloud-common/src/main/java/com/qmth/teachcloud/common/threadPool/MyThreadPool.java

@@ -1,18 +1,13 @@
 package com.qmth.teachcloud.common.threadPool;//package com.qmth.themis.business.threadPool;
 
-import com.qmth.teachcloud.common.contant.SystemConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 
-import javax.annotation.PostConstruct;
-import java.util.Objects;
 import java.util.concurrent.Executor;
-import java.util.concurrent.ThreadPoolExecutor;
 
 /**
  * @Description: 线程池应用配置
@@ -27,11 +22,11 @@ public class MyThreadPool extends ThreadPoolTaskExecutor {
     private MyThreadPool threadPoolTaskExecutor = null;
     static final int cpuNum = Runtime.getRuntime().availableProcessors();
 
-    @Value("${sys.config.threadPoolCoreSize}")
-    Integer threadPoolCoreSize;
-
-    @Value("${sys.config.customThreadPoolCoreSize}")
-    boolean customThreadPoolCoreSize;
+//    @Value("${sys.config.threadPoolCoreSize}")
+//    Integer threadPoolCoreSize;
+//
+//    @Value("${sys.config.customThreadPoolCoreSize}")
+//    boolean customThreadPoolCoreSize;
 
     /**
      * 线程池
@@ -41,27 +36,28 @@ public class MyThreadPool extends ThreadPoolTaskExecutor {
     @Bean
     @Primary
     public Executor taskThreadPool() {
-        if (Objects.isNull(threadPoolTaskExecutor)) {
-            log.info("cpuNum:{}", cpuNum);
-            threadPoolTaskExecutor = new MyThreadPool();
-            if (!customThreadPoolCoreSize && cpuNum > 0) {
-                threadPoolTaskExecutor.setCorePoolSize(cpuNum);//核心线程数
-                threadPoolTaskExecutor.setMaxPoolSize(cpuNum * 2);//最大线程数
-            } else {
-                threadPoolTaskExecutor.setCorePoolSize(threadPoolCoreSize);//核心线程数
-                threadPoolTaskExecutor.setMaxPoolSize(threadPoolCoreSize * 2);//最大线程数
-            }
-            threadPoolTaskExecutor.setKeepAliveSeconds(SystemConstant.THREAD_POOL_KEEP_ALIVE_SECONDS);//线程空闲时间
-            threadPoolTaskExecutor.setQueueCapacity(SystemConstant.THREAD_POOL_QUEUE_CAPACITY);//队列容量
-            threadPoolTaskExecutor.setThreadNamePrefix(SystemConstant.THREAD_POOL_NAME);
-            threadPoolTaskExecutor.setAllowCoreThreadTimeOut(true);//设置是否允许核心线程超时。若允许,核心线程超时后,会被销毁。默认为不允许(fasle)
-            threadPoolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);//设置shutdown时是否等到所有任务完成再真正关闭
-            threadPoolTaskExecutor.setAwaitTerminationSeconds(60);//当setWaitForTasksToCompleteOnShutdown(true)时,setAwaitTerminationSeconds 设置在 shutdown 之后最多等待多长时间后再真正关闭线程池
-            // rejection-policy:当pool已经达到max size的时候,如何处理新任务
-            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
-            threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
-            threadPoolTaskExecutor.initialize();
-        }
+        //TODO 自定义线程数待完善
+//        if (Objects.isNull(threadPoolTaskExecutor)) {
+//            log.info("cpuNum:{}", cpuNum);
+//            threadPoolTaskExecutor = new MyThreadPool();
+//            if (!customThreadPoolCoreSize && cpuNum > 0) {
+//                threadPoolTaskExecutor.setCorePoolSize(cpuNum);//核心线程数
+//                threadPoolTaskExecutor.setMaxPoolSize(cpuNum * 2);//最大线程数
+//            } else {
+//                threadPoolTaskExecutor.setCorePoolSize(threadPoolCoreSize);//核心线程数
+//                threadPoolTaskExecutor.setMaxPoolSize(threadPoolCoreSize * 2);//最大线程数
+//            }
+//            threadPoolTaskExecutor.setKeepAliveSeconds(SystemConstant.THREAD_POOL_KEEP_ALIVE_SECONDS);//线程空闲时间
+//            threadPoolTaskExecutor.setQueueCapacity(SystemConstant.THREAD_POOL_QUEUE_CAPACITY);//队列容量
+//            threadPoolTaskExecutor.setThreadNamePrefix(SystemConstant.THREAD_POOL_NAME);
+//            threadPoolTaskExecutor.setAllowCoreThreadTimeOut(true);//设置是否允许核心线程超时。若允许,核心线程超时后,会被销毁。默认为不允许(fasle)
+//            threadPoolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);//设置shutdown时是否等到所有任务完成再真正关闭
+//            threadPoolTaskExecutor.setAwaitTerminationSeconds(60);//当setWaitForTasksToCompleteOnShutdown(true)时,setAwaitTerminationSeconds 设置在 shutdown 之后最多等待多长时间后再真正关闭线程池
+//            // rejection-policy:当pool已经达到max size的时候,如何处理新任务
+//            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
+//            threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+//            threadPoolTaskExecutor.initialize();
+//        }
         return threadPoolTaskExecutor;
     }
 }

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

@@ -1,10 +1,8 @@
 package com.qmth.teachcloud.common.util;
 
 import com.qmth.boot.core.fss.service.FileService;
-import com.qmth.boot.core.fss.store.FileStore;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
@@ -15,8 +13,6 @@ import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.io.*;
-import java.time.Duration;
-import java.util.Objects;
 
 /**
  * @Description: 文件存储工具类
@@ -46,43 +42,43 @@ public class FileStoreUtil {
         log.info("dirName:{}", dirName);
     }
 
-    /**
-     * 上传文件到本地
-     *
-     * @param dirName     上传到地址
-     * @param inputStream 流
-     * @param catalogType 文件
-     */
-    public void localUpload(String dirName, InputStream inputStream, String md5, LocalCatalogEnum catalogType) throws Exception {
-        log.info("ossUpload is come in");
-        String configPath = "";
-        switch (catalogType) {
-            case LOCAL_FILE:
-                configPath = dictionaryConfig.fssLocalFileDomain().getConfig();
-                break;
-            case LOCAL_PDF:
-                configPath = dictionaryConfig.fssLocalPdfDomain().getConfig();
-                break;
-            default:
-                break;
-        }
-        dirName = dirName.replaceAll(configPath, "");
-        fileService.getFileStore(catalogType.getType()).write(dirName, inputStream, md5);
-        log.info("dirName:{}", dirName);
-    }
-
-    /**
-     * 上传文件到本地
-     *
-     * @param inputStream 流
-     * @param finalFile   最终文件
-     * @param catalogType 文件类型
-     * @throws Exception 异常
-     */
-    public void copyInputStreamToFile(InputStream inputStream, File finalFile, String md5, LocalCatalogEnum catalogType) throws Exception {
-        String dirName = finalFile.getPath().replaceAll("\\\\", "/");
-        this.localUpload(dirName, inputStream, md5, catalogType);
-    }
+//    /**
+//     * 上传文件到本地
+//     *
+//     * @param dirName     上传到地址
+//     * @param inputStream 流
+//     * @param catalogType 文件
+//     */
+//    public void localUpload(String dirName, InputStream inputStream, String md5, LocalCatalogEnum catalogType) throws Exception {
+//        log.info("ossUpload is come in");
+//        String configPath = "";
+//        switch (catalogType) {
+//            case LOCAL_FILE:
+//                configPath = dictionaryConfig.fssLocalFileDomain().getConfig();
+//                break;
+//            case LOCAL_PDF:
+//                configPath = dictionaryConfig.fssLocalPdfDomain().getConfig();
+//                break;
+//            default:
+//                break;
+//        }
+//        dirName = dirName.replaceAll(configPath, "");
+//        fileService.getFileStore(catalogType.getType()).write(dirName, inputStream, md5);
+//        log.info("dirName:{}", dirName);
+//    }
+
+//    /**
+//     * 上传文件到本地
+//     *
+//     * @param inputStream 流
+//     * @param finalFile   最终文件
+//     * @param catalogType 文件类型
+//     * @throws Exception 异常
+//     */
+//    public void copyInputStreamToFile(InputStream inputStream, File finalFile, String md5, LocalCatalogEnum catalogType) throws Exception {
+//        String dirName = finalFile.getPath().replaceAll("\\\\", "/");
+//        this.localUpload(dirName, inputStream, md5, catalogType);
+//    }
 
     /**
      * 上传文件
@@ -159,16 +155,9 @@ public class FileStoreUtil {
     public String getPrivateUrl(String objectPath, String type) {
         String server = null;
         if ("public".equals(type)) {
-            server = dictionaryConfig.fssPublicDomain().getServer();
-            return server + "/" + objectPath;
+            return dictionaryConfig.fssPublicDomain().getServer() + "/" + objectPath;
         } else if ("private".equals(type)) {
-            Boolean oss = dictionaryConfig.sysDomain().isOss();
-            if (Objects.nonNull(oss) && oss) {
-                FileStore fileStore = fileService.getFileStore(type);
-                return fileStore.getPresignedUrl(objectPath, Duration.ofMinutes(5L));
-            } else {
-                return dictionaryConfig.fssPrivateDomain().getServer() + "/" + objectPath;
-            }
+            return dictionaryConfig.fssPrivateDomain().getServer() + "/" + objectPath;
         } else {
             throw ExceptionResultEnum.ERROR.exception("文件存储store类型不存在");
         }

+ 22 - 21
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -12,7 +12,6 @@ import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBSession;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.enums.LocalCatalogEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
@@ -29,7 +28,6 @@ import com.qmth.teachcloud.report.business.service.*;
 import com.qmth.teachcloud.report.business.utils.AnalyzeScopeUtil;
 import com.qmth.teachcloud.report.business.utils.MathUtil;
 import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -668,7 +666,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             if (Objects.nonNull(sysUser)) {
                 HttpServletResponse response = ServletUtil.getResponse();
                 String redirectURL = ThirdUserAuthCacheUtil.getAuthReturnUrl(String.valueOf(sysUser.getId()));
-                ThirdUserAuthCacheUtil.deleteCache(sysUser.getId());
+                SystemConstant.deleteUserCache(sysUser.getId());
                 response.setHeader("Access-Control-Allow-Origin", "*");
                 response.sendRedirect(redirectURL);
             }
@@ -727,26 +725,28 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             int temp = file.getOriginalFilename().lastIndexOf(".");
             String fileName = file.getOriginalFilename().substring(0, temp);
             String format = file.getOriginalFilename().substring(temp, file.getOriginalFilename().length());
-            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
-            if (Objects.nonNull(format)) {
-                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
-                if (count == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
-                }
-            }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
-            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
-                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
-            }
+//            TODO attachment验证待完善
+//            List<String> attachmentTypeList = dictionaryConfig.sysDomain().getAttachmentType();
+//            if (Objects.nonNull(format)) {
+//                long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
+//                if (count == 0) {
+//                    throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
+//                }
+//            }
+//            TODO attachment验证待完善
+//            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+//            if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
+//                throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
+//            }
             long size = file.getSize();
             BigDecimal b = new BigDecimal(size);
             BigDecimal num = new BigDecimal(1024);
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
-            if (b.doubleValue() > attachmentSize) {
-                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
-            }
+//            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+//            if (b.doubleValue() > attachmentSize) {
+//                throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
+//            }
             log.info("fileName:{}", fileName);
             log.info("format:{}", format);
             log.info("size:{}", b);
@@ -761,7 +761,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             }
             stringJoiner.add(type.getTitle()).add(File.separator);
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
@@ -774,7 +774,7 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
             JSONObject jsonObject = new JSONObject();
-            stringJoiner.add(File.separator).add(SystemConstant.getUuid()).add(format);
+            stringJoiner.add(File.separator).add(SystemConstant.getNanoId()).add(format);
             if (oss) {//上传至oss\
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
@@ -782,7 +782,8 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
-                fileStoreUtil.copyInputStreamToFile(file.getInputStream(),new File(stringJoiner.toString()),md5, LocalCatalogEnum.LOCAL_FILE);
+//                TODO 上传至服务器待完善
+//                fileStoreUtil.copyInputStreamToFile(file.getInputStream(), new File(stringJoiner.toString()), md5, LocalCatalogEnum.LOCAL_FILE);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff