Эх сурвалжийг харах

merge dev_v3.2.1_配置优化版本

wangliang 2 жил өмнө
parent
commit
433055f028
100 өөрчлөгдсөн 672 нэмэгдсэн , 2133 устгасан
  1. 3 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/backup/MySQLDatabaseBackup.java
  2. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java
  3. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicTemplateServiceImpl.java
  4. 2 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  5. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DownloadServiceImpl.java
  6. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  7. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  8. 6 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java
  9. 51 34
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  10. 10 12
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SsoServiceImpl.java
  11. 30 29
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java
  12. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TSyncExamStudentScoreServiceImpl.java
  13. 6 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java
  14. 10 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  15. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/push/AsyncPushTaskTemplate.java
  16. 22 21
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  17. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java
  18. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/FreemarkerUtil.java
  19. 2 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/HtmlToJpgUtil.java
  20. 4 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/PdfUtil.java
  21. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCampusController.java
  22. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCardRuleController.java
  23. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicClazzController.java
  24. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCollegeController.java
  25. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicCourseController.java
  26. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamController.java
  27. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicExamRuleController.java
  28. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMajorController.java
  29. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicMessageController.java
  30. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicPrintConfigController.java
  31. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicSemesterController.java
  32. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicStudentController.java
  33. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/BasicTemplateController.java
  34. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java
  35. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/DownloadController.java
  36. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/EnumsController.java
  37. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamCardController.java
  38. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java
  39. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java
  40. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java
  41. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  42. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  43. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchController.java
  44. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeBatchPaperController.java
  45. 1 3
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradeModuleEvaluationController.java
  46. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperController.java
  47. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperDimensionController.java
  48. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/GradePaperStructController.java
  49. 7 5
      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. 5 6
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysAdminSetController.java
  53. 10 5
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  54. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysOrgController.java
  55. 2 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysPrivilegeController.java
  56. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysRoleController.java
  57. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysUserController.java
  58. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBSyncTaskController.java
  59. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  60. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java
  61. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java
  62. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java
  63. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachClazzController.java
  64. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachCourseController.java
  65. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TeachStudentController.java
  66. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java
  67. 8 6
      distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java
  68. 5 1
      distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java
  69. 0 193
      distributed-print/src/main/resources/application-36dev.properties
  70. 0 196
      distributed-print/src/main/resources/application-dev.properties
  71. 0 196
      distributed-print/src/main/resources/application-offline.properties
  72. 0 196
      distributed-print/src/main/resources/application-test.properties
  73. 113 2
      distributed-print/src/main/resources/application.properties
  74. 8 8
      distributed-print/src/test/java/com/qmth/distributed/print/FssTest.java
  75. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicAttachmentController.java
  76. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/BasicSchoolController.java
  77. 2 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysConfigController.java
  78. 1 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/SysRoleGroupMemberController.java
  79. 1 1
      teachcloud-common-api/src/main/java/com/qmth/teachcloud/common/api/api/TSAuthController.java
  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. 4 90
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/config/DictionaryConfig.java
  83. 150 9
      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 33
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/CasDomain.java
  86. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalFileDomain.java
  87. 0 28
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/FssLocalPdfDomain.java
  88. 0 243
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java
  89. 0 98
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrintOpenDomain.java
  90. 0 103
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/ReportOpenDomain.java
  91. 26 26
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SmsDomain.java
  92. 0 167
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SyncDataDomain.java
  93. 33 99
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SysDomain.java
  94. 0 39
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/YunMarkDomain.java
  95. 0 27
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/LocalCatalogEnum.java
  96. 8 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CommonCacheService.java
  97. 9 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysConfigService.java
  98. 2 2
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AttachmentCommonServiceImpl.java
  99. 27 22
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/AuthInfoServiceImpl.java
  100. 30 16
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

+ 3 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/backup/MySQLDatabaseBackup.java

@@ -3,7 +3,6 @@ package com.qmth.distributed.print.business.backup;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.DateUtil;
 import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
 import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysOrg;
@@ -38,9 +37,6 @@ import java.util.Optional;
 public class MySQLDatabaseBackup {
 public class MySQLDatabaseBackup {
     private final static Logger log = LoggerFactory.getLogger(MySQLDatabaseBackup.class);
     private final static Logger log = LoggerFactory.getLogger(MySQLDatabaseBackup.class);
 
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Value("${db.host}")
     @Value("${db.host}")
     String host;
     String host;
 
 
@@ -78,7 +74,7 @@ public class MySQLDatabaseBackup {
      * @throws Exception
      * @throws Exception
      */
      */
     public boolean exportDatabaseTool() throws Exception {
     public boolean exportDatabaseTool() throws Exception {
-        File file = new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + "db" + File.separator + "backup" + File.separator + DateUtil.format(new Date(), SystemConstant.BACK_UP_DATE_PATTERN) + "_" + NanoIdUtils.randomNanoId() + "_backup.sql");
+        File file = new File(SystemConstant.getUserDir() + File.separator + "db" + File.separator + "backup" + File.separator + DateUtil.format(new Date(), SystemConstant.BACK_UP_DATE_PATTERN) + "_" + NanoIdUtils.randomNanoId() + "_backup.sql");
         if (!file.exists()) {
         if (!file.exists()) {
             file.getParentFile().mkdirs();
             file.getParentFile().mkdirs();
             file.createNewFile();
             file.createNewFile();
@@ -122,7 +118,7 @@ public class MySQLDatabaseBackup {
 
 
         InputStream inputStream = MySQLDatabaseBackup.class.getClassLoader().getResourceAsStream(fileName);
         InputStream inputStream = MySQLDatabaseBackup.class.getClassLoader().getResourceAsStream(fileName);
         Optional.ofNullable(inputStream).orElseThrow(() -> ExceptionResultEnum.ERROR.exception(fileName + "未找到"));
         Optional.ofNullable(inputStream).orElseThrow(() -> ExceptionResultEnum.ERROR.exception(fileName + "未找到"));
-        File file = new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + "db" + File.separator + "delete" + File.separator + DateUtil.format(new Date(), SystemConstant.BACK_UP_DATE_PATTERN) + "_" + NanoIdUtils.randomNanoId() + "_" + schoolId + "_delete.sql");
+        File file = new File(SystemConstant.getUserDir() + File.separator + "db" + File.separator + "delete" + File.separator + DateUtil.format(new Date(), SystemConstant.BACK_UP_DATE_PATTERN) + "_" + NanoIdUtils.randomNanoId() + "_" + schoolId + "_delete.sql");
         if (!file.exists()) {
         if (!file.exists()) {
             file.getParentFile().mkdirs();
             file.getParentFile().mkdirs();
             file.createNewFile();
             file.createNewFile();
@@ -217,7 +213,7 @@ public class MySQLDatabaseBackup {
                     for (SysConfig s : sysConfigList) {
                     for (SysConfig s : sysConfigList) {
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.PDF_SIZE_LIST);
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.PDF_SIZE_LIST);
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.ACCOUNT_SMS_VERIFY);
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.ACCOUNT_SMS_VERIFY);
-                        commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_SERVICE_PATH);
+                        commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL);
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.SYNC_SERVICE_PATH);
                         commonCacheService.removeSysConfigCache(s.getSchoolId(), SystemConstant.SYNC_SERVICE_PATH);
                     }
                     }
                 }
                 }

+ 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图片(这一步可做可不做)
         //保存png图片(这一步可做可不做)
         InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
         InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
         try {
         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) {
         } catch (IOException e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
@@ -265,7 +265,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         //保存xml文件(这一步可做可不做)
         //保存xml文件(这一步可做可不做)
         InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
         InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
         try {
         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) {
         } catch (IOException e) {
             e.printStackTrace();
             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)
         pdfStringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                 .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                 .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                 .add(String.format("%02d", nowTime.getDayOfMonth()));
                 .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 pdfDirName = pdfStringJoiner.toString();
-        String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+        String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
 
         // 签到表
         // 签到表
         if (ClassifyEnum.SIGN.equals(classifyEnum)) {
         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.bean.dto.stmms.QuestionDTO;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 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.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicCollege;
 import com.qmth.teachcloud.common.entity.BasicCollege;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -567,7 +568,7 @@ public class DataSyncServiceImpl implements DataSyncService {
      */
      */
     private String getTempDir(SyncFileTypeEnum type) {
     private String getTempDir(SyncFileTypeEnum type) {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         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<File> fileList = new ArrayList<>();
 
 
         List<String> unexposedPaperTypes = Arrays.asList(unexposedPaperType.split(","));
         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 {
     public void downloadFiles(HttpServletResponse response, ArraysParams arraysParams) throws Exception {
         // 路径规则:download-temp/{time}/{schoolId}/{courseCode}-{couseName}/{paperNumber}/{fileName}
         // 路径规则:download-temp/{time}/{schoolId}/{courseCode}-{couseName}/{paperNumber}/{fileName}
         long time = System.nanoTime();
         long time = System.nanoTime();
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+        String rootPath = SystemConstant.getUserDir() + File.separator + time;
 
 
         Long[] cardIds = arraysParams.getIds();
         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);
         List<JSONObject> jsonObjectList = JSONObject.parseArray(paperAttachmentIds, JSONObject.class);
         // 本地保存目录
         // 本地保存目录
         Long time = System.currentTimeMillis();
         Long time = System.currentTimeMillis();
-        String rootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+        String rootPath = SystemConstant.getUserDir() + File.separator + time;
         StringJoiner dirPath = new StringJoiner("")
         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(String.valueOf(time)).add(File.separator)
                 .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                 .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                 .add(examTaskDetailPdfDownloadDto.getExamName()).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("附件数据异常");
                     throw ExceptionResultEnum.ERROR.exception("附件数据异常");
                 }
                 }
                 StringJoiner paperPath = new StringJoiner("")
                 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(String.valueOf(time)).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getExamName()).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();
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
                 StringJoiner stringJoiner = new StringJoiner("");
                 if (!oss) {
                 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(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
                         .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();
                 JSONObject jsonObject = new JSONObject();
 
 
@@ -393,7 +393,8 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                     jsonObject.put(SystemConstant.PATH, dirName);
                     jsonObject.put(SystemConstant.PATH, dirName);
                 } else {//上传至服务器
                 } 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.TYPE, SystemConstant.LOCAL);
                     jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
                     jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
                 }
                 }
@@ -492,12 +493,12 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 Long orgId = sysUser.getOrgId();
                 Long orgId = sysUser.getOrgId();
                 SysOrg userSecondaryOrg = sysOrgService.findCollegeLevelOrgByOrgId(orgId);
                 SysOrg userSecondaryOrg = sysOrgService.findCollegeLevelOrgByOrgId(orgId);
                 Long userSecondaryOrgId = userSecondaryOrg.getId();
                 Long userSecondaryOrgId = userSecondaryOrg.getId();
-                if (!courseSecondaryOrgId.equals(userSecondaryOrgId)){
+                if (!courseSecondaryOrgId.equals(userSecondaryOrgId)) {
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户所在学院为【" + userSecondaryOrg.getName() +
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户所在学院为【" + userSecondaryOrg.getName() +
                             "】,和课程所在学院【" + sysOrgService.getById(courseSecondaryOrgId).getName() + "】不一致");
                             "】,和课程所在学院【" + sysOrgService.getById(courseSecondaryOrgId).getName() + "】不一致");
                 }
                 }
                 String dbRealName = sysUser.getRealName();
                 String dbRealName = sysUser.getRealName();
-                if (!dbRealName.equals(key[1])){
+                if (!dbRealName.equals(key[1])) {
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户姓名【" + key[1] +
                     throw ExceptionResultEnum.ERROR.exception("导入的excel中,工号为【" + key[0] + "】的用户姓名【" + key[1] +
                             "】,与系统用户姓名【" + dbRealName + "】不一致 请检查excel数据");
                             "】,与系统用户姓名【" + dbRealName + "】不一致 请检查excel数据");
                 }
                 }

+ 51 - 34
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -38,6 +38,7 @@ import com.qmth.teachcloud.common.mapper.BasicCourseMapper;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -184,18 +185,18 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             File htmlFile = null;
             File htmlFile = null;
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
             if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.FTL_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
                 filePath = (String) jsonObject.get(SystemConstant.HTML_PATH);
-                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                if (filePath.contains(SystemConstant.getUserDir())) {
                     url = filePath;
                     url = filePath;
                 } else {
                 } else {
-                    url = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + filePath;
+                    url = SystemConstant.getUserDir() + File.separator + filePath;
                 }
                 }
                 htmlFile = new File(url);
                 htmlFile = new File(url);
             } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
             } else if (Objects.nonNull(type) && Objects.equals(type, SystemConstant.HTML_PREFIX)) {
                 filePath = (String) jsonObject.get(SystemConstant.PATH);
                 filePath = (String) jsonObject.get(SystemConstant.PATH);
-                if (filePath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+                if (filePath.contains(SystemConstant.getUserDir())) {
                     url = filePath;
                     url = filePath;
                 } else {
                 } 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));
                 UploadFileEnum uploadType = Enum.valueOf(UploadFileEnum.class, (String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
 //                htmlFile = ossUtil.ossDownload(filePath, url);
 //                htmlFile = ossUtil.ossDownload(filePath, url);
@@ -211,11 +212,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .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 pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
             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);
             File pdfFile = new File(destUrl);
             if (!pdfFile.exists()) {
             if (!pdfFile.exists()) {
@@ -304,11 +305,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .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 pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+            String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
 
             createPrintPdfUtil.createSignPdf(pdfFillDto, destUrl);
             createPrintPdfUtil.createSignPdf(pdfFillDto, destUrl);
 
 
@@ -381,7 +382,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
             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)
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -389,7 +390,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
 
             JSONObject jsonObject = new JSONObject();
             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;
             String fileMd5 = null;
             if (oss) {//上传至oss
             if (oss) {//上传至oss
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
@@ -397,7 +398,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.HTML_PATH, dirName);
                 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 = ossUtil.ossDownload(dirName, url);
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
                 StringJoiner pdfStringJoiner = new StringJoiner("");
@@ -405,10 +406,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 pdfStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
                         .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 pdfDirName = pdfStringJoiner.toString();
-                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+                String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A3);
@@ -490,7 +491,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
             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)
             stringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -498,7 +499,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
 
             JSONObject jsonObject = new JSONObject();
             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;
             String fileMd5 = null;
 
 
             if (oss) {//上传至oss
             if (oss) {//上传至oss
@@ -506,17 +507,17 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 fileStoreUtil.ossUpload(dirName, htmlContent, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
                 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());
                 File localHtmlFile = fileStoreUtil.ossDownload(dirName, url, fileStoreUtil.getUploadEnumByPath(dirName).getFssType());
                 StringJoiner pdfStringJoiner = new StringJoiner("");
                 StringJoiner pdfStringJoiner = new StringJoiner("");
                 pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
                 pdfStringJoiner.add(UploadFileEnum.PDF.getTitle()).add(File.separator);
                 pdfStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()));
                         .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 pdfDirName = pdfStringJoiner.toString();
-                String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+                String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 //                destUrl = destUrl.replaceAll("\\\\","/");
 //                destUrl = destUrl.replaceAll("\\\\","/");
 
 
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A4);
                 HtmlToPdfUtil.convert(localHtmlFile.getPath(), destUrl, PageSizeEnum.A4);
@@ -593,16 +594,24 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         try {
         try {
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
             int temp = file.getOriginalFilename().lastIndexOf(".");
             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();
+//            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());
+
+            SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_TYPE);
+            Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件类型"));
+            List<String> attachmentTypeList = Arrays.asList(sysConfig.getConfigValue().replaceAll("\\[", "").replaceAll("\\]", "").split(", "));
             if (Objects.nonNull(format)) {
             if (Objects.nonNull(format)) {
                 long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
                 long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
                 if (count == 0) {
                 if (count == 0) {
                     throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
                     throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
                 }
                 }
             }
             }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+
+            SysConfig sysConfigLength = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_LENGTH);
+            Optional.ofNullable(sysConfigLength).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件名称长度"));
+            int attachmentLength = Integer.parseInt(sysConfigLength.getConfigValue());
             if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
             if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
                 throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
                 throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
             }
             }
@@ -611,7 +620,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             BigDecimal num = new BigDecimal(1024);
             BigDecimal num = new BigDecimal(1024);
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+
+            SysConfig sysConfigSize = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_SIZE);
+            Optional.ofNullable(sysConfigSize).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件大小"));
+            double attachmentSize = Double.valueOf(sysConfigSize.getConfigValue());
             if (b.doubleValue() > attachmentSize) {
             if (b.doubleValue() > attachmentSize) {
                 throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
                 throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
             }
             }
@@ -629,7 +641,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
             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(type.getTitle()).add(File.separator);
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
 //            else if (type == UploadFileEnum.PAPER) {//试卷需要单独
@@ -642,14 +654,15 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
 
             JSONObject jsonObject = new JSONObject();
             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("\\\\", "/");
             String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
-            if (oss) {//上传至oss\
+            if (oss) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), md5, type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
             } 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.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, dirName);
                 jsonObject.put(SystemConstant.PATH, dirName);
             }
             }
@@ -882,7 +895,10 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
         List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
         if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
         if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
             for (TBTask tbTask : tbTasks) {
             for (TBTask tbTask : tbTasks) {
-                if (tbTask.getResetCount() < dictionaryConfig.sysDomain().getAutoCreatePdfResetMaxCount()) {
+                SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.AUTO_CREATE_PDF_RESET_MAX_COUNT);
+                Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置自动重试生成pdf失败最大次数"));
+                Integer maxResetCount = Integer.parseInt(sysConfig.getConfigValue());
+                if (tbTask.getResetCount() < maxResetCount.intValue()) {
                     Map<String, Object> map = new HashMap<>();
                     Map<String, Object> map = new HashMap<>();
 //                    tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
 //                    tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
                     if (Objects.nonNull(tbTask.getRemark())) {
                     if (Objects.nonNull(tbTask.getRemark())) {
@@ -1288,20 +1304,21 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
             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(UploadFileEnum.FILE.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()))
                     .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();
             jsonObject = new JSONObject();
             String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
             String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
             if (oss) {//上传至oss
             if (oss) {//上传至oss
                 fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
                 fileStoreUtil.ossUpload(dirName, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(fos.toByteArray())), UploadFileEnum.FILE.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
             } 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.TYPE, SystemConstant.LOCAL);
             }
             }
             jsonObject.put(SystemConstant.PATH, dirName);
             jsonObject.put(SystemConstant.PATH, dirName);
@@ -1364,11 +1381,11 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             pdfStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .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 pdfDirName = pdfStringJoiner.toString();
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
             String pdfDirNameStr = pdfStringJoiner.toString().replace("\\", "/");
-            String destUrl = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator + pdfDirName;
+            String destUrl = SystemConstant.getUserDir() + File.separator + pdfDirName;
 
 
             createPrintPdfUtil.createPackagePdf(pdfPackageDto, destUrl);
             createPrintPdfUtil.createPackagePdf(pdfPackageDto, destUrl);
 
 
@@ -1432,7 +1449,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             boolean oss = dictionaryConfig.sysDomain().isOss();
             String pdfDirName = pdfFile.getPath();
             String pdfDirName = pdfFile.getPath();
 
 
-            String sysConfigPath = dictionaryConfig.fssLocalPdfDomain().getConfig() + File.separator;
+            String sysConfigPath = SystemConstant.getUserDir() + File.separator;
             String pdfDirNameStr = pdfDirName.replace("\\", "/").replaceAll(sysConfigPath.replace("\\", "/"), "");
             String pdfDirNameStr = pdfDirName.replace("\\", "/").replaceAll(sysConfigPath.replace("\\", "/"), "");
 
 
             byte[] data = ByteArray.fromFile(pdfFile).value();
             byte[] data = ByteArray.fromFile(pdfFile).value();

+ 10 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/SsoServiceImpl.java

@@ -6,7 +6,6 @@ import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.distributed.print.business.service.SsoService;
 import com.qmth.distributed.print.business.service.SsoService;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -40,9 +39,6 @@ public class SsoServiceImpl implements SsoService {
     @Autowired
     @Autowired
     CloudMarkingTaskUtils stmmsUtils;
     CloudMarkingTaskUtils stmmsUtils;
 
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Resource
     @Resource
     CommonCacheService commonCacheService;
     CommonCacheService commonCacheService;
 
 
@@ -160,16 +156,16 @@ public class SsoServiceImpl implements SsoService {
         map.computeIfAbsent("returnUrl", v -> returnUrl);
         map.computeIfAbsent("returnUrl", v -> returnUrl);
 
 
         Long timestamp = System.currentTimeMillis();
         Long timestamp = System.currentTimeMillis();
-        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, dictionaryConfig.reportOpenDomain().getSsoLoginApi(), timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+        String accessToken = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, SystemConstant.TEACHCLOUD_REPORT_SSO_LOGIN_API, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
         map.computeIfAbsent("time", v -> timestamp);
         map.computeIfAbsent("time", v -> timestamp);
         map.computeIfAbsent("authorization", v -> accessToken);
         map.computeIfAbsent("authorization", v -> accessToken);
 
 
-        SystemConstant.getLocalFileHost(dictionaryConfig.reportOpenDomain().getHostUrl());
-        String hostUrl = dictionaryConfig.reportOpenDomain().getHostUrl();
-        Optional.ofNullable(hostUrl).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析host"));
+        SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_REPORT_HOST_URL);
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置教研分析地址"));
+        String hostUrl = sysConfig.getConfigValue();
 
 
         hostUrl = SystemConstant.getLocalFileHost(hostUrl);
         hostUrl = SystemConstant.getLocalFileHost(hostUrl);
-        map.put("redirectUrl", hostUrl + dictionaryConfig.reportOpenDomain().getSsoLoginApi());
+        map.put("redirectUrl", hostUrl + SystemConstant.TEACHCLOUD_REPORT_SSO_LOGIN_API);
         System.out.println(JSON.toJSONString(map));
         System.out.println(JSON.toJSONString(map));
         return map;
         return map;
     }
     }
@@ -207,12 +203,14 @@ public class SsoServiceImpl implements SsoService {
         Optional.ofNullable(sysUserRole).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("用户没有该角色"));
         Optional.ofNullable(sysUserRole).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("用户没有该角色"));
 
 
         long timestamp = System.currentTimeMillis();
         long timestamp = System.currentTimeMillis();
-        String questionLoginUrl = dictionaryConfig.casDomain().getQuestionHostUrl();
+        SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.QUESTION_HOST_URL);
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置题库地址"));
+        String questionLoginUrl = sysConfig.getConfigValue();
         if (questionLoginUrl.contains("*")) {
         if (questionLoginUrl.contains("*")) {
             questionLoginUrl = questionLoginUrl.replace("*", basicSchool.getCode());
             questionLoginUrl = questionLoginUrl.replace("*", basicSchool.getCode());
         }
         }
-        questionLoginUrl = questionLoginUrl + dictionaryConfig.casDomain().getQuestionLoginUri();
-        String path = dictionaryConfig.casDomain().getQuestionLoginUri();
+        questionLoginUrl = questionLoginUrl + SystemConstant.QUESTION_CAS_ADMIN_LOGIN_OPEN_API;
+        String path = SystemConstant.QUESTION_CAS_ADMIN_LOGIN_OPEN_API;
         String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.GET, path, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
         String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.GET, path, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
         signature = URLEncoder.encode(signature, SystemConstant.CHARSET_NAME);
         signature = URLEncoder.encode(signature, SystemConstant.CHARSET_NAME);
 
 

+ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.reflect.TypeToken;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 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.ClazzContentDto;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 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.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 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.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
@@ -80,7 +82,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
     }
     }
 
 
 
 
-
     @Override
     @Override
     @Transactional
     @Transactional
     public void importJoinData(List<TCStatisticsTemp> tcStatisticsTempList) {
     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());
                 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
-                Map<Long,Integer> backupCountMap = new HashMap<>();
+                Map<Long, Integer> backupCountMap = new HashMap<>();
                 int totalStudentCount = 0;
                 int totalStudentCount = 0;
-                boolean printSumView= true;
+                boolean printSumView = true;
                 for (Long clazzId : clazzIdSet) {
                 for (Long clazzId : clazzIdSet) {
                     int studentCount = 0;
                     int studentCount = 0;
                     // 匹配到班级的所有命题计划
                     // 匹配到班级的所有命题计划
                     List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
                     List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
-                        if (!SystemConstant.strNotNull(e.getClazzIds())){
+                        if (!SystemConstant.strNotNull(e.getClazzIds())) {
                             return false;
                             return false;
                         }
                         }
                         Set<Long> ebcClazzIdSet = Arrays.stream(e.getClazzIds().split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
                         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);
                         clazzContent.setStatus(ClazzContentEnum.FINISH);
                         studentCount = examStudentService.count(new QueryWrapper<ExamStudent>()
                         studentCount = examStudentService.count(new QueryWrapper<ExamStudent>()
                                 .lambda()
                                 .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));
                         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();
                                 int backupCount = printMatchClazz.getBackupCount();
-                                backupCountMap.put(examDetailId,backupCount);
-                                if (backupCount > 0){
+                                backupCountMap.put(examDetailId, backupCount);
+                                if (backupCount > 0) {
                                     printCount.append(" + ").append(backupCount);
                                     printCount.append(" + ").append(backupCount);
                                 }
                                 }
                             }
                             }
@@ -166,11 +167,11 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                                     .eq(ExamStudent::getExamDetailCourseId, matchClazz.getExamDetailCourseId()));
                                     .eq(ExamStudent::getExamDetailCourseId, matchClazz.getExamDetailCourseId()));
                             StringBuilder printCount = new StringBuilder(String.valueOf(studentCount));
                             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();
                                     int backupCount = matchClazz.getBackupCount();
-                                    backupCountMap.put(examDetailId,backupCount);
+                                    backupCountMap.put(examDetailId, backupCount);
                                     printCount.append(" + ").append(backupCount);
                                     printCount.append(" + ").append(backupCount);
                                 }
                                 }
                             }
                             }
@@ -194,11 +195,11 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 tcStatistics.setCourseCode(tcStatisticsTemp.getCourseCode());
                 tcStatistics.setCourseCode(tcStatisticsTemp.getCourseCode());
                 tcStatistics.setTeacherName(tcStatisticsTemp.getTeacherName());
                 tcStatistics.setTeacherName(tcStatisticsTemp.getTeacherName());
                 tcStatistics.setClazzIds(clazzIds);
                 tcStatistics.setClazzIds(clazzIds);
-                tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds,","));
+                tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds, ","));
                 tcStatistics.setClazzContent(JSON.toJSONString(clazzContentDtoList));
                 tcStatistics.setClazzContent(JSON.toJSONString(clazzContentDtoList));
                 tcStatistics.setStatus(status);
                 tcStatistics.setStatus(status);
                 tcStatistics.insertInfo(requestUserId);
                 tcStatistics.insertInfo(requestUserId);
-                if (StatisticsStatusEnum.FINISH.equals(status)){
+                if (StatisticsStatusEnum.FINISH.equals(status)) {
                     ClazzContentDto cell = clazzContentDtoList.get(0);
                     ClazzContentDto cell = clazzContentDtoList.get(0);
                     tcStatistics.setPrintPlanId(cell.getExamPrintPlanId());
                     tcStatistics.setPrintPlanId(cell.getExamPrintPlanId());
                     tcStatistics.setPaperNumber(cell.getPaperNumber());
                     tcStatistics.setPaperNumber(cell.getPaperNumber());
@@ -210,10 +211,10 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                     backupTotal = backupTotal + backupCount;
                     backupTotal = backupTotal + backupCount;
                 }
                 }
                 String printSum = String.valueOf(totalStudentCount);
                 String printSum = String.valueOf(totalStudentCount);
-                if (backupTotal > 0){
+                if (backupTotal > 0) {
                     printSum = printSum + " + " + backupTotal;
                     printSum = printSum + " + " + backupTotal;
                 }
                 }
-                if (printSumView){
+                if (printSumView) {
                     tcStatistics.setPrintSum(printSum);
                     tcStatistics.setPrintSum(printSum);
                 }
                 }
                 insertTCStatisticsList.add(tcStatistics);
                 insertTCStatisticsList.add(tcStatistics);
@@ -249,24 +250,24 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
 
 
     @Override
     @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) {
     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)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
     public void refreshTCStatisticByExamIdAndRequestUser(Long examId, SysUser requestUser) {
     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());
             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);
             boolean lock = redisUtil.lock(key, SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT);
-            if (!lock){
+            if (!lock) {
                 throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
                 throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
             }
             }
             try {
             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(
                     TCStatisticsTemp tcStatisticsTemp = new TCStatisticsTemp(
                             examId,
                             examId,
                             e.getCollegeId(),
                             e.getCollegeId(),
@@ -283,7 +284,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                     return Stream.of(tcStatisticsTemp);
                     return Stream.of(tcStatisticsTemp);
                 }).collect(Collectors.toList());
                 }).collect(Collectors.toList());
                 this.importJoinData(tcStatisticsTempList);
                 this.importJoinData(tcStatisticsTempList);
-            }catch (Exception e){
+            } catch (Exception e) {
                 log.error(SystemConstant.LOG_ERROR, e);
                 log.error(SystemConstant.LOG_ERROR, e);
             } finally {
             } finally {
                 redisUtil.releaseLock(key);
                 redisUtil.releaseLock(key);
@@ -372,7 +373,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 tcStatisticsTempQueryWrapper.lambda().eq(TCStatisticsTemp::getBatchNo, batchNo);
                 tcStatisticsTempQueryWrapper.lambda().eq(TCStatisticsTemp::getBatchNo, batchNo);
                 tcStatisticsTempService.remove(tcStatisticsTempQueryWrapper);
                 tcStatisticsTempService.remove(tcStatisticsTempQueryWrapper);
 
 
-                String batchNoNew = SystemConstant.getUuid();
+                String batchNoNew = SystemConstant.getNanoId();
                 Set<Long> orgIds = this.joinDataGetOrgIds(sysUser, batchNoNew, tcStatisticsTempList);
                 Set<Long> orgIds = this.joinDataGetOrgIds(sysUser, batchNoNew, tcStatisticsTempList);
                 List<TCStatisticsDto> tcStatisticsDtoList = this.findByBatchNoCountJoin(sysUser.getSchoolId(), batchNoNew, orgIds);
                 List<TCStatisticsDto> tcStatisticsDtoList = this.findByBatchNoCountJoin(sysUser.getSchoolId(), batchNoNew, orgIds);
                 if (Objects.nonNull(tcStatisticsDtoList) && tcStatisticsDtoList.size() > 0) {
                 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.getSheetUrls()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生原卷地址"));
             Optional.ofNullable(tSyncExamStudentScore.getSyncData()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生作答数据"));
             Optional.ofNullable(tSyncExamStudentScore.getSyncData()).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未获取到考生作答数据"));
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
-            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             List<String> trailUrlsList = tSyncExamStudentScore.getTrailUrls();
             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())) {
             if (needSync || Objects.isNull(tSyncExamStudentScore.getLocalSheetUrls()) || Objects.isNull(tSyncExamStudentScore.getTrajectoryUrls())) {
                 JSONArray jsonArray = JSONArray.parseArray(tSyncExamStudentScore.getSheetUrls());
                 JSONArray jsonArray = JSONArray.parseArray(tSyncExamStudentScore.getSheetUrls());
@@ -300,14 +300,14 @@ public class TSyncExamStudentScoreServiceImpl extends ServiceImpl<TSyncExamStude
         try {
         try {
             if (Objects.nonNull(tSyncExamStudentScore.getTrajectoryFileList())) {
             if (Objects.nonNull(tSyncExamStudentScore.getTrajectoryFileList())) {
                 StringJoiner stringJoiner = new StringJoiner("");
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 LocalDateTime nowTime = LocalDateTime.now();
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner dirZipName = new StringJoiner("");
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
                         .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());
                 zipFile = new File(stringJoiner.toString() + dirZipName.toString());
                 if (!zipFile.exists()) {
                 if (!zipFile.exists()) {
                     zipFile.getParentFile().mkdirs();
                     zipFile.getParentFile().mkdirs();

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

+ 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.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.TBTask;
 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.CommonCacheService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
@@ -102,14 +105,14 @@ public abstract class AsyncImportTaskTemplete {
                 if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
                 if (Objects.nonNull(dictionaryConfig) && dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
                 } else {
-                    stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 }
                 }
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
                 stringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
                         .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()) {
                 if (dictionaryConfig.sysDomain().isOss()) {
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                     jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 } else {
                 } else {
@@ -140,14 +143,15 @@ public abstract class AsyncImportTaskTemplete {
             }
             }
 
 
             path = path.substring(0, path.lastIndexOf("/") + 1);
             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
             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 fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
                 fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
                 fileStoreUtil.ossUpload(stringJoiner.toString(), inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
             } else {//上传至服务器
                 FileStoreUtil fileStoreUtil = SpringContextHolder.getBean(FileStoreUtil.class);
                 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();
             JSONObject json = new JSONObject();
             json.put(SystemConstant.PATH, stringJoiner.toString());
             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.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysConfig;
 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.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
@@ -94,7 +93,7 @@ public abstract class AsyncPushTaskTemplate {
             if (oss) {
             if (oss) {
                 json.put(SystemConstant.TYPE, SystemConstant.OSS);
                 json.put(SystemConstant.TYPE, SystemConstant.OSS);
             } else {
             } else {
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 json.put(SystemConstant.TYPE, SystemConstant.LOCAL);
                 json.put(SystemConstant.TYPE, SystemConstant.LOCAL);
             }
             }
             stringJoiner.add(UploadFileEnum.FILE.getTitle()).add(File.separator);
             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)
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()))
                     .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 path = stringJoiner.toString().replaceAll("\\\\","/");
             String type = (String) json.get(SystemConstant.TYPE);
             String type = (String) json.get(SystemConstant.TYPE);
@@ -111,7 +110,8 @@ public abstract class AsyncPushTaskTemplate {
             if (Objects.equals(type, SystemConstant.OSS)) {
             if (Objects.equals(type, SystemConstant.OSS)) {
                 fileStoreUtil.ossUpload(path, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
                 fileStoreUtil.ossUpload(path, inputStream, DigestUtils.md5Hex(new ByteArrayInputStream(bookByteAry)), fileStoreUtil.getUploadEnumByPath(stringJoiner.toString()).getFssType());
             } else {//上传至服务器
             } 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.PATH, path);
             json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
             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()));
                 .add(String.format("%02d", nowTime.getDayOfMonth()));
 
 
         JSONObject jsonObject = new JSONObject();
         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("\\\\", "/");
         String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
 
 
@@ -687,8 +687,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
             jsonObject.put(SystemConstant.PATH, dirName);
             jsonObject.put(SystemConstant.PATH, dirName);
         } else {
         } 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.TYPE, SystemConstant.LOCAL);
             jsonObject.put(SystemConstant.PATH, dirName);
             jsonObject.put(SystemConstant.PATH, dirName);
         }
         }
@@ -927,20 +928,20 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             if (!CollectionUtils.isEmpty(examDetailList)) {
             if (!CollectionUtils.isEmpty(examDetailList)) {
                 LocalDateTime nowTime = LocalDateTime.now();
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("")
                 StringJoiner stringJoiner = new StringJoiner("")
-                        .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                        .add(SystemConstant.getUserDir()).add(File.separator);
                 StringJoiner dirName = new StringJoiner("")
                 StringJoiner dirName = new StringJoiner("")
                         .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
                         .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());
                 zipFile = new File(stringJoiner.toString() + dirName.toString());
                 if (!zipFile.getParentFile().exists()) {
                 if (!zipFile.getParentFile().exists()) {
                     zipFile.getParentFile().mkdirs();
                     zipFile.getParentFile().mkdirs();
                 }
                 }
 
 
                 Long time = System.currentTimeMillis();
                 Long time = System.currentTimeMillis();
-                zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+                zipLocalRootPath = SystemConstant.getUserDir() + File.separator + time;
                 sourceFileList = new ArrayList<>(examDetailList.size() * 5);
                 sourceFileList = new ArrayList<>(examDetailList.size() * 5);
                 for (ExamDetailPdfDownloadDto e : examDetailList) {
                 for (ExamDetailPdfDownloadDto e : examDetailList) {
                     StringJoiner dirPath = new StringJoiner("")
                     StringJoiner dirPath = new StringJoiner("")
@@ -1039,7 +1040,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         File file = null;
         File file = null;
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
         StringJoiner stringJoinerPdf = new StringJoiner("")
         StringJoiner stringJoinerPdf = new StringJoiner("")
-                .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                .add(SystemConstant.getUserDir()).add(File.separator)
                 .add(pathName);
                 .add(pathName);
         if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
         if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
             file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PDF_PATH), stringJoinerPdf.toString(), UploadFileEnum.PDF.getFssType());
             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);
             String attachmentType = (String) jsonObject.get(SystemConstant.TYPE);
             UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
             UploadFileEnum uploadFileEnum = UploadFileEnum.valueOf((String) jsonObject.get(SystemConstant.UPLOAD_TYPE));
             StringJoiner stringJoinerPdf = new StringJoiner("")
             StringJoiner stringJoinerPdf = new StringJoiner("")
-                    .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator)
+                    .add(SystemConstant.getUserDir()).add(File.separator)
                     .add(pathName);
                     .add(pathName);
             if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
             if (Objects.nonNull(attachmentType) && !Objects.equals(attachmentType, SystemConstant.LOCAL)) {
                 file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), stringJoinerPdf.toString(), uploadFileEnum.getFssType());
                 file = fileStoreUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), stringJoinerPdf.toString(), uploadFileEnum.getFssType());
@@ -1091,12 +1092,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         int count = 0;
         int count = 0;
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         LocalDateTime nowTime = LocalDateTime.now();
         LocalDateTime nowTime = LocalDateTime.now();
-        String zipJoiner = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator;
+        String zipJoiner = SystemConstant.getUserDir() + File.separator;
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
                 nowTime.getYear() + File.separator +
                 nowTime.getYear() + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getDayOfMonth()) +
                 String.format("%02d", nowTime.getDayOfMonth()) +
-                File.separator + SystemConstant.getUuid() + SystemConstant.ZIP_PREFIX;
+                File.separator + SystemConstant.getNanoId() + SystemConstant.ZIP_PREFIX;
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         File zipFile = new File(zipJoiner + dirNameTmp);
         File zipFile = new File(zipJoiner + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
         if (!zipFile.getParentFile().exists()) {
@@ -1107,7 +1108,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         boolean oss = dictionaryConfig.sysDomain().isOss();
         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");
         Long[] ids = (Long[]) map.get("ids");
         for (Long id : ids) {
         for (Long id : ids) {
             ExamTask examTask = examTaskService.getById(id);
             ExamTask examTask = examTaskService.getById(id);
@@ -1266,7 +1267,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             BasicSchool basicSchool = commonCacheService.schoolCache(tbTask.getSchoolId());
             BasicSchool basicSchool = commonCacheService.schoolCache(tbTask.getSchoolId());
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner zipJoiner = new StringJoiner("")
             StringJoiner zipJoiner = new StringJoiner("")
-                    .add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                    .add(SystemConstant.getUserDir()).add(File.separator);
             StringJoiner dirName = new StringJoiner("")
             StringJoiner dirName = new StringJoiner("")
                     .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                     .add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
                     .add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -1278,7 +1279,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
 
             // 根文件路径
             // 根文件路径
             Long time = System.currentTimeMillis();
             Long time = System.currentTimeMillis();
-            zipLocalRootPath = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + time;
+            zipLocalRootPath = SystemConstant.getUserDir() + File.separator + time;
             boolean oss = dictionaryConfig.sysDomain().isOss();
             boolean oss = dictionaryConfig.sysDomain().isOss();
 
 
             List<ExamTaskDetailDto> examTasks = (List<ExamTaskDetailDto>) map.get("examTasks");
             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()));
                 ExamTaskDetailPdfDownloadDto examTaskDetailPdfDownloadDto = examTaskDetailService.findPdfDownload(Long.valueOf(examTask.getId()));
 
 
                 StringJoiner dirPath = new StringJoiner("")
                 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(String.valueOf(time)).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getSemesterName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
                         .add(examTaskDetailPdfDownloadDto.getExamName()).add(File.separator)
@@ -1329,7 +1330,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         }
                         }
                         MakeMethodEnum makeMethodEnum = examCard.getMakeMethod();
                         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;
                         String cardPdfPath = dirPath.toString() + "题卡" + "-" + paperMap.get("name") + SystemConstant.PDF_PREFIX;
                         // 通用题卡
                         // 通用题卡
                         ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
                         ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
@@ -1686,7 +1687,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             Map<String, SysOrg> teachingRoomMap = new HashMap<>();
             Map<String, SysOrg> teachingRoomMap = new HashMap<>();
             Map<String, BasicCourse> courseMap = new HashMap<>();
             Map<String, BasicCourse> courseMap = new HashMap<>();
             Map<String, DictionaryResult> clazzMap = new HashMap<>();
             Map<String, DictionaryResult> clazzMap = new HashMap<>();
-            String batchNo = SystemConstant.getUuid();
+            String batchNo = SystemConstant.getNanoId();
             List<TCStatisticsTemp> tcStatisticsImportTempList = new ArrayList<>();
             List<TCStatisticsTemp> tcStatisticsImportTempList = new ArrayList<>();
 
 
             for (int i = 0; i < finalExcelList.size(); i++) {
             for (int i = 0; i < finalExcelList.size(); i++) {
@@ -1806,13 +1807,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 }.getType());
                 }.getType());
                 LocalDateTime nowTime = LocalDateTime.now();
                 LocalDateTime nowTime = LocalDateTime.now();
                 StringJoiner stringJoiner = new StringJoiner("");
                 StringJoiner stringJoiner = new StringJoiner("");
-                stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+                stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
                 StringJoiner dirZipName = new StringJoiner("");
                 StringJoiner dirZipName = new StringJoiner("");
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                 dirZipName.add(UploadFileEnum.FILE.getTitle()).add(File.separator)
                         .add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                         .add(String.format("%02d", nowTime.getDayOfMonth()))
                         .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());
                 zipFile = new File(stringJoiner.toString() + dirZipName.toString());
                 sourceFiles = new LinkedList<>();
                 sourceFiles = new LinkedList<>();
                 List<TSyncExamStudentScore> updateTSyncExamStudentScoreList = new ArrayList<>();
                 List<TSyncExamStudentScore> updateTSyncExamStudentScoreList = new ArrayList<>();
@@ -1922,12 +1923,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
 
 
 
         LocalDateTime nowTime = LocalDateTime.now();
         LocalDateTime nowTime = LocalDateTime.now();
-        String zipJoiner = dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator;
+        String zipJoiner = SystemConstant.getUserDir() + File.separator;
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
         String dirName = UploadFileEnum.FILE.getTitle() + File.separator +
                 nowTime.getYear() + File.separator +
                 nowTime.getYear() + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getMonthValue()) + File.separator +
                 String.format("%02d", nowTime.getDayOfMonth()) +
                 String.format("%02d", nowTime.getDayOfMonth()) +
-                File.separator + SystemConstant.getUuid() + SystemConstant.ZIP_PREFIX;
+                File.separator + SystemConstant.getNanoId() + SystemConstant.ZIP_PREFIX;
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         String dirNameTmp = dirName.replaceAll("\\\\", "/");
         File zipFile = new File(zipJoiner + dirNameTmp);
         File zipFile = new File(zipJoiner + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
         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);
         ExamTaskPaperDto examTaskPaperDto = downloadService.findDownloadContent(schoolId, semesterId, examId, orgId, courseName, idSet);
         // 导出文件excel
         // 导出文件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,
                                           BasicExamRule basicExamRule,
                                           List<PdfDto> mergePdfDeleteList) throws Exception {
                                           List<PdfDto> mergePdfDeleteList) throws Exception {
         boolean oss = dictionaryConfig.sysDomain().isOss();
         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生成的路径分隔符全部替换为"/"
         // oss上只认"/",windows生成的路径分隔符全部替换为"/"
         File localA4PdfFile = null, localPaperPdfFile = null, localA3PdfCardFile = null;
         File localA4PdfFile = null, localPaperPdfFile = null, localA3PdfCardFile = null;
         BasicAttachment basicAttachment = 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);
             Configuration configuration = new Configuration(Configuration.VERSION_2_3_29);
             File templates = null;
             File templates = null;
-            if (ftlPath.contains(dictionaryConfig.fssLocalFileDomain().getConfig())) {
+            if (ftlPath.contains(SystemConstant.getUserDir())) {
                 templates = ResourceUtils.getFile(ftlPath);
                 templates = ResourceUtils.getFile(ftlPath);
             } else {
             } else {
-                templates = ResourceUtils.getFile(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + ftlPath);
+                templates = ResourceUtils.getFile(SystemConstant.getUserDir() + File.separator + ftlPath);
             }
             }
             configuration.setDirectoryForTemplateLoading(templates);
             configuration.setDirectoryForTemplateLoading(templates);
             // step1 加载模版文件
             // step1 加载模版文件
@@ -110,13 +110,13 @@ public class FreemarkerUtil {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             boolean oss = dictionaryConfig.sysDomain().isOss();
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
-            stringJoiner.add(dictionaryConfig.fssLocalFileDomain().getConfig()).add(File.separator);
+            stringJoiner.add(SystemConstant.getUserDir()).add(File.separator);
             StringJoiner htmlStringJoiner = new StringJoiner("");
             StringJoiner htmlStringJoiner = new StringJoiner("");
             htmlStringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator);
             htmlStringJoiner.add(UploadFileEnum.HTML.getTitle()).add(File.separator);
             htmlStringJoiner.add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .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());
             File htmlFile = new File(stringJoiner.toString() + htmlStringJoiner.toString());
             if (!htmlFile.getParentFile().exists()) {
             if (!htmlFile.getParentFile().exists()) {
                 htmlFile.getParentFile().mkdirs();
                 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
 @Component
 public class HtmlToJpgUtil {
 public class HtmlToJpgUtil {
+
     @Lazy
     @Lazy
     @Resource
     @Resource
     PrintCommonService printCommonService;
     PrintCommonService printCommonService;
 
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     private final static Logger log = LoggerFactory.getLogger(HtmlToJpgUtil.class);
     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 {
     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临时路径
         // html临时路径
         String htmlPath = rootPath + File.separator + "html" + File.separator + cardTitle + SystemConstant.HTML_PREFIX;
         String htmlPath = rootPath + File.separator + "html" + File.separator + cardTitle + SystemConstant.HTML_PREFIX;
         // pdf临时路径
         // 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)) {
                 if (Objects.isNull(outputPath)) {
                     DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
                     DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
                     LocalDateTime nowTime = LocalDateTime.now();
                     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("")
                     dirName = new StringJoiner("")
                             .add(UploadFileEnum.PDF.getTitle()).add(File.separator)
                             .add(UploadFileEnum.PDF.getTitle()).add(File.separator)
                             .add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                             .add(String.format("%02d", nowTime.getDayOfMonth()))
                             .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();
                     outputPath = stringJoiner.toString() + dirName.toString();
                 }
                 }
                 copy = new PdfSmartCopy(document, new FileOutputStream(outputPath));
                 copy = new PdfSmartCopy(document, new FileOutputStream(outputPath));
@@ -308,12 +308,12 @@ public class PdfUtil {
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         DictionaryConfig dictionaryConfig = SpringContextHolder.getBean(DictionaryConfig.class);
         LocalDateTime nowTime = LocalDateTime.now();
         LocalDateTime nowTime = LocalDateTime.now();
         StringJoiner stringJoiner = new StringJoiner("");
         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(UploadFileEnum.PAPER.getTitle()).add(File.separator)
                 .add(String.valueOf(nowTime.getYear())).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.getMonthValue())).add(File.separator)
                 .add(String.format("%02d", nowTime.getDayOfMonth()))
                 .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();
         String outputPath = stringJoiner.toString();
         PdfReader reader = null;
         PdfReader reader = null;
         PdfStamper stamper = null;
         PdfStamper stamper = null;

+ 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")
 @Api(tags = "校区管理controller")
 @RestController
 @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)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicCampusController {
 public class BasicCampusController {
     @Resource
     @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")
 @Api(tags = "题卡规则Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/card_rule")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/card_rule")
 @Validated
 @Validated
 public class BasicCardRuleController {
 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")
 @Api(tags = "班级管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/clazz")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/clazz")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicClazzController {
 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")
 @Api(tags = "学生学院管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/college")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/college")
 public class BasicCollegeController {
 public class BasicCollegeController {
     @Resource
     @Resource
     private BasicCollegeService basicCollegeService;
     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")
 @Api(tags = "课程Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/course")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/course")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicCourseController {
 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")
 @Api(tags = "考试管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/exam")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/exam")
 public class BasicExamController {
 public class BasicExamController {
     @Resource
     @Resource
     private BasicExamService basicExamService;
     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.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.entity.BasicExamRule;
 import com.qmth.distributed.print.business.service.BasicExamRuleService;
 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.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
@@ -24,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
  */
 @Api(tags = "考务规则Controller")
 @Api(tags = "考务规则Controller")
 @RestController
 @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 {
 public class BasicExamRuleController {
 
 
     @Autowired
     @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")
 @Api(tags = "专业管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/major")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/major")
 public class BasicMajorController {
 public class BasicMajorController {
     @Resource
     @Resource
     private BasicMajorService basicMajorService;
     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")
 @Api(tags = "短信发送日志Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/message")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/message")
 @Validated
 @Validated
 public class BasicMessageController {
 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")
 @Api(tags = "印品配置Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/print_config")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/print_config")
 @Validated
 @Validated
 public class BasicPrintConfigController {
 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")
 @Api(tags = "学期管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/semester")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/semester")
 public class BasicSemesterController {
 public class BasicSemesterController {
     @Resource
     @Resource
     private BasicSemesterService basicSemesterService;
     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")
 @Api(tags = "学生管理controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/student")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/student")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicStudentController {
 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")
 @Api(tags = "通用模板Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/template")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_BASIC + "/template")
 @Validated
 @Validated
 public class BasicTemplateController {
 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.bean.params.ClientLoginParam;
 import com.qmth.distributed.print.business.service.ClientService;
 import com.qmth.distributed.print.business.service.ClientService;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 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.BasicSchool;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.AppSourceEnum;
 import com.qmth.teachcloud.common.enums.AppSourceEnum;
@@ -35,7 +36,7 @@ import java.util.Objects;
  */
  */
 @Api(tags = "客户端Controller")
 @Api(tags = "客户端Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.client}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_CLIENT)
 //@Validated
 //@Validated
 public class ClientController {
 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")
 @Api(tags = "系统管理-下载管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}/download")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DATA + "/download")
 public class DownloadController {
 public class DownloadController {
 
 
     @Resource
     @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.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.enums.*;
 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.enums.*;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -21,7 +22,7 @@ import java.util.List;
  */
  */
 @Api(tags = "枚举类型Controller")
 @Api(tags = "枚举类型Controller")
 @RestController
 @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 {
 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")
 @Api(tags = "题卡Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/card")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/card")
 @Validated
 @Validated
 public class ExamCardController {
 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")
 @Api(tags = "考务数据管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print")
 @Validated
 @Validated
 public class ExamDetailController {
 public class ExamDetailController {
     @Resource
     @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")
 @Api(tags = "试卷结构Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/structure")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/structure")
 public class ExamPaperStructureController {
 public class ExamPaperStructureController {
 
 
     @Resource
     @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")
 @Api(tags = "印刷计划管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print")
 @Validated
 @Validated
 public class ExamPrintPlanController {
 public class ExamPrintPlanController {
     @Resource
     @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")
 @Api(tags = "印刷计划管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print_sync")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/print_sync")
 @Validated
 @Validated
 public class ExamPrintPlanSyncController {
 public class ExamPrintPlanSyncController {
     @Resource
     @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")
 @Api(tags = "命题任务Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/task")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_EXAM + "/task")
 @Validated
 @Validated
 public class ExamTaskController {
 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")
 @Api(tags = "分析批次管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/batch")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/batch")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeBatchController {
 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")
 @Api(tags = "分析批次课程管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/batch/paper")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/batch/paper")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeBatchPaperController {
 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;
 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.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleEvaluationParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeModuleEvaluationParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeModuleEvaluationResult;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeModuleEvaluationResult;
@@ -31,7 +29,7 @@ import javax.validation.Valid;
  */
  */
 @Api(tags = "分析课程维度模块评价管理Controller")
 @Api(tags = "分析课程维度模块评价管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/module/evaluation")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/module/evaluation")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradeModuleEvaluationController {
 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")
 @Api(tags = "分析课程(试卷)管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperController {
 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")
 @Api(tags = "分析课程维度管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper/dimension")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper/dimension")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperDimensionController {
 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")
 @Api(tags = "分析课程试卷结构管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.grade}/paper/struct")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_GRADE + "/paper/struct")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class GradePaperStructController {
 public class GradePaperStructController {

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

@@ -11,12 +11,13 @@ import com.qmth.distributed.print.business.entity.GradeBatch;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.entity.GradeBatchPaper;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeBatchPaperService;
 import com.qmth.distributed.print.business.service.GradeBatchService;
 import com.qmth.distributed.print.business.service.GradeBatchService;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.enums.GradeAnalyzePaperStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
+import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -45,13 +46,13 @@ import java.util.*;
  */
  */
 @Api(tags = "回调接口Controller")
 @Api(tags = "回调接口Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.notify}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_NOTIFY)
 @Validated
 @Validated
 public class NotifyApiController {
 public class NotifyApiController {
     private final static Logger log = LoggerFactory.getLogger(NotifyApiController.class);
     private final static Logger log = LoggerFactory.getLogger(NotifyApiController.class);
 
 
     @Resource
     @Resource
-    DictionaryConfig dictionaryConfig;
+    CommonCacheService commonCacheService;
 
 
     @Resource
     @Resource
     GradeBatchService gradeBatchService;
     GradeBatchService gradeBatchService;
@@ -70,9 +71,10 @@ public class NotifyApiController {
             String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
             String decodeJson = URLDecoder.decode(result, SystemConstant.CHARSET_NAME);
             log.info("analysis_progress decodeJson:{}", decodeJson);
             log.info("analysis_progress decodeJson:{}", decodeJson);
 
 
-            String callbackPwd = dictionaryConfig.printOpenDomain().getCallbackPwd();
-            Optional.ofNullable(callbackPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("配置文件回调密码为空"));
+            SysConfig sysConfigCallPwd = commonCacheService.addSysConfigCache(SystemConstant.TEACHCLOUD_PRINT_OPEN_CALLBACK_PWD);
+            Optional.ofNullable(sysConfigCallPwd).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置分布式印刷回调密码"));
 
 
+            String callbackPwd = sysConfigCallPwd.getConfigValue();
             String sign = ServletUtil.getRequestAuthorization();
             String sign = ServletUtil.getRequestAuthorization();
             Optional.ofNullable(sign).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("签名为空"));
             Optional.ofNullable(sign).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("签名为空"));
             log.info("sign:{}", sign);
             log.info("sign:{}", sign);

+ 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")
 @Api(tags = "知学知考开放接口Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.open}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
 @Validated
 @Validated
 public class OpenApiController {
 public class OpenApiController {
     private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
     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.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.service.SsoService;
 import com.qmth.distributed.print.business.service.SsoService;
 import com.qmth.teachcloud.common.bean.params.OpenParams;
 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.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -29,7 +30,7 @@ import java.util.Objects;
  */
  */
 @Api(tags = "单点登录Controller")
 @Api(tags = "单点登录Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/sso")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_EXAM + "/sso")
 public class SsoController {
 public class SsoController {
 
 
     @Autowired
     @Autowired

+ 5 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/SysAdminSetController.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.api;
 package com.qmth.distributed.print.api;
 
 
-
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
@@ -36,7 +35,7 @@ import java.util.stream.Collectors;
  */
  */
 @Api(tags = "超管设置Controller")
 @Api(tags = "超管设置Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.set}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SET)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class SysAdminSetController {
 public class SysAdminSetController {
 
 
@@ -191,7 +190,7 @@ public class SysAdminSetController {
     @RequestMapping(value = "/user/select", method = RequestMethod.POST)
     @RequestMapping(value = "/user/select", method = RequestMethod.POST)
     public Result sysadminUserSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
     public Result sysadminUserSelect(@ApiParam(value = "学校id ", required = true) @RequestParam Long schoolId) {
         SysConfig sysConfigAccount = commonCacheService.addSysConfigCache(schoolId, SystemConstant.ACCOUNT_SMS_VERIFY);
         SysConfig sysConfigAccount = commonCacheService.addSysConfigCache(schoolId, SystemConstant.ACCOUNT_SMS_VERIFY);
-        SysConfig sysConfigTeachcloudExchangeSerivePath = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_EXCHANGE_SERVICE_PATH);
+        SysConfig sysConfigTeachcloudExchangeSerivePath = commonCacheService.addSysConfigCache(schoolId, SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL);
         return ResultUtil.ok(new SysAdminSetResult(schoolId, Objects.nonNull(sysConfigAccount) ? Boolean.valueOf(sysConfigAccount.getConfigValue()) : false, Objects.nonNull(sysConfigTeachcloudExchangeSerivePath) ? sysConfigTeachcloudExchangeSerivePath.getConfigValue() : ""));
         return ResultUtil.ok(new SysAdminSetResult(schoolId, Objects.nonNull(sysConfigAccount) ? Boolean.valueOf(sysConfigAccount.getConfigValue()) : false, Objects.nonNull(sysConfigTeachcloudExchangeSerivePath) ? sysConfigTeachcloudExchangeSerivePath.getConfigValue() : ""));
     }
     }
 
 
@@ -215,9 +214,9 @@ public class SysAdminSetController {
         }
         }
         sysConfigList.add(sysConfigAccount);
         sysConfigList.add(sysConfigAccount);
 
 
-        SysConfig sysConfigTeachcloudExchangeSerivePath = commonCacheService.addSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_SERVICE_PATH);
+        SysConfig sysConfigTeachcloudExchangeSerivePath = commonCacheService.addSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL);
         if (Objects.isNull(sysConfigTeachcloudExchangeSerivePath)) {
         if (Objects.isNull(sysConfigTeachcloudExchangeSerivePath)) {
-            sysConfigTeachcloudExchangeSerivePath = new SysConfig(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_SERVICE_PATH, "第三方统一身份认证", sysAdminSetParam.getTeachcloudExchangeSerivePath());
+            sysConfigTeachcloudExchangeSerivePath = new SysConfig(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL, "第三方统一身份认证", sysAdminSetParam.getTeachcloudExchangeSerivePath());
         } else {
         } else {
             sysConfigTeachcloudExchangeSerivePath.setConfigValue(sysAdminSetParam.getTeachcloudExchangeSerivePath());
             sysConfigTeachcloudExchangeSerivePath.setConfigValue(sysAdminSetParam.getTeachcloudExchangeSerivePath());
         }
         }
@@ -225,7 +224,7 @@ public class SysAdminSetController {
         sysConfigService.saveOrUpdateBatch(sysConfigList);
         sysConfigService.saveOrUpdateBatch(sysConfigList);
 
 
         commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.ACCOUNT_SMS_VERIFY);
         commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.ACCOUNT_SMS_VERIFY);
-        commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_SERVICE_PATH);
+        commonCacheService.updateSysConfigCache(sysAdminSetParam.getSchoolId(), SystemConstant.TEACHCLOUD_EXCHANGE_HOST_URL);
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
     }
     }
 
 

+ 10 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -51,7 +51,7 @@ import java.util.stream.Collectors;
  */
  */
 @Api(tags = "系统Controller")
 @Api(tags = "系统Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON)
 public class SysController {
 public class SysController {
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
 
 
@@ -179,7 +179,9 @@ public class SysController {
                     sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), login.getCode());
                     sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), login.getCode());
 
 
                     // 如果不是共用验证码再过期
                     // 如果不是共用验证码再过期
-                    if (!dictionaryConfig.smsDomain().getSmsNormalCode().equals(login.getCode())) {
+                    SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SMS_NORMAL_CODE);
+                    Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置万能短信验证码"));
+                    if (!sysConfig.getConfigValue().equals(login.getCode())) {
                         sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
                         sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
                     }
                     }
                 }
                 }
@@ -209,7 +211,9 @@ public class SysController {
             sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), code);
             sysUserService.checkSmsCode(sysUser.getId(), sysUser.getMobileNumber(), code);
 
 
             // 如果不是共用验证码再过期
             // 如果不是共用验证码再过期
-            if (!dictionaryConfig.smsDomain().getSmsNormalCode().equals(login.getCode())) {
+            SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SMS_NORMAL_CODE);
+            Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置万能短信验证码"));
+            if (!sysConfig.getConfigValue().equals(login.getCode())) {
                 sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
                 sysUserService.expiredVerifyCode(sysUser.getId(), sysUser.getMobileNumber());
             }
             }
         } else {
         } else {
@@ -419,7 +423,7 @@ public class SysController {
             SysConfig sysConfig = commonCacheService.addSysConfigCache(basicSchool.getId(), SystemConstant.ACCOUNT_SMS_VERIFY);
             SysConfig sysConfig = commonCacheService.addSysConfigCache(basicSchool.getId(), SystemConstant.ACCOUNT_SMS_VERIFY);
             Map<String, Object> map = new HashMap<>();
             Map<String, Object> map = new HashMap<>();
             if (Objects.nonNull(basicSchool.getLogo()) && (!basicSchool.getLogo().startsWith("http") || !basicSchool.getLogo().startsWith("https"))) {
             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 filePath = SystemConstant.getLocalFilePath(hostUrl, basicSchool.getLogo());
                 String url = null;
                 String url = null;
                 if (filePath.startsWith("/")) {
                 if (filePath.startsWith("/")) {
@@ -436,7 +440,8 @@ public class SysController {
             return ResultUtil.ok(map);
             return ResultUtil.ok(map);
         } else {
         } else {
             Map<String, Object> map = new HashMap<>();
             Map<String, Object> map = new HashMap<>();
-            map.put(SystemConstant.LOGO, dictionaryConfig.sysDomain().getAdminLogoUrl());
+            SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.ADMIN_LOGO_URL);
+            map.put(SystemConstant.LOGO, Objects.nonNull(sysConfig) ? sysConfig.getConfigValue() : null);
             map.put("name", null);
             map.put("name", null);
             map.put("accountSmsVerify", false);
             map.put("accountSmsVerify", false);
             return ResultUtil.ok(map);
             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")
 @Api(tags = "组织架构Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/org")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/org")
 public class SysOrgController {
 public class SysOrgController {
 
 
     @Resource
     @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;
 package com.qmth.distributed.print.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
 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.entity.SysPrivilege;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -20,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
  */
  */
 @Api(tags = "菜单权限Controller")
 @Api(tags = "菜单权限Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/privilege")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/privilege")
 public class SysPrivilegeController {
 public class SysPrivilegeController {
 
 
     @Autowired
     @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")
 @Api(tags = "角色Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/role")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/role")
 @Validated
 @Validated
 public class SysRoleController {
 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")
 @Api(tags = "用户Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/user")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_SYS + "/user")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class SysUserController {
 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")
 @Api(tags = "数据管理-任务管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}/sync")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_DATA + "/sync")
 @Validated
 @Validated
 public class TBSyncTaskController {
 public class TBSyncTaskController {
     private final static Logger log = LoggerFactory.getLogger(TBSyncTaskController.class);
     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")
 @Api(tags = "数据管理-任务管理Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.data}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_DATA)
 @Validated
 @Validated
 public class TBTaskController {
 public class TBTaskController {
     private final static Logger log = LoggerFactory.getLogger(TBTaskController.class);
     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")
 @Api(tags = "命题统计Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.statistics}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_STATISTICS)
 @Validated
 @Validated
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class TCStatisticsController {
 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")
 @Api(tags = "自定义流程Controller")
 @RestController
 @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)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 @Validated
 public class TFCustomFlowController {
 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")
 @Api(tags = "成绩归档Controller")
 @RestController
 @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)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 @Validated
 public class TSyncExamStudentScoreController {
 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")
 @Api(tags = "教学班级Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/clazz")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/clazz")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachClazzController {
 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")
 @Api(tags = "教学课程Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/course")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/course")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachCourseController {
 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")
 @Api(tags = "教学学生Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.teach}/student")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_TEACH + "/student")
 @Validated
 @Validated
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 //@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TeachStudentController {
 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")
 @Api(tags = "工作台Controller")
 @RestController
 @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)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 @Validated
 @Validated
 public class WorkController {
 public class WorkController {

+ 8 - 6
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java

@@ -5,8 +5,8 @@ import com.qmth.boot.core.security.model.AccessEntity;
 import com.qmth.boot.core.security.service.AuthorizationService;
 import com.qmth.boot.core.security.service.AuthorizationService;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
-import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBSession;
 import com.qmth.teachcloud.common.entity.TBSession;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -23,7 +23,9 @@ import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.time.Duration;
 import java.util.Objects;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.Set;
 
 
 @Component
 @Component
@@ -36,9 +38,6 @@ public class DistributedPrintAuthenticationService implements AuthorizationServi
     @Resource
     @Resource
     RedisUtil redisUtil;
     RedisUtil redisUtil;
 
 
-    @Resource
-    DictionaryConfig dictionaryConfig;
-
     @Resource
     @Resource
     AuthInfoService authInfoService;
     AuthInfoService authInfoService;
 
 
@@ -79,8 +78,11 @@ public class DistributedPrintAuthenticationService implements AuthorizationServi
             if (auth) {
             if (auth) {
                 Long expireTime = redisUtil.getUserSessionExpire(accessEntity.getIdentity());
                 Long expireTime = redisUtil.getUserSessionExpire(accessEntity.getIdentity());
                 if (Objects.nonNull(expireTime) && expireTime.longValue() > -1L) {
                 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());
+                    SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.SESSION_ACTIVE);
+                    Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置session会话时长"));
+                    Duration sessionActive = Duration.parse(SystemConstant.PT + sysConfig.getConfigValue());
+                    if (Objects.nonNull(tbSession.getLastAccessTime()) && (System.currentTimeMillis() - tbSession.getLastAccessTime()) / 1000 > sessionActive.getSeconds()) {
+                        log.warn("Authorization faile: session active, session active is {}", sessionActive.getSeconds());
                         throw ExceptionResultEnum.NOT_LOGIN.exception();
                         throw ExceptionResultEnum.NOT_LOGIN.exception();
                     }
                     }
                     tbSession.setLastInfo();
                     tbSession.setLastInfo();

+ 5 - 1
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -1,7 +1,7 @@
 package com.qmth.distributed.print.start;
 package com.qmth.distributed.print.start;
 
 
-import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.service.AuthInfoService;
 import com.qmth.teachcloud.common.service.AuthInfoService;
+import com.qmth.teachcloud.common.service.SysConfigService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.CommandLineRunner;
@@ -23,9 +23,13 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     @Resource
     AuthInfoService authInfoService;
     AuthInfoService authInfoService;
 
 
+    @Resource
+    SysConfigService sysConfigService;
+
     @Override
     @Override
     public void run(String... args) throws Exception {
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
         log.info("服务器启动时执行 start");
+        sysConfigService.selectAll();
         authInfoService.appInfoInit();
         authInfoService.appInfoInit();
         log.info("服务器启动时执行 end");
         log.info("服务器启动时执行 end");
     }
     }

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

@@ -1,193 +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.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 - 196
distributed-print/src/main/resources/application-dev.properties

@@ -1,196 +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.statistics=admin/statistics
-prefix.url.sync=admin/sync
-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
-prefix.url.set=admin/set
-
-#\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 - 196
distributed-print/src/main/resources/application-offline.properties

@@ -1,196 +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.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 - 196
distributed-print/src/main/resources/application-test.properties

@@ -1,196 +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.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=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

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

@@ -1,2 +1,113 @@
-#\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
+
+#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

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

+ 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;
 package com.qmth.teachcloud.common.api.api;
 
 
 import com.qmth.boot.api.constant.ApiConstant;
 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.entity.BasicAttachment;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -23,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
  */
 @Api(tags = "文件上传Controller")
 @Api(tags = "文件上传Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/file")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_COMMON + "/file")
 public class BasicAttachmentController {
 public class BasicAttachmentController {
 
 
     @Autowired
     @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.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.bean.dto.SchoolDto;
 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.service.BasicSchoolService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -24,7 +25,7 @@ import java.util.List;
  */
  */
 @Api(tags = "学校Controller")
 @Api(tags = "学校Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}/school")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_COMMON + "/school")
 public class BasicSchoolController {
 public class BasicSchoolController {
 
 
     @Autowired
     @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.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 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.entity.SysConfig;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.service.SysConfigService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
  */
  */
 @Api(tags = "参数Controller")
 @Api(tags = "参数Controller")
 @RestController
 @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 {
 public class SysConfigController {
 
 
     @Autowired
     @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")
 @Api(tags = "角色组成员Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/role/group")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX  + SystemConstant.PREFIX_URL_SYS + "/role/group")
 @Validated
 @Validated
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 //@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class SysRoleGroupMemberController {
 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")
 @Api(tags = "授权配置Controller")
 @RestController
 @RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.auth}")
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_AUTH)
 @Validated
 @Validated
 public class TSAuthController {
 public class TSAuthController {
     private final static Logger log = LoggerFactory.getLogger(TSAuthController.class);
     private final static Logger log = LoggerFactory.getLogger(TSAuthController.class);

+ 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.io.Serializable;
 import java.util.Map;
 import java.util.Map;
-import java.util.UUID;
 
 
 /**
 /**
  * @Description: mq dto
  * @Description: mq dto
@@ -42,7 +41,7 @@ public class MqDto implements Serializable {
         this.type = MqTagEnum.valueOf(tag);
         this.type = MqTagEnum.valueOf(tag);
         this.objId = objId;
         this.objId = objId;
         this.timestamp = timestamp;
         this.timestamp = timestamp;
-        this.id = SystemConstant.getUuid();
+        this.id = SystemConstant.getNanoId();
     }
     }
 
 
     public MqDto(String topic, Object body, String objId) {
     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.type = MqTagEnum.valueOf(MqTagEnum.convertToName(tag));
         this.objId = objId;
         this.objId = objId;
         this.timestamp = System.currentTimeMillis();
         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) {
     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.type = type;
         this.objId = objId;
         this.objId = objId;
         this.timestamp = System.currentTimeMillis();
         this.timestamp = System.currentTimeMillis();
-        this.id = SystemConstant.getUuid();
+        this.id = SystemConstant.getNanoId();
         this.properties = properties;
         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) {
 //    public static void deleteAuthReturnUrl(String key) {
 //        redisUtil.delete(RedisKeyHelper.thirdUserAuthReturnUrl(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);
-    }
 }
 }

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

@@ -1,6 +1,9 @@
 package com.qmth.teachcloud.common.config;
 package com.qmth.teachcloud.common.config;
 
 
-import com.qmth.teachcloud.common.domain.*;
+import com.qmth.teachcloud.common.domain.FssPrivateDomain;
+import com.qmth.teachcloud.common.domain.FssPublicDomain;
+import com.qmth.teachcloud.common.domain.SmsDomain;
+import com.qmth.teachcloud.common.domain.SysDomain;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
@@ -15,17 +18,6 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @Configuration
 public class DictionaryConfig {
 public class DictionaryConfig {
 
 
-    /**
-     * 模块前缀
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "prefix.url")
-    public PrefixUrlDomain prefixUrlDomain() {
-        return new PrefixUrlDomain();
-    }
-
     /**
     /**
      * 系统配置
      * 系统配置
      *
      *
@@ -37,17 +29,6 @@ public class DictionaryConfig {
         return new SysDomain();
         return new SysDomain();
     }
     }
 
 
-    /**
-     * cas配置
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "cas.config")
-    public CasDomain casDomain() {
-        return new CasDomain();
-    }
-
     /**
     /**
      * 短信配置
      * 短信配置
      *
      *
@@ -59,39 +40,6 @@ public class DictionaryConfig {
         return new SmsDomain();
         return new SmsDomain();
     }
     }
 
 
-//    /**
-//     * 阿里云oss配置
-//     *
-//     * @return
-//     */
-//    @Bean
-//    @ConfigurationProperties(prefix = "aliyun.oss")
-//    public AliYunOssDomain aliYunOssDomain() {
-//        return new AliYunOssDomain();
-//    }
-
-    /**
-     * 云阅卷同步推送
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "sync.config", ignoreUnknownFields = false)
-    public SyncDataDomain syncDataDomain() {
-        return new SyncDataDomain();
-    }
-
-    /**
-     * 云阅卷配置
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "yun.mark", ignoreUnknownFields = false)
-    public YunMarkDomain yunMarkDomain() {
-        return new YunMarkDomain();
-    }
-
     @Bean
     @Bean
     @ConfigurationProperties(prefix = "com.qmth.fss.public", ignoreUnknownFields = false)
     @ConfigurationProperties(prefix = "com.qmth.fss.public", ignoreUnknownFields = false)
     public FssPublicDomain fssPublicDomain() {
     public FssPublicDomain fssPublicDomain() {
@@ -103,38 +51,4 @@ public class DictionaryConfig {
     public FssPrivateDomain fssPrivateDomain() {
     public FssPrivateDomain fssPrivateDomain() {
         return new FssPrivateDomain();
         return new FssPrivateDomain();
     }
     }
-
-    @Bean
-    @ConfigurationProperties(prefix = "com.qmth.fss.localpdf", ignoreUnknownFields = false)
-    public FssLocalPdfDomain fssLocalPdfDomain() {
-        return new FssLocalPdfDomain();
-    }
-
-    @Bean
-    @ConfigurationProperties(prefix = "com.qmth.fss.localfile", ignoreUnknownFields = false)
-    public FssLocalFileDomain fssLocalFileDomain() {
-        return new FssLocalFileDomain();
-    }
-
-    /**
-     * 分布式印刷开放接口
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "print.open", ignoreUnknownFields = false)
-    public PrintOpenDomain printOpenDomain() {
-        return new PrintOpenDomain();
-    }
-
-    /**
-     * 教研分析开放接口
-     *
-     * @return
-     */
-    @Bean
-    @ConfigurationProperties(prefix = "report.open", ignoreUnknownFields = false)
-    public ReportOpenDomain reportOpenDomain() {
-        return new ReportOpenDomain();
-    }
 }
 }

+ 150 - 9
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.common.contant;
 package com.qmth.teachcloud.common.contant;
 
 
+import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
 import com.qmth.boot.core.uid.service.UidService;
 import com.qmth.boot.core.uid.service.UidService;
 import com.qmth.teachcloud.common.annotation.DBVerify;
 import com.qmth.teachcloud.common.annotation.DBVerify;
 import com.qmth.teachcloud.common.bean.result.DBVerifyResult;
 import com.qmth.teachcloud.common.bean.result.DBVerifyResult;
@@ -32,19 +33,128 @@ import java.util.stream.Collectors;
  * @Date: 2019/10/11
  * @Date: 2019/10/11
  */
  */
 public class SystemConstant {
 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_SET = "/admin/set";
+    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";
+
+    /**
+     * 云阅卷api
+     */
+    public static final String CLOUD_MARK_EXAM_SAVE_API = "/api/exam/save";
+    public static final String CLOUD_MARK_EXAM_STUDENT_SAVE_API = "/api/exam/student/save";
+    public static final String CLOUD_MARK_FILE_UPLOAD_API = "/api/file/{type}/upload";
+    public static final String CLOUD_MARK_EXAM_PAPER_QUERY_API = "/api/exam/paper/query";
+    public static final String CLOUD_MARK_OPEN_MARK_LOGIN_API = "/open/mark/login";
+    public static final String CLOUD_MARK_OPEN_SUBJECT_HEADER_LOGIN_API = "/open/subject_header/login";
+    public static final String CLOUD_MARK_EXAM_STUDENT_COUNT_API = "/api/exam/student/count";
+    public static final String CLOUD_MARK_EXAM_STUDENT_SCORE_API = "/api/exam/student/score";
+    public static final String CLOUD_MARK_EXAM_PAPER_SAVE_API = "/api/exam/paper/save";
+    public static final String CLOUD_MARK_USER_EXTERNAL_SAVE_API = "/api/user/external/save";
+    public static final String CLOUD_MARK_EXAM_MARK_GROUP_SAVE_API = "/api/exam/mark_group/save";
+    public static final String CLOUD_MARK_EXAM_MARK_GROUP_COUNT_API = "/api/exam/mark_group/count";
+    public static final String CLOUD_MARK_EXAM_MARK_GROUP_DELETE_API = "/api/exam/mark_group/delete";
+    public static final String CLOUD_MARK_EXAM_MARKER_SAVE_API = "/api/exam/marker/save";
+    public static final String CLOUD_MARK_EXAM_SUBJECT_HEADER_SAVE_API = "/api/exam/subject_header/save";
+
+    /**
+     * 教研分析api
+     */
+    public static final String TEACHCLOUD_REPORT_OPEN_SEMESTER_EDIT_API = "/api/report/open/semester_edit";
+    public static final String TEACHCLOUD_REPORT_OPEN_EXAM_EDIT_API = "/api/report/open/exam_edit";
+    public static final String TEACHCLOUD_REPORT_OPEN_EXAM_DELETE_API = "/api/report/open/exam_delete";
+    public static final String TEACHCLOUD_REPORT_OPEN_COURSE_EDIT_API = "/api/report/open/course_edit";
+//    public static final String TEACHCLOUD_REPORT_OPEN_COURSE_DEL_API = "/api/report/open/course_del";
+    public static final String TEACHCLOUD_REPORT_OPEN_CALCULATE_API = "/api/report/open/calculate";
+    public static final String TEACHCLOUD_REPORT_OPEN_PUBLISH_API = "/api/report/open/publish";
+    public static final String TEACHCLOUD_REPORT_SSO_LOGIN_API = "/api/report/sso/login";
+
+    /**
+     * 分布式印刷api
+     */
+    public static final String TEACHCLOUD_PRINT_NOTIFY_ANALYSIS_PROGRESS_API = "/api/admin/print/notify/analysis/progress";
+    public static final String TEACHCLOUD_PRINT_OPEN_PAPER_CONFIG_API = "/api/admin/print/open/paper_config";
+    public static final String TEACHCLOUD_PRINT_OPEN_PAPER_DIMENSION_API = "/api/admin/print/open/paper_dimension";
+    public static final String TEACHCLOUD_PRINT_OPEN_PAPER_STRUCTURE_API = "/api/admin/print/open/paper_structure";
+    public static final String TEACHCLOUD_PRINT_OPEN_PAPER_EVALUATION_API = "/api/admin/print/open/paper_evaluation";
+    public static final String TEACHCLOUD_PRINT_OPEN_EXAM_STUDENT_SCORE_API = "/api/admin/print/open/exam_student_score";
+
+
+    /**
+     * 题库cas登录地址
+     */
+    public static final String QUESTION_CAS_ADMIN_LOGIN_OPEN_API = "/admin/login-open";
+
+    /**
+     * 系统配置
      */
      */
     public static final String PRINT_DELETE_DATA_FILE_NAME = "db/4、delete-data.sql";
     public static final String PRINT_DELETE_DATA_FILE_NAME = "db/4、delete-data.sql";
+    public static final String SYS_USER_INIT_PASSWORD = "sys.user.initPassword";
+    public static final String SYS_WARNING_DAYS = "sys.warning.days";
+    public static final String SYS_CODE_ENABLE = "sys.code.enable";
+    public static final String SYS_MESSAGE_ENABLE = "sys.message.enable";
+    public static final String SYS_MESSAGE_RESEND_COUNT = "sys.message.resendCount";
     public static final String SYS_CONFIG_KEY_CHARSETS = "sys.txt.charset";
     public static final String SYS_CONFIG_KEY_CHARSETS = "sys.txt.charset";
     public static final String SYS_PDF_SIZE_LIST = "sys.pdf.size.list";
     public static final String SYS_PDF_SIZE_LIST = "sys.pdf.size.list";
-    public static final String PDF_SIZE_LIST = "pdf.size.list";
-    public static final String ACCOUNT_SMS_VERIFY = "account.sms.verify";
-    public static final String TEACHCLOUD_EXCHANGE_SERVICE_PATH = "teachcloud.exchange.serive.path";
-    public static final String SYNC_SERVICE_PATH = "sync.service.path";
-    public static final String QUESTION_HOST_URL = "question.host.url";
+    public static final String ADMIN_LOGO_URL = "admin.logo.url";
+    public static final String ATTACHMENT_TYPE = "attachment.type";
+    public static final String ATTACHMENT_LENGTH = "attachment.length";
+    public static final String ATTACHMENT_SIZE = "attachment.size";
+    public static final String AUTO_CREATE_PDF_RESET_MAX_COUNT = "auto.create.pdf.reset.max.count";
+    public static final String THREAD_POOL_CORE_SIZE = "thread.pool.core.size";
+    public static final String CUSTOM_THREAD_POOL_CORE_SIZE = "custom.thread.pool.core.size";
+    public static final String SESSION_ACTIVE = "session.active";
     public static final String CLOUDMARK_HOST_URL = "cloudmark.host.url";
     public static final String CLOUDMARK_HOST_URL = "cloudmark.host.url";
+    public static final String SMS_NORMAL_CODE = "sms.normal.code";
+    public static final String CODE_EXPIRED_TIME = "code.expired.time";
+    public static final String CODE_SEND_INTERVAL = "code.send.interval";
     public static final String TEACHCLOUD_REPORT_HOST_URL = "teachcloud.report.host.url";
     public static final String TEACHCLOUD_REPORT_HOST_URL = "teachcloud.report.host.url";
+    public static final String TEACHCLOUD_PRINT_OPEN_CALLBACK_PWD = "teachcloud.print.open.callback.pwd";
+    public static final String QUESTION_HOST_URL = "question.host.url";
+    public static final String TEACHCLOUD_REPORT_STUDENT_URL = "teachcloud.report.student.url";
+    public static final String TEACHCLOUD_REPORT_LOGIN_URL = "teachcloud.report.login.url";
+    public static final String TEACHCLOUD_PRINT_HOST_URL = "teachcloud.print.host.url";
+
+    /**
+     * 系统学校配置
+     */
+    public static final String ACCOUNT_SMS_VERIFY = "account.sms.verify";
+    public static final String TEACHCLOUD_EXCHANGE_HOST_URL = "teachcloud.exchange.host.url";
+    public static final String SYNC_SERVICE_PATH = "sync.service.path";
+    public static final String PDF_SIZE_LIST = "pdf.size.list";
+
+    /**
+     * 系统常量
+     */
+    public static final String PT = "PT";
     public static final String CHARSET_NAME = "UTF-8";
     public static final String CHARSET_NAME = "UTF-8";
     //    public static final String CHARSET_GB2312 = "gb2312";
     //    public static final String CHARSET_GB2312 = "gb2312";
     public static final String CHARSET_GBK = "gbk";
     public static final String CHARSET_GBK = "gbk";
@@ -160,7 +270,7 @@ public class SystemConstant {
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
     public static final String ROLE_PRIVILEGE_CACHE = "role:privilege:cache";
     public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
     public static final String USER_ROLE_PRIVILEGE_CACHE = "user:role:privilege:cache";
     public static final String ROLE_CACHE = "role:cache";
     public static final String ROLE_CACHE = "role:cache";
-    public static final String AUTH_INFO_CACHE = "auth:info:cache";
+//    public static final String AUTH_INFO_CACHE = "auth:info:cache";
     public static final String SYS_CONFIG_CACHE = "sys:config:cache";
     public static final String SYS_CONFIG_CACHE = "sys:config:cache";
     public static final String CUSTOM_PRIVILEGE_CACHE = "custom:privilege:cache";
     public static final String CUSTOM_PRIVILEGE_CACHE = "custom:privilege:cache";
     public static final String NUMBER_CACHE = "school:number:cache:";
     public static final String NUMBER_CACHE = "school:number:cache:";
@@ -351,13 +461,31 @@ public class SystemConstant {
         return Objects.nonNull(id) && id.length() > 0 ? Integer.parseInt(id) : null;
         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 getNanoId() {
+        return NanoIdUtils.randomNanoId();
+    }
+
     /**
     /**
      * 获取全局uuid
      * 获取全局uuid
      *
      *
      * @return
      * @return
      */
      */
-    public static String getUuid() {
-        return String.valueOf(UUID.randomUUID()).replaceAll("-", "");
+    public static String getUserDir() {
+        return System.getProperty(SystemConstant.USER_DIR);
     }
     }
 
 
     /**
     /**
@@ -701,4 +829,17 @@ public class SystemConstant {
         }
         }
         return filePath;
         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 - 33
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/CasDomain.java

@@ -1,33 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-import java.io.Serializable;
-
-/**
- * @Description: cas配置
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/4/10
- */
-public class CasDomain implements Serializable {
-
-    String questionHostUrl;
-
-    String questionLoginUri;
-
-    public String getQuestionHostUrl() {
-        return questionHostUrl;
-    }
-
-    public void setQuestionHostUrl(String questionHostUrl) {
-        this.questionHostUrl = questionHostUrl;
-    }
-
-    public String getQuestionLoginUri() {
-        return questionLoginUri;
-    }
-
-    public void setQuestionLoginUri(String questionLoginUri) {
-        this.questionLoginUri = questionLoginUri;
-    }
-}

+ 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 - 243
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrefixUrlDomain.java

@@ -1,243 +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;
-
-    String statistics;
-
-    String sync;
-
-    String customFlow;
-
-    String teach;
-
-    String auth;
-
-    String grade;
-
-    String set;
-
-    public String getSet() {
-        return set;
-    }
-
-    public void setSet(String set) {
-        this.set = set;
-    }
-
-    public String getStatistics() {
-        return statistics;
-    }
-
-    public void setStatistics(String statistics) {
-        this.statistics = statistics;
-    }
-
-    public String getSync() {
-        return sync;
-    }
-
-    public void setSync(String sync) {
-        this.sync = sync;
-    }
-
-    public String getCustomFlow() {
-        return customFlow;
-    }
-
-    public void setCustomFlow(String customFlow) {
-        this.customFlow = customFlow;
-    }
-
-    public String getTeach() {
-        return teach;
-    }
-
-    public void setTeach(String teach) {
-        this.teach = teach;
-    }
-
-    public String getAuth() {
-        return auth;
-    }
-
-    public void setAuth(String auth) {
-        this.auth = auth;
-    }
-
-    public String getGrade() {
-        return grade;
-    }
-
-    public void setGrade(String grade) {
-        this.grade = grade;
-    }
-
-    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;
-    }
-}

+ 0 - 98
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/PrintOpenDomain.java

@@ -1,98 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-import io.swagger.annotations.ApiModelProperty;
-
-import java.io.Serializable;
-
-/**
- * @Description: 分布式印刷开放接口
- * @Author: wangliang
- * @Date: 2020/4/10
- */
-public class PrintOpenDomain implements Serializable {
-
-    String hostUrl;
-
-    String callbackUrlApi;
-
-    String callbackPwd;
-
-    @ApiModelProperty(value = "知学知考开放接口:试卷基础配置查询接口")
-    String paperConfig;
-
-    @ApiModelProperty(value = "知学知考开放接口:试卷考察点查询接口")
-    String paperDimension;
-
-    @ApiModelProperty(value = "知学知考开放接口:试卷蓝图查询接口")
-    String paperStructure;
-
-    @ApiModelProperty(value = "知学知考开放接口:试卷评价模型查询接口")
-    String paperEvaluation;
-
-    @ApiModelProperty(value = "知学知考开放接口:考生成绩查询接口")
-    String examStudentScore;
-
-    public String getHostUrl() {
-        return hostUrl;
-    }
-
-    public void setHostUrl(String hostUrl) {
-        this.hostUrl = hostUrl;
-    }
-
-    public String getCallbackUrlApi() {
-        return callbackUrlApi;
-    }
-
-    public void setCallbackUrlApi(String callbackUrlApi) {
-        this.callbackUrlApi = callbackUrlApi;
-    }
-
-    public String getCallbackPwd() {
-        return callbackPwd;
-    }
-
-    public void setCallbackPwd(String callbackPwd) {
-        this.callbackPwd = callbackPwd;
-    }
-
-    public String getPaperConfig() {
-        return paperConfig;
-    }
-
-    public void setPaperConfig(String paperConfig) {
-        this.paperConfig = paperConfig;
-    }
-
-    public String getPaperDimension() {
-        return paperDimension;
-    }
-
-    public void setPaperDimension(String paperDimension) {
-        this.paperDimension = paperDimension;
-    }
-
-    public String getPaperStructure() {
-        return paperStructure;
-    }
-
-    public void setPaperStructure(String paperStructure) {
-        this.paperStructure = paperStructure;
-    }
-
-    public String getPaperEvaluation() {
-        return paperEvaluation;
-    }
-
-    public void setPaperEvaluation(String paperEvaluation) {
-        this.paperEvaluation = paperEvaluation;
-    }
-
-    public String getExamStudentScore() {
-        return examStudentScore;
-    }
-
-    public void setExamStudentScore(String examStudentScore) {
-        this.examStudentScore = examStudentScore;
-    }
-}

+ 0 - 103
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/ReportOpenDomain.java

@@ -1,103 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-import java.io.Serializable;
-
-/**
- * @Description: 分布式印刷开放接口
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/4/10
- */
-public class ReportOpenDomain implements Serializable {
-
-    String hostUrl;
-
-    String semesterApi;
-
-    String examApi;
-
-    String examDeleteApi;
-
-    String courseEditApi;
-
-    String courseDelApi;
-
-    String calculateApi;
-
-    String publishApi;
-
-    String ssoLoginApi;
-
-    public String getSsoLoginApi() {
-        return ssoLoginApi;
-    }
-
-    public void setSsoLoginApi(String ssoLoginApi) {
-        this.ssoLoginApi = ssoLoginApi;
-    }
-
-    public String getHostUrl() {
-        return hostUrl;
-    }
-
-    public void setHostUrl(String hostUrl) {
-        this.hostUrl = hostUrl;
-    }
-
-    public String getExamApi() {
-        return examApi;
-    }
-
-    public void setExamApi(String examApi) {
-        this.examApi = examApi;
-    }
-
-    public String getExamDeleteApi() {
-        return examDeleteApi;
-    }
-
-    public void setExamDeleteApi(String examDeleteApi) {
-        this.examDeleteApi = examDeleteApi;
-    }
-
-    public String getCourseEditApi() {
-        return courseEditApi;
-    }
-
-    public void setCourseEditApi(String courseEditApi) {
-        this.courseEditApi = courseEditApi;
-    }
-
-    public String getCourseDelApi() {
-        return courseDelApi;
-    }
-
-    public void setCourseDelApi(String courseDelApi) {
-        this.courseDelApi = courseDelApi;
-    }
-
-    public String getCalculateApi() {
-        return calculateApi;
-    }
-
-    public void setCalculateApi(String calculateApi) {
-        this.calculateApi = calculateApi;
-    }
-
-    public String getPublishApi() {
-        return publishApi;
-    }
-
-    public void setPublishApi(String publishApi) {
-        this.publishApi = publishApi;
-    }
-
-    public String getSemesterApi() {
-        return semesterApi;
-    }
-
-    public void setSemesterApi(String semesterApi) {
-        this.semesterApi = semesterApi;
-    }
-}

+ 26 - 26
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SmsDomain.java

@@ -5,9 +5,9 @@ package com.qmth.teachcloud.common.domain;
  */
  */
 public class SmsDomain {
 public class SmsDomain {
 
 
-    String smsNormalCode;
-    Integer codeExpiredTime;
-    Integer codeSendInterval;
+//    String smsNormalCode;
+//    Integer codeExpiredTime;
+//    Integer codeSendInterval;
     String aliyunSMSKey;
     String aliyunSMSKey;
     String aliyunSMSSecret;
     String aliyunSMSSecret;
     String aliyunSMSSignName;
     String aliyunSMSSignName;
@@ -27,29 +27,29 @@ public class SmsDomain {
     String aliyunSMSUploadStructureCode;
     String aliyunSMSUploadStructureCode;
     String aliyunSMSAuditCopyUserCode;
     String aliyunSMSAuditCopyUserCode;
 
 
-    public String getSmsNormalCode() {
-        return smsNormalCode;
-    }
-
-    public void setSmsNormalCode(String smsNormalCode) {
-        this.smsNormalCode = smsNormalCode;
-    }
-
-    public Integer getCodeExpiredTime() {
-        return codeExpiredTime;
-    }
-
-    public void setCodeExpiredTime(Integer codeExpiredTime) {
-        this.codeExpiredTime = codeExpiredTime;
-    }
-
-    public Integer getCodeSendInterval() {
-        return codeSendInterval;
-    }
-
-    public void setCodeSendInterval(Integer codeSendInterval) {
-        this.codeSendInterval = codeSendInterval;
-    }
+//    public String getSmsNormalCode() {
+//        return smsNormalCode;
+//    }
+//
+//    public void setSmsNormalCode(String smsNormalCode) {
+//        this.smsNormalCode = smsNormalCode;
+//    }
+//
+//    public Integer getCodeExpiredTime() {
+//        return codeExpiredTime;
+//    }
+//
+//    public void setCodeExpiredTime(Integer codeExpiredTime) {
+//        this.codeExpiredTime = codeExpiredTime;
+//    }
+//
+//    public Integer getCodeSendInterval() {
+//        return codeSendInterval;
+//    }
+//
+//    public void setCodeSendInterval(Integer codeSendInterval) {
+//        this.codeSendInterval = codeSendInterval;
+//    }
 
 
     public String getAliyunSMSKey() {
     public String getAliyunSMSKey() {
         return aliyunSMSKey;
         return aliyunSMSKey;

+ 0 - 167
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SyncDataDomain.java

@@ -1,167 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-/**
- * @Description: 同步云阅卷参数
- */
-public class SyncDataDomain {
-
-    String hostUrl;
-
-    String examSaveUrl;
-
-    String studentSaveUrl;
-
-    String fileUploadUrl;
-
-    String queryPaperStructure;
-
-    String markLoginUrl;
-
-    String markLeaderLoginUrl;
-
-    String studentCountUrl;
-
-    String studentScoreUrl;
-
-    String structureUrl;
-
-    String userSaveUrl;
-
-    String groupSaveUrl;
-
-    String groupCountUrl;
-
-    String groupDeleteUrl;
-
-    String markerSaveUrl;
-
-    String markLeaderSaveUrl;
-
-    public String getHostUrl() {
-        return hostUrl;
-    }
-
-    public void setHostUrl(String hostUrl) {
-        this.hostUrl = hostUrl;
-    }
-
-    public String getExamSaveUrl() {
-        return examSaveUrl;
-    }
-
-    public void setExamSaveUrl(String examSaveUrl) {
-        this.examSaveUrl = examSaveUrl;
-    }
-
-    public String getStudentSaveUrl() {
-        return studentSaveUrl;
-    }
-
-    public void setStudentSaveUrl(String studentSaveUrl) {
-        this.studentSaveUrl = studentSaveUrl;
-    }
-
-    public String getFileUploadUrl() {
-        return fileUploadUrl;
-    }
-
-    public void setFileUploadUrl(String fileUploadUrl) {
-        this.fileUploadUrl = fileUploadUrl;
-    }
-
-    public String getQueryPaperStructure() {
-        return queryPaperStructure;
-    }
-
-    public void setQueryPaperStructure(String queryPaperStructure) {
-        this.queryPaperStructure = queryPaperStructure;
-    }
-
-    public String getMarkLoginUrl() {
-        return markLoginUrl;
-    }
-
-    public void setMarkLoginUrl(String markLoginUrl) {
-        this.markLoginUrl = markLoginUrl;
-    }
-
-    public String getStudentCountUrl() {
-        return studentCountUrl;
-    }
-
-    public void setStudentCountUrl(String studentCountUrl) {
-        this.studentCountUrl = studentCountUrl;
-    }
-
-    public String getStudentScoreUrl() {
-        return studentScoreUrl;
-    }
-
-    public void setStudentScoreUrl(String studentScoreUrl) {
-        this.studentScoreUrl = studentScoreUrl;
-    }
-
-    public String getStructureUrl() {
-        return structureUrl;
-    }
-
-    public void setStructureUrl(String structureUrl) {
-        this.structureUrl = structureUrl;
-    }
-
-    public String getUserSaveUrl() {
-        return userSaveUrl;
-    }
-
-    public void setUserSaveUrl(String userSaveUrl) {
-        this.userSaveUrl = userSaveUrl;
-    }
-
-    public String getMarkLeaderLoginUrl() {
-        return markLeaderLoginUrl;
-    }
-
-    public void setMarkLeaderLoginUrl(String markLeaderLoginUrl) {
-        this.markLeaderLoginUrl = markLeaderLoginUrl;
-    }
-
-    public String getGroupSaveUrl() {
-        return groupSaveUrl;
-    }
-
-    public void setGroupSaveUrl(String groupSaveUrl) {
-        this.groupSaveUrl = groupSaveUrl;
-    }
-
-    public String getGroupCountUrl() {
-        return groupCountUrl;
-    }
-
-    public void setGroupCountUrl(String groupCountUrl) {
-        this.groupCountUrl = groupCountUrl;
-    }
-
-    public String getGroupDeleteUrl() {
-        return groupDeleteUrl;
-    }
-
-    public void setGroupDeleteUrl(String groupDeleteUrl) {
-        this.groupDeleteUrl = groupDeleteUrl;
-    }
-
-    public String getMarkerSaveUrl() {
-        return markerSaveUrl;
-    }
-
-    public void setMarkerSaveUrl(String markerSaveUrl) {
-        this.markerSaveUrl = markerSaveUrl;
-    }
-
-    public String getMarkLeaderSaveUrl() {
-        return markLeaderSaveUrl;
-    }
-
-    public void setMarkLeaderSaveUrl(String markLeaderSaveUrl) {
-        this.markLeaderSaveUrl = markLeaderSaveUrl;
-    }
-}

+ 33 - 99
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/SysDomain.java

@@ -1,8 +1,6 @@
 package com.qmth.teachcloud.common.domain;
 package com.qmth.teachcloud.common.domain;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
-import java.time.Duration;
-import java.util.List;
 
 
 /**
 /**
  * @Description: 系统配置
  * @Description: 系统配置
@@ -15,77 +13,45 @@ public class SysDomain implements Serializable {
 
 
     boolean oss;
     boolean oss;
 
 
-    List attachmentType;
-
-    Integer attachmentLength;
-
-    Double attachmentSize;
+//    List attachmentType;
+//
+//    Integer attachmentLength;
+//
+//    Double attachmentSize;
 
 
     String serverUpload;
     String serverUpload;
 
 
-    String adminLogoUrl;
+//    String adminLogoUrl;
 
 
     String htmlToPdfUrl;
     String htmlToPdfUrl;
 
 
-    Integer autoCreatePdfResetMaxCount;
-
-    Integer threadPoolCoreSize;
-
-    boolean customThreadPoolCoreSize;
-
-    String reportUrl;
-
-    Duration sessionActive;
-
-    String loginAuthenUrl;
-
-    public String getLoginAuthenUrl() {
-        return loginAuthenUrl;
-    }
-
-    public void setLoginAuthenUrl(String loginAuthenUrl) {
-        this.loginAuthenUrl = loginAuthenUrl;
-    }
-
-    public Duration getSessionActive() {
-        return sessionActive;
-    }
-
-    public void setSessionActive(Duration sessionActive) {
-        this.sessionActive = sessionActive;
-    }
-
-    public String getReportUrl() {
-        return reportUrl;
-    }
-
-    public void setReportUrl(String reportUrl) {
-        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;
-    }
+//    Integer autoCreatePdfResetMaxCount;
+//
+//    Integer threadPoolCoreSize;
+//
+//    boolean customThreadPoolCoreSize;
+
+//    String reportUrl;
+
+//    Duration sessionActive;
+
+//    String loginAuthenUrl;
+
+//    public String getLoginAuthenUrl() {
+//        return loginAuthenUrl;
+//    }
+//
+//    public void setLoginAuthenUrl(String loginAuthenUrl) {
+//        this.loginAuthenUrl = loginAuthenUrl;
+//    }
+//
+//    public String getReportUrl() {
+//        return reportUrl;
+//    }
+//
+//    public void setReportUrl(String reportUrl) {
+//        this.reportUrl = reportUrl;
+//    }
 
 
     public String getHtmlToPdfUrl() {
     public String getHtmlToPdfUrl() {
         return htmlToPdfUrl;
         return htmlToPdfUrl;
@@ -95,30 +61,6 @@ public class SysDomain implements Serializable {
         this.htmlToPdfUrl = htmlToPdfUrl;
         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() {
     public boolean isOss() {
         return oss;
         return oss;
     }
     }
@@ -127,14 +69,6 @@ public class SysDomain implements Serializable {
         this.oss = oss;
         this.oss = oss;
     }
     }
 
 
-    public List getAttachmentType() {
-        return attachmentType;
-    }
-
-    public void setAttachmentType(List attachmentType) {
-        this.attachmentType = attachmentType;
-    }
-
     public String getServerUpload() {
     public String getServerUpload() {
         return serverUpload;
         return serverUpload;
     }
     }

+ 0 - 39
teachcloud-common/src/main/java/com/qmth/teachcloud/common/domain/YunMarkDomain.java

@@ -1,39 +0,0 @@
-package com.qmth.teachcloud.common.domain;
-
-import java.io.Serializable;
-
-/**
- * @Description: 系统配置
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/4/10
- */
-public class YunMarkDomain implements Serializable {
-
-    private static final long serialVersionUID = 7510626406622200443L;
-
-    private String url;
-
-    private String studentScoreApi;
-
-    public static long getSerialVersionUID() {
-        return serialVersionUID;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-
-    public String getStudentScoreApi() {
-        return studentScoreApi;
-    }
-
-    public void setStudentScoreApi(String studentScoreApi) {
-        this.studentScoreApi = studentScoreApi;
-    }
-}

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

+ 8 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CommonCacheService.java

@@ -380,6 +380,14 @@ public interface CommonCacheService {
      */
      */
     public void removeSysConfigCache(String key);
     public void removeSysConfigCache(String key);
 
 
+    /**
+     * 更新系统参数缓存
+     *
+     * @param key
+     * @param sysConfig
+     */
+    public void updateSysConfigCacheForDb(String key, SysConfig sysConfig);
+
     /**
     /**
      * 添加系统参数缓存
      * 添加系统参数缓存
      *
      *

+ 9 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysConfigService.java

@@ -3,6 +3,8 @@ package com.qmth.teachcloud.common.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysConfig;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  * 参数表 服务类
  * 参数表 服务类
@@ -14,4 +16,11 @@ import com.qmth.teachcloud.common.entity.SysConfig;
 public interface SysConfigService extends IService<SysConfig> {
 public interface SysConfigService extends IService<SysConfig> {
 
 
     SysConfig getByKey(String key);
     SysConfig getByKey(String key);
+
+    /**
+     * 查询所有系统配置项
+     *
+     * @return
+     */
+    List<SysConfig> selectAll();
 }
 }

+ 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));
         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();
         fileName = StringUtils.isNotBlank(fileName) ? fileName : UUID.fastUUID() + basicAttachment.getType();
         // 存储文件类型与附件类型不一样,默认改用附件类型
         // 存储文件类型与附件类型不一样,默认改用附件类型
@@ -73,7 +73,7 @@ public class AttachmentCommonServiceImpl implements AttachmentCommonService {
 
 
     @Override
     @Override
     public void zipFiles(HttpServletResponse response, String filePath, String zipName, List<File> files) {
     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);
         File rootFile = new File(filePath);
         // 创建保存目录
         // 创建保存目录
         if (!rootFile.exists()) {
         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.service.*;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -167,7 +168,14 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             sysOrgSet = new HashSet<>();
             sysOrgSet = new HashSet<>();
             orgCodesMap = new HashMap<>();
             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) {
         for (OrgInfo o : orgInfoList) {
             orgCodesMap.put(o.getCode(), o.getCode());
             orgCodesMap.put(o.getCode(), o.getCode());
             if (authEnum == AuthEnum.OFF_LINE) {
             if (authEnum == AuthEnum.OFF_LINE) {
@@ -185,28 +193,25 @@ public class AuthInfoServiceImpl implements AuthInfoService {
             if (Objects.isNull(basicSchool)) {//不存在则创建学校
             if (Objects.isNull(basicSchool)) {//不存在则创建学校
                 basicSchool = new BasicSchool(o.getId(), o.getCode(), o.getName(), o.getAccessKey(), o.getAccessSecret());
                 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"))) {
                 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 {
                 } else {
                     basicSchool.setLogo(o.getLogoUrl());
                     basicSchool.setLogo(o.getLogoUrl());

+ 30 - 16
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicAttachmentServiceImpl.java

@@ -6,23 +6,23 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 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.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.mapper.BasicAttachmentMapper;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.FileStoreUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 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.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.FileCopyUtils;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -31,9 +31,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Objects;
-import java.util.StringJoiner;
+import java.util.*;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -53,6 +51,9 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     @Autowired
     @Autowired
     private DictionaryConfig dictionaryConfig;
     private DictionaryConfig dictionaryConfig;
 
 
+    @Resource
+    CommonCacheService commonCacheService;
+
     /**
     /**
      * 保存附件
      * 保存附件
      *
      *
@@ -66,7 +67,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
     public BasicAttachment saveAttachmentPdf(String dirName, Long userId) throws IOException {
     public BasicAttachment saveAttachmentPdf(String dirName, Long userId) throws IOException {
         BasicAttachment basicAttachment = null;
         BasicAttachment basicAttachment = null;
         try {
         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);
             File localPdfFile = new File(stringJoiner.toString() + File.separator + dirName);
             if (!localPdfFile.getParentFile().exists()) {
             if (!localPdfFile.getParentFile().exists()) {
                 localPdfFile.getParentFile().mkdirs();
                 localPdfFile.getParentFile().mkdirs();
@@ -128,17 +129,26 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
         BasicAttachment basicAttachment = null;
         BasicAttachment basicAttachment = null;
         try {
         try {
             SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
             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();
+//            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());
+
+            SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_TYPE);
+            Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件类型"));
+            List<String> attachmentTypeList = Arrays.asList(sysConfig.getConfigValue().replaceAll("\\[", "").replaceAll("\\]", "").split(", "));
+
             if (Objects.nonNull(format)) {
             if (Objects.nonNull(format)) {
                 long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
                 long count = attachmentTypeList.stream().filter(s -> format.equalsIgnoreCase(s)).count();
                 if (count == 0) {
                 if (count == 0) {
                     throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
                     throw ExceptionResultEnum.ERROR.exception("文件格式只能为" + attachmentTypeList.toString());
                 }
                 }
             }
             }
-            int attachmentLength = dictionaryConfig.sysDomain().getAttachmentLength().intValue();
+
+            SysConfig sysConfigLength = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_LENGTH);
+            Optional.ofNullable(sysConfigLength).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件名称长度"));
+            int attachmentLength = Integer.parseInt(sysConfigLength.getConfigValue());
             if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
             if (Objects.nonNull(fileName) && fileName.length() > attachmentLength) {
                 throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
                 throw ExceptionResultEnum.ERROR.exception("文件名长度不能超过" + attachmentLength + "个字符");
             }
             }
@@ -147,7 +157,10 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             BigDecimal num = new BigDecimal(1024);
             BigDecimal num = new BigDecimal(1024);
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
             b = b.divide(num, 2, BigDecimal.ROUND_HALF_UP).divide(num, 2, BigDecimal.ROUND_HALF_UP)
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
                     .setScale(2, BigDecimal.ROUND_HALF_UP);
-            double attachmentSize = dictionaryConfig.sysDomain().getAttachmentSize().doubleValue();
+
+            SysConfig sysConfigSize = commonCacheService.addSysConfigCache(SystemConstant.ATTACHMENT_SIZE);
+            Optional.ofNullable(sysConfigSize).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置附件大小"));
+            double attachmentSize = Double.valueOf(sysConfigSize.getConfigValue());
             if (b.doubleValue() > attachmentSize) {
             if (b.doubleValue() > attachmentSize) {
                 throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
                 throw ExceptionResultEnum.ERROR.exception("文件大小不能超过" + attachmentSize + "MB");
             }
             }
@@ -165,7 +178,7 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
             LocalDateTime nowTime = LocalDateTime.now();
             LocalDateTime nowTime = LocalDateTime.now();
             StringJoiner stringJoiner = new StringJoiner("");
             StringJoiner stringJoiner = new StringJoiner("");
             if (!oss) {
             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(type.getTitle()).add(File.separator);
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
             stringJoiner.add(String.valueOf(nowTime.getYear())).add(File.separator)
@@ -173,14 +186,15 @@ public class BasicAttachmentServiceImpl extends ServiceImpl<BasicAttachmentMappe
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
                     .add(String.format("%02d", nowTime.getDayOfMonth()));
 
 
             JSONObject jsonObject = new JSONObject();
             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\
             if (oss) {//上传至oss\
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 String dirName = stringJoiner.toString().replaceAll("\\\\", "/");
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), DigestUtils.md5Hex(file.getInputStream()), type.getFssType());
                 fileStoreUtil.ossUpload(dirName, file.getInputStream(), DigestUtils.md5Hex(file.getInputStream()), type.getFssType());
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.TYPE, SystemConstant.OSS);
                 jsonObject.put(SystemConstant.PATH, dirName);
                 jsonObject.put(SystemConstant.PATH, dirName);
             } else {//上传至服务器
             } 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.TYPE, SystemConstant.LOCAL);
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
                 jsonObject.put(SystemConstant.PATH, stringJoiner.toString());
             }
             }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно