Jelajahi Sumber

Merge remote-tracking branch 'remotes/origin/release_v4.1.0'

deason 3 tahun lalu
induk
melakukan
ade0998ed0
100 mengubah file dengan 383 tambahan dan 6365 penghapusan
  1. 29 14
      .gitignore
  2. 0 19
      examcloud-api-commons/.gitignore
  3. 2 8
      examcloud-api-commons/pom.xml
  4. 5 1
      examcloud-api-commons/src/main/java/cn/com/qmth/examcloud/api/commons/enums/NoticeStatus.java
  5. 13 0
      examcloud-api-commons/src/main/java/cn/com/qmth/examcloud/api/commons/security/bean/UserDataRule.java
  6. 0 19
      examcloud-commons/.gitignore
  7. 2 17
      examcloud-commons/pom.xml
  8. 7 0
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/exception/StatusException.java
  9. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/FileChangeWatchdog.java
  10. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/ConcurrentTask.java
  11. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/WorkerController.java
  12. 3 4
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/pipeline/SimpleNode.java
  13. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/AES.java
  14. 0 271
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DBUtil.java
  15. 2 0
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DateUtil.java
  16. 9 9
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/HttpClientUtil.java
  17. 24 10
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java
  18. 3 3
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/OKHttpUtil.java
  19. 245 245
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/PropertiesUtil.java
  20. 0 124
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/SecurityUtil.java
  21. 27 0
      examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/SqlUtil.java
  22. 0 42
      examcloud-commons/src/test/resources/log4j2.xml
  23. 0 19
      examcloud-config-center-starter/.gitignore
  24. 0 33
      examcloud-config-center-starter/pom.xml
  25. 0 143
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/ConfigCenterStarter.java
  26. 0 25
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/configuration/ExamCloudAppSelf.java
  27. 0 23
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/configuration/ExamCloudWebMvcConfigurer.java
  28. 0 86
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/controller/ConfigCenterController.java
  29. 0 61
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/BootstrapSecurityManager.java
  30. 0 113
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/CommandInterpreter.java
  31. 0 110
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/ConfigCenterBootstrap.java
  32. 0 85
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/PropertiesLoader.java
  33. 0 49
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Rpc.java
  34. 0 13
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Test.java
  35. 0 14
      examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Test2.java
  36. 0 51
      examcloud-config-center-starter/src/main/resources/log4j2.xml
  37. 0 19
      examcloud-java-sdk/.gitignore
  38. 0 87
      examcloud-java-sdk/pom.xml
  39. 0 187
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudent4BatchBean.java
  40. 0 145
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudentBean.java
  41. 0 149
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudentBean4Reset.java
  42. 0 66
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterGetCapturePhotoBean.java
  43. 0 163
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterStudent4BatchBean.java
  44. 0 62
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/enums/AccountType.java
  45. 0 80
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exception/StatusException.java
  46. 0 29
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/EnterpriseRequest.java
  47. 0 42
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/EnterpriseResponse.java
  48. 0 13
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/ExchangeBean.java
  49. 0 16
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/JsonSerializable.java
  50. 0 58
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/helpers/FormFilePart.java
  51. 0 59
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterBatchSaveExamStudentReq.java
  52. 0 35
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterBatchSaveStudentReq.java
  53. 0 36
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterDeleteScoreQueueTopReq.java
  54. 0 29
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetCourseListReq.java
  55. 0 29
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetExamRecordAuditInfoReq.java
  56. 0 56
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetExamReq.java
  57. 0 24
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetQuestionAnswerReq.java
  58. 0 36
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetScoreDataReq.java
  59. 0 19
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetScoreQueueTopReq.java
  60. 0 34
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectivePaperReq.java
  61. 0 24
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectivePaperStructReq.java
  62. 0 54
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectiveQuestionReq.java
  63. 0 36
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryCapturePhotoReq.java
  64. 0 74
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryScoreDataReq.java
  65. 0 89
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryScoreListReq.java
  66. 0 92
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterResetExamStudentReq.java
  67. 0 98
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveExamReq.java
  68. 0 166
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveExamStudentReq.java
  69. 0 159
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveStudentReq.java
  70. 0 89
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdateExamStudentStatusReq.java
  71. 0 49
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdatePasswordReq.java
  72. 0 48
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdateStudentStatusReq.java
  73. 0 39
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterDeleteScoreQueueTopResp.java
  74. 0 71
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetExamRecordAuditInfoResp.java
  75. 0 148
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetExamResp.java
  76. 0 27
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetQuestionAnswerResp.java
  77. 0 138
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetScoreDataResp.java
  78. 0 36
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetScoreQueueTopResp.java
  79. 0 32
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterQueryCapturePhotoResp.java
  80. 0 26
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveExamResp.java
  81. 0 27
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveExamStudentResp.java
  82. 0 16
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveStudentPhotoResp.java
  83. 0 49
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveStudentResp.java
  84. 0 22
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/InvalidScoreHandler.java
  85. 0 159
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ScoreHandler.java
  86. 0 49
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ScoreHandlerController.java
  87. 0 22
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ValidScoreHandler.java
  88. 0 61
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/security/LoginUtil.java
  89. 0 35
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/security/bean/Session.java
  90. 0 56
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/support/StatusResponse.java
  91. 0 116
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/ByteUtil.java
  92. 0 94
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/DateUtil.java
  93. 0 115
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/HttpMethod.java
  94. 0 53
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/JsonUtil.java
  95. 0 305
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/OKHttpUtil.java
  96. 0 113
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/PathUtil.java
  97. 0 236
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/PropertiesUtil.java
  98. 0 154
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/QmthUtil.java
  99. 0 67
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/ResourceLoader.java
  100. 0 25
      examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/SHA256.java

+ 29 - 14
.gitignore

@@ -1,10 +1,14 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
 
-### STS ###
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.class
+*.log
+
+
+### Eclipse & STS ###
 .apt_generated
 .classpath
 .factorypath
@@ -13,13 +17,6 @@ target/
 .springBeans
 .sts4-cache
 
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-*.class
-*.log
 
 ### NetBeans ###
 /nbproject/private/
@@ -31,5 +28,23 @@ build/
 !**/src/main/**/build/
 !**/src/test/**/build/
 
+
 ### VS Code ###
-.vscode/
+.vscode
+node_modules
+package-lock.json
+yarn.lock
+
+
+### Package Files ###
+*.zip
+*.war
+*.ear
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+target/
+
+.flattened-pom.xml
+.DS_Store
+

+ 0 - 19
examcloud-api-commons/.gitignore

@@ -1,19 +0,0 @@
-*.class
-
-# Proguard folder generated by ide
-.project
-.classpath
-.settings
-target/
-.idea/
-*.iml
-
-# Log Files
-*.log
-*.class
-
-
-# Package Files #
-*.jar
-*.war
-*.ear

+ 2 - 8
examcloud-api-commons/pom.xml

@@ -3,21 +3,15 @@
          xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>examcloud-api-commons</artifactId>
-    <version>v4.0.2-RELEASE</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>cn.com.qmth.examcloud</groupId>
-        <artifactId>examcloud-parent</artifactId>
-        <version>v4.0.2-RELEASE</version>
+        <artifactId>examcloud-components</artifactId>
+        <version>${revision}</version>
     </parent>
 
     <dependencies>
-        <dependency>
-            <groupId>cn.com.qmth.examcloud</groupId>
-            <artifactId>examcloud-jenkins-build</artifactId>
-            <version>${examcloud.version}</version>
-        </dependency>
         <dependency>
             <groupId>io.swagger</groupId>
             <artifactId>swagger-annotations</artifactId>

+ 5 - 1
examcloud-api-commons/src/main/java/cn/com/qmth/examcloud/api/commons/enums/NoticeStatus.java

@@ -25,6 +25,10 @@ public enum NoticeStatus {
 	/**
 	 * 已发布
 	 */
-	PUBLISHED
+	PUBLISHED,
+	/**
+	 * 已撤回
+	 */
+	RECALLED
 
 }

+ 13 - 0
examcloud-api-commons/src/main/java/cn/com/qmth/examcloud/api/commons/security/bean/UserDataRule.java

@@ -3,7 +3,9 @@ package cn.com.qmth.examcloud.api.commons.security.bean;
 import cn.com.qmth.examcloud.api.commons.exchange.JsonSerializable;
 
 import java.util.HashSet;
+import java.util.Optional;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 public class UserDataRule implements JsonSerializable {
 
@@ -60,6 +62,17 @@ public class UserDataRule implements JsonSerializable {
         this.refIds = refIds;
     }
 
+    /**
+     * 返回String值类型的“refIds”集合
+     */
+    public Set<String> stringRefIds() {
+        return Optional.ofNullable(refIds)
+                .orElse(new HashSet<>())
+                .stream()
+                .map(e -> String.valueOf(e))
+                .collect(Collectors.toSet());
+    }
+
     @Override
     public String toString() {
         return "globalStatus = " + globalStatus + ", refIds = " + refIds;

+ 0 - 19
examcloud-commons/.gitignore

@@ -1,19 +0,0 @@
-*.class
-
-# Proguard folder generated by ide
-.project
-.classpath
-.settings
-target/
-.idea/
-*.iml
-
-# Log Files
-*.log
-*.class
-
-
-# Package Files #
-*.jar
-*.war
-*.ear

+ 2 - 17
examcloud-commons/pom.xml

@@ -3,30 +3,15 @@
          xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>examcloud-commons</artifactId>
-    <version>v4.0.2-RELEASE</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>cn.com.qmth.examcloud</groupId>
-        <artifactId>examcloud-parent</artifactId>
-        <version>v4.0.2-RELEASE</version>
+        <artifactId>examcloud-components</artifactId>
+        <version>${revision}</version>
     </parent>
 
     <dependencies>
-        <dependency>
-            <groupId>cn.com.qmth.examcloud</groupId>
-            <artifactId>examcloud-jenkins-build</artifactId>
-            <version>${examcloud.version}</version>
-        </dependency>
-
-        <!--<dependency>
-            <groupId>jdk.tools</groupId>
-            <artifactId>jdk.tools</artifactId>
-            <version>${java.version}</version>
-            <scope>system</scope>
-            <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
-        </dependency>-->
-
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter</artifactId>

+ 7 - 0
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/exception/StatusException.java

@@ -13,6 +13,7 @@ import cn.com.qmth.examcloud.commons.util.JsonUtil;
 public class StatusException extends RuntimeException {
 	private static final long serialVersionUID = 5003047488500388819L;
 
+	private static final String DEF_CODE="500";
 	/**
 	 * 追踪ID
 	 */
@@ -45,6 +46,12 @@ public class StatusException extends RuntimeException {
 		this.code = code;
 		this.desc = desc;
 	}
+	
+	public StatusException( String desc) {
+		super("[code: " + DEF_CODE + "; desc: " + desc + "]");
+		this.code = DEF_CODE;
+		this.desc = desc;
+	}
 
 	public String getCode() {
 		return code;

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/FileChangeWatchdog.java

@@ -2,8 +2,8 @@ package cn.com.qmth.examcloud.commons.helpers;
 
 import java.io.File;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 文件变更监视器
@@ -14,7 +14,7 @@ public abstract class FileChangeWatchdog extends Thread {
 	/**
 	 * 属性注释
 	 */
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(FileChangeWatchdog.class);
+	private static final Logger LOG = LoggerFactory.getLogger(FileChangeWatchdog.class);
 
 	/**
 	 * 属性注释

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/ConcurrentTask.java

@@ -5,9 +5,9 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 并发任务
@@ -18,7 +18,7 @@ import cn.com.qmth.examcloud.commons.util.Util;
  */
 public class ConcurrentTask<T> {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ConcurrentTask.class);
+	private static final Logger LOG = LoggerFactory.getLogger(ConcurrentTask.class);
 
 	private BlockingQueue<T> queue = new LinkedBlockingQueue<T>(10000);
 

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/concurrency/simple/WorkerController.java

@@ -2,12 +2,12 @@ package cn.com.qmth.examcloud.commons.helpers.concurrency.simple;
 
 import java.util.concurrent.atomic.AtomicInteger;
 
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class WorkerController {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(WorkerController.class);
+	private static final Logger LOG = LoggerFactory.getLogger(WorkerController.class);
 
 	private AtomicInteger warnCount = new AtomicInteger(0);
 

+ 3 - 4
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/helpers/pipeline/SimpleNode.java

@@ -11,10 +11,10 @@ import com.google.common.collect.Lists;
 
 import cn.com.qmth.examcloud.commons.helpers.KeyValuePair;
 import cn.com.qmth.examcloud.commons.helpers.ObjectHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
 import cn.com.qmth.examcloud.commons.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 简单节点
@@ -27,7 +27,7 @@ public class SimpleNode<KEYIN, VALUEIN, KEYOUT, VALUEOUT>
 		implements
 			Node<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(SimpleNode.class);
+	private static final Logger LOG = LoggerFactory.getLogger(SimpleNode.class);
 
 	private String nodeName;
 
@@ -55,7 +55,6 @@ public class SimpleNode<KEYIN, VALUEIN, KEYOUT, VALUEOUT>
 	 * 构造函数
 	 *
 	 * @param nodeName
-	 * @param nodeExecuter
 	 * @param context
 	 */
 	public SimpleNode(String nodeName, NodeExecuter<KEYIN, VALUEIN, KEYOUT, VALUEOUT> executer,

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/AES.java

@@ -14,8 +14,8 @@ import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang3.StringUtils;
 
 import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * AES算法<br>
@@ -28,7 +28,7 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
  */
 public class AES {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(AES.class);
+	private static final Logger LOG = LoggerFactory.getLogger(AES.class);
 
 	private static final String KEY_ALGORITHM = "AES";
 

+ 0 - 271
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DBUtil.java

@@ -1,271 +0,0 @@
-package cn.com.qmth.examcloud.commons.util;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.sql.DataSource;
-
-import org.apache.commons.lang3.StringUtils;
-
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- */
-public class DBUtil {
-
-	/**
-	 * 属性注释
-	 */
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(DBUtil.class);
-
-	/**
-	 * 属性注释
-	 */
-	private static final Object LOCK = new Object();
-
-	/**
-	 * 属性注释
-	 */
-	private static Map<String, DataSource> dataSources = new ConcurrentHashMap<String, DataSource>();
-
-	/**
-	 * 初始化数据源(C3P0)
-	 *
-	 * @author WANGWEI
-	 * @param dataSourceName
-	 * @return
-	 */
-	public static DataSource initDataSource(final String dataSourceName) {
-		Class<?> c = null;
-		try {
-			c = Class.forName("com.alibaba.druid.pool.DruidDataSource");
-		} catch (ClassNotFoundException e) {
-			// ignore
-		}
-
-		if (null == c) {
-			try {
-				c = Class.forName("com.mchange.v2.c3p0.ComboPooledDataSource");
-			} catch (ClassNotFoundException e) {
-				// ignore
-			}
-		}
-
-		if (null == c) {
-			throw new ExamCloudRuntimeException("no class about dataSource implementation.");
-		}
-
-		@SuppressWarnings("unchecked")
-		Class<? extends DataSource> z = (Class<? extends DataSource>) c;
-
-		return initDataSource(z, dataSourceName);
-	}
-
-	/**
-	 * 初始化数据源
-	 *
-	 * @author WANGWEI
-	 * 
-	 * @param implementation
-	 *            数据源实现类
-	 * @param dataSourceName
-	 *            数据源名称
-	 * @return
-	 */
-	public static DataSource initDataSource(Class<? extends DataSource> implementation,
-			final String dataSourceName) {
-
-		String dbDriver = PropertiesUtil.getString(dataSourceName + ".driver");
-		String url = PropertiesUtil.getString(dataSourceName + ".url");
-		String userName = PropertiesUtil.getString(dataSourceName + ".username");
-		String password = PropertiesUtil.getString(dataSourceName + ".password");
-		int initialPoolSize = PropertiesUtil.getInt(dataSourceName + ".initialPoolSize", 1);
-		int minPoolSize = PropertiesUtil.getInt(dataSourceName + ".minPoolSize", 1);
-		int maxPoolSize = PropertiesUtil.getInt(dataSourceName + ".maxPoolSize", 10);
-
-		DataSource dataSource = null;
-		String simpleName = implementation.getSimpleName();
-		try {
-			// C3P0
-			if (simpleName.equals("ComboPooledDataSource")) {
-				DataSource c3po = implementation.newInstance();
-				dataSource = c3po;
-				implementation.getMethod("setDriverClass", String.class).invoke(c3po, dbDriver);
-				implementation.getMethod("setJdbcUrl", String.class).invoke(c3po, url);
-				implementation.getMethod("setUser", String.class).invoke(c3po, userName);
-				implementation.getMethod("setPassword", String.class).invoke(c3po, password);
-				implementation.getMethod("setInitialPoolSize", int.class).invoke(c3po,
-						initialPoolSize);
-				implementation.getMethod("setMinPoolSize", int.class).invoke(c3po, minPoolSize);
-				implementation.getMethod("setMaxPoolSize", int.class).invoke(c3po, maxPoolSize);
-				implementation.getMethod("setPreferredTestQuery", String.class).invoke(c3po,
-						"select 1 from dual");
-			}
-			// druid
-			else if (simpleName.equals("DruidDataSource")) {
-				DataSource druid = implementation.newInstance();
-				dataSource = druid;
-				implementation.getMethod("setDriverClassName", String.class).invoke(druid,
-						dbDriver);
-				implementation.getMethod("setUrl", String.class).invoke(druid, url);
-				implementation.getMethod("setUsername", String.class).invoke(druid, userName);
-				implementation.getMethod("setPassword", String.class).invoke(druid, password);
-				implementation.getMethod("setInitialSize", int.class).invoke(druid,
-						initialPoolSize);
-				implementation.getMethod("setMaxActive", int.class).invoke(druid, maxPoolSize);
-
-				implementation.getMethod("setValidationQuery", String.class).invoke(druid,
-						"select 1 from dual");
-			}
-
-		} catch (Exception e) {
-			LOG.error("[JDBC] Fail to init dataSource. dataSourceName=" + dataSourceName, e);
-			throw new RuntimeException(e);
-		}
-
-		Connection conn = null;
-		try {
-			conn = dataSource.getConnection();
-		} catch (Exception e) {
-			LOG.error("[JDBC] Fail to get connection. dataSourceName=" + dataSourceName, e);
-			throw new RuntimeException(e);
-		} finally {
-			close(conn);
-		}
-
-		return dataSource;
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param dataSourceName
-	 * @return
-	 */
-	public static DataSource getDataSource(String dataSourceName) {
-		DataSource dataSource = dataSources.get(dataSourceName);
-		if (null == dataSource) {
-			synchronized (LOCK) {
-				dataSource = dataSources.get(dataSourceName);
-				if (null == dataSource) {
-					dataSource = initDataSource(dataSourceName);
-					dataSources.put(dataSourceName, dataSource);
-				}
-			}
-		}
-		return dataSource;
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param dataSourceName
-	 * @return
-	 */
-	public static Connection getConnection(String dataSourceName) {
-		Connection conn = null;
-		try {
-			conn = getDataSource(dataSourceName).getConnection();
-		} catch (SQLException e) {
-			LOG.error("[JDBC] Fail to get connection.", e);
-		}
-
-		return conn;
-	}
-
-	/**
-	 * @param conn
-	 * @param stmt
-	 * @param res
-	 */
-	public static void close(Connection conn, Statement statement, ResultSet rs) {
-		close(rs);
-		close(conn, statement);
-	}
-
-	/**
-	 * @param conn
-	 * @param statement
-	 */
-	public static void close(Connection conn, Statement statement) {
-		close(statement);
-		close(conn);
-	}
-
-	/**
-	 * @param stmt
-	 * @param res
-	 */
-	public static void close(Statement statement, ResultSet rs) {
-		close(statement);
-		close(rs);
-	}
-
-	/**
-	 * @param conn
-	 */
-	public static void close(Connection conn) {
-		if (conn != null) {
-			try {
-				conn.close();
-			} catch (SQLException e) {
-				LOG.error("[JDBC] Fail to close Connection.", e);
-			}
-		}
-	}
-
-	/**
-	 * @param statement
-	 */
-	public static void close(Statement statement) {
-		if (statement != null) {
-			try {
-				statement.close();
-			} catch (SQLException e) {
-				LOG.error("[JDBC] Fail to close Statement.", e);
-			}
-		}
-	}
-
-	/**
-	 * @param rs
-	 */
-	public static void close(ResultSet rs) {
-		if (rs != null) {
-			try {
-				rs.close();
-			} catch (SQLException e) {
-				LOG.error("[JDBC] Fail to close ResultSet.", e);
-			}
-		}
-	}
-
-	/**
-	 * 转换为数据库模糊查询匹配模式
-	 *
-	 * @author WANGWEI
-	 * @param column
-	 * @return
-	 */
-	public static String toSqlSearchPattern(String column) {
-		if (StringUtils.isBlank(column)) {
-			return "%";
-		} else {
-			column = column.trim().replaceAll("\\s", "%");
-			column = "%" + column + "%";
-			return column;
-		}
-	}
-
-}

+ 2 - 0
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/DateUtil.java

@@ -34,6 +34,8 @@ public class DateUtil {
 
 		public static final String YYYYMMDDHHMM = "yyyyMMddHHmm";
 
+		public static final String YYYYMMDDHHMMSSSSS = "yyyyMMddHHmmssSSS";
+
 		public static final String CHINA_DEFAULT = "yyyy-MM-dd HH:mm:ss";
 
 		public static final String YYYY_MM = "yyyy-MM";

+ 9 - 9
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/HttpClientUtil.java

@@ -22,8 +22,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 
 import cn.com.qmth.examcloud.commons.helpers.JsonHttpResponseHolder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * httpclient
@@ -34,7 +34,7 @@ import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
  */
 public class HttpClientUtil {
 
-	private static final ExamCloudLog LOGGER = ExamCloudLogFactory.getLog("HTTP_CLIENT_LOGGER");
+	private static final Logger LOG = LoggerFactory.getLogger(HttpClientUtil.class);
 
 	private static CloseableHttpClient httpclient;
 
@@ -95,20 +95,20 @@ public class HttpClientUtil {
 			responseHolder = new JsonHttpResponseHolder(statusCode, obj);
 
 			if (HttpStatus.SC_OK != responseHolder.getStatusCode()) {
-				LOGGER.error("[HTTP-FAIL]. statusCode=" + statusCode + "; responseEntity="
+				LOG.error("[HTTP-FAIL]. statusCode=" + statusCode + "; responseEntity="
 						+ entityStr + "; uri=" + request.getURI());
 			} else {
-				if (LOGGER.isDebugEnabled()) {
-					LOGGER.debug("[HTTP-OK]. statusCode=" + statusCode + "; responseEntity="
+				if (LOG.isDebugEnabled()) {
+					LOG.debug("[HTTP-OK]. statusCode=" + statusCode + "; responseEntity="
 							+ entityStr + "; uri=" + request.getURI());
 				}
 			}
 
 		} catch (Exception e) {
-			LOGGER.error("[HTTP-ERROR]. uri=" + request.getURI(), e);
+			LOG.error("[HTTP-ERROR]. uri=" + request.getURI(), e);
 		} finally {
 			IOUtils.closeQuietly(response);
-			LOGGER.debug("[HTTP-COST]. cost = " + (System.currentTimeMillis() - s) + " ms; uri="
+			LOG.debug("[HTTP-COST]. cost = " + (System.currentTimeMillis() - s) + " ms; uri="
 					+ request.getURI());
 		}
 		return responseHolder;
@@ -126,7 +126,7 @@ public class HttpClientUtil {
 				EntityUtils.consumeQuietly(resp.getEntity());
 				resp.close();
 			} catch (Exception e) {
-				LOGGER.error("fail to close http response stream.", e);
+				LOG.error("fail to close http response stream.", e);
 			}
 		}
 	}

+ 24 - 10
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/JsonMapper.java

@@ -1,9 +1,12 @@
 package cn.com.qmth.examcloud.commons.util;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
+import com.fasterxml.jackson.databind.module.SimpleModule;
 import com.fasterxml.jackson.databind.util.JSONPObject;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -23,7 +26,7 @@ import java.util.Map;
 @SuppressWarnings("unchecked")
 public class JsonMapper {
 
-    private static Logger log = LoggerFactory.getLogger(JsonMapper.class);
+    private static final Logger LOG = LoggerFactory.getLogger(JsonMapper.class);
 
     private ObjectMapper mapper;
 
@@ -61,6 +64,17 @@ public class JsonMapper {
     public JsonMapper(Include include) {
         mapper = new ObjectMapper();
 
+        SimpleModule module = new SimpleModule();
+        module.addDeserializer(String.class, new StdScalarDeserializer<String>(String.class) {
+            @Override
+            public String deserialize(JsonParser jsonParser, DeserializationContext ctx)
+                    throws IOException, JsonProcessingException {
+                // 去掉头尾空格
+                return jsonParser.getValueAsString() != null ? jsonParser.getValueAsString().trim() : null;
+            }
+        });
+        mapper.registerModule(module);
+
         //设置输出时包含属性的风格
         if (include != null) {
             mapper.setSerializationInclusion(include);
@@ -88,7 +102,7 @@ public class JsonMapper {
         try {
             return mapper.writeValueAsString(object);
         } catch (IOException e) {
-            log.error("toJson error!" + e.getMessage(), e);
+            LOG.error("toJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -107,7 +121,7 @@ public class JsonMapper {
         try {
             return mapper.readValue(jsonStr, clazz);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -123,7 +137,7 @@ public class JsonMapper {
         try {
             return (T) mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -139,7 +153,7 @@ public class JsonMapper {
         try {
             return (T) mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -156,7 +170,7 @@ public class JsonMapper {
             JavaType javaType = constructCollectionType(List.class, bean);
             return mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -173,7 +187,7 @@ public class JsonMapper {
             JavaType javaType = constructMapType(HashMap.class, String.class, bean);
             return mapper.readValue(jsonStr, javaType);
         } catch (IOException e) {
-            log.error("parseJson error!" + e.getMessage(), e);
+            LOG.error("parseJson error!" + e.getMessage(), e);
             return null;
         }
     }
@@ -203,9 +217,9 @@ public class JsonMapper {
         try {
             mapper.readerForUpdating(object).readValue(jsonStr);
         } catch (JsonProcessingException e) {
-            log.error("updateJson error!" + e.getMessage(), e);
+            LOG.error("updateJson error!" + e.getMessage(), e);
         } catch (IOException e) {
-            log.error("updateJson error!" + e.getMessage(), e);
+            LOG.error("updateJson error!" + e.getMessage(), e);
         }
     }
 
@@ -249,7 +263,7 @@ public class JsonMapper {
             //mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
             return mapper.readTree(jsonStr);
         } catch (IOException e) {
-            log.error(e.getMessage(), e);
+            LOG.error(e.getMessage(), e);
             return null;
         }
     }

+ 3 - 3
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/OKHttpUtil.java

@@ -9,8 +9,6 @@ import java.util.concurrent.TimeUnit;
 import org.apache.commons.collections.CollectionUtils;
 
 import cn.com.qmth.examcloud.commons.helpers.FormFilePart;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
 import okhttp3.FormBody;
 import okhttp3.MediaType;
 import okhttp3.MultipartBody;
@@ -19,6 +17,8 @@ import okhttp3.Request;
 import okhttp3.Request.Builder;
 import okhttp3.RequestBody;
 import okhttp3.Response;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * OKHttp
@@ -29,7 +29,7 @@ import okhttp3.Response;
  */
 public class OKHttpUtil {
 
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(OKHttpUtil.class);
+	private static final Logger LOG = LoggerFactory.getLogger(OKHttpUtil.class);
 
 	public static final class MediaTypes {
 

+ 245 - 245
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/PropertiesUtil.java

@@ -1,245 +1,245 @@
-package cn.com.qmth.examcloud.commons.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-
-import com.google.common.collect.Sets;
-
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年10月8日
- * @Copyright (c) 2018-2020 http://www.qmth.com.cn/ All Rights Reserved.
- */
-public class PropertiesUtil {
-
-	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(PropertiesUtil.class);
-
-	private static final Properties PROPS = new Properties();
-
-	private static final Set<String> PROP_FILES = Sets.newConcurrentHashSet();
-
-	/**
-	 * 构造函数
-	 *
-	 */
-	private PropertiesUtil() {
-	}
-
-	/**
-	 * 设置属性
-	 *
-	 * @author WANGWEI
-	 * @param key
-	 * @param value
-	 */
-	public static void setProperty(String key, String value) {
-		PROPS.setProperty(key, value);
-	}
-
-	/**
-	 * 加载配置文件
-	 *
-	 * @author WANGWEI
-	 * @param resourceName
-	 */
-	public static void loadFromResource(String resourceName) {
-		loadFromPath(PathUtil.getResoucePath(resourceName));
-	}
-
-	/**
-	 * 加载配置文件
-	 *
-	 * @author WANGWEI
-	 * @param path
-	 */
-	public static synchronized void loadFromPath(String path) {
-		if (StringUtils.isBlank(path)) {
-			return;
-		}
-		try {
-			File file = new File(path);
-
-			if (PROP_FILES.contains(file.getCanonicalPath())) {
-				return;
-			}
-
-			loadFromFile(file, PROPS);
-
-			PROP_FILES.add(file.getCanonicalPath());
-		} catch (Exception e) {
-			LOG.error("Fail to load and watch file [" + path + "].", e);
-		}
-	}
-
-	/**
-	 * @param resourceName
-	 * @param props
-	 */
-	public static void loadFromResource(String resourceName, Properties props) {
-		if (null != PropertiesUtil.class.getClassLoader()) {
-			InputStream in = PropertiesUtil.class.getClassLoader()
-					.getResourceAsStream(resourceName);
-
-			loadFromStream(in, props);
-		} else {
-			throw new ExamCloudRuntimeException("fail to get class loader");
-		}
-	}
-
-	/**
-	 * @param file
-	 * @param props
-	 * @throws IOException
-	 */
-	public static void loadFromFile(File file, Properties props) {
-		if (null == file) {
-			LOG.error("file is null.");
-			return;
-		}
-		if (!file.isFile()) {
-			LOG.error("file is not a normal file.");
-			return;
-		}
-
-		String path = PathUtil.getCanonicalPath(file);
-		LOG.info("Loading properties from file [" + path + "]");
-
-		try {
-			loadFromStream(new FileInputStream(file), props);
-		} catch (Exception e) {
-			throw new ExamCloudRuntimeException(e);
-		}
-	}
-
-	/**
-	 * @param is
-	 * @param props
-	 */
-	public static void loadFromStream(InputStream is, Properties props) {
-		BufferedReader reader = null;
-		try {
-			reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-			Properties temp = new Properties();
-			temp.load(reader);
-			for (Entry<Object, Object> entry : temp.entrySet()) {
-				Object key = entry.getKey();
-				Object value = entry.getValue();
-				if (key instanceof String) {
-					key = ((String) key).trim();
-				}
-				if (value instanceof String) {
-					value = ((String) value).trim();
-				}
-				props.put(key, value);
-			}
-
-		} catch (IOException e) {
-			throw new ExamCloudRuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(reader);
-			IOUtils.closeQuietly(is);
-		}
-	}
-
-	/**
-	 * @param key
-	 * @return
-	 */
-	public static String getString(String key) {
-		String value = PROPS.getProperty(key);
-		if (StringUtils.isNotBlank(value)) {
-			return value.trim();
-		} else {
-			if (LOG.isDebugEnabled()) {
-				LOG.debug("No property value, key = " + key);
-			}
-			return null;
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static String getString(String key, String defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			return value;
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static int getInt(String key, int defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			try {
-				return Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-				PROPS.setProperty(key, String.valueOf(defaultValue));
-				return defaultValue;
-			}
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static long getLong(String key, long defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			try {
-				return Long.parseLong(value);
-			} catch (NumberFormatException e) {
-				return defaultValue;
-			}
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * 获取boolean
-	 *
-	 * @author WANGWEI
-	 * @param key
-	 * @param defaultVale
-	 * @return
-	 */
-	public static boolean getBoolean(String key, boolean defaultVale) {
-		String value = getString(key);
-		if (null == value) {
-			return defaultVale;
-		}
-		if (value.equals("true")) {
-			return true;
-		} else if (value.equals("false")) {
-			return false;
-		} else {
-			return defaultVale;
-		}
-	}
-}
+// package cn.com.qmth.examcloud.commons.util;
+//
+// import java.io.BufferedReader;
+// import java.io.File;
+// import java.io.FileInputStream;
+// import java.io.IOException;
+// import java.io.InputStream;
+// import java.io.InputStreamReader;
+// import java.util.Map.Entry;
+// import java.util.Properties;
+// import java.util.Set;
+//
+// import org.apache.commons.io.IOUtils;
+// import org.apache.commons.lang.StringUtils;
+//
+// import com.google.common.collect.Sets;
+//
+// import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
+// import org.slf4j.Logger;
+// import org.slf4j.LoggerFactory;
+//
+// /**
+//  * 类注释
+//  *
+//  * @author WANGWEI
+//  * @date 2018年10月8日
+//  * @Copyright (c) 2018-2020 http://www.qmth.com.cn/ All Rights Reserved.
+//  */
+// public class PropertiesUtil {
+//
+// 	private static final Logger LOG = LoggerFactory.getLogger(PropertiesUtil.class);
+//
+// 	private static final Properties PROPS = new Properties();
+//
+// 	private static final Set<String> PROP_FILES = Sets.newConcurrentHashSet();
+//
+// 	/**
+// 	 * 构造函数
+// 	 *
+// 	 */
+// 	private PropertiesUtil() {
+// 	}
+//
+// 	/**
+// 	 * 设置属性
+// 	 *
+// 	 * @author WANGWEI
+// 	 * @param key
+// 	 * @param value
+// 	 */
+// 	public static void setProperty(String key, String value) {
+// 		PROPS.setProperty(key, value);
+// 	}
+//
+// 	/**
+// 	 * 加载配置文件
+// 	 *
+// 	 * @author WANGWEI
+// 	 * @param resourceName
+// 	 */
+// 	public static void loadFromResource(String resourceName) {
+// 		loadFromPath(PathUtil.getResoucePath(resourceName));
+// 	}
+//
+// 	/**
+// 	 * 加载配置文件
+// 	 *
+// 	 * @author WANGWEI
+// 	 * @param path
+// 	 */
+// 	public static synchronized void loadFromPath(String path) {
+// 		if (StringUtils.isBlank(path)) {
+// 			return;
+// 		}
+// 		try {
+// 			File file = new File(path);
+//
+// 			if (PROP_FILES.contains(file.getCanonicalPath())) {
+// 				return;
+// 			}
+//
+// 			loadFromFile(file, PROPS);
+//
+// 			PROP_FILES.add(file.getCanonicalPath());
+// 		} catch (Exception e) {
+// 			LOG.error("Fail to load and watch file [" + path + "].", e);
+// 		}
+// 	}
+//
+// 	/**
+// 	 * @param resourceName
+// 	 * @param props
+// 	 */
+// 	public static void loadFromResource(String resourceName, Properties props) {
+// 		if (null != PropertiesUtil.class.getClassLoader()) {
+// 			InputStream in = PropertiesUtil.class.getClassLoader()
+// 					.getResourceAsStream(resourceName);
+//
+// 			loadFromStream(in, props);
+// 		} else {
+// 			throw new ExamCloudRuntimeException("fail to get class loader");
+// 		}
+// 	}
+//
+// 	/**
+// 	 * @param file
+// 	 * @param props
+// 	 * @throws IOException
+// 	 */
+// 	public static void loadFromFile(File file, Properties props) {
+// 		if (null == file) {
+// 			LOG.error("file is null.");
+// 			return;
+// 		}
+// 		if (!file.isFile()) {
+// 			LOG.error("file is not a normal file.");
+// 			return;
+// 		}
+//
+// 		String path = PathUtil.getCanonicalPath(file);
+// 		LOG.info("Loading properties from file [" + path + "]");
+//
+// 		try {
+// 			loadFromStream(new FileInputStream(file), props);
+// 		} catch (Exception e) {
+// 			throw new ExamCloudRuntimeException(e);
+// 		}
+// 	}
+//
+// 	/**
+// 	 * @param is
+// 	 * @param props
+// 	 */
+// 	public static void loadFromStream(InputStream is, Properties props) {
+// 		BufferedReader reader = null;
+// 		try {
+// 			reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+// 			Properties temp = new Properties();
+// 			temp.load(reader);
+// 			for (Entry<Object, Object> entry : temp.entrySet()) {
+// 				Object key = entry.getKey();
+// 				Object value = entry.getValue();
+// 				if (key instanceof String) {
+// 					key = ((String) key).trim();
+// 				}
+// 				if (value instanceof String) {
+// 					value = ((String) value).trim();
+// 				}
+// 				props.put(key, value);
+// 			}
+//
+// 		} catch (IOException e) {
+// 			throw new ExamCloudRuntimeException(e);
+// 		} finally {
+// 			IOUtils.closeQuietly(reader);
+// 			IOUtils.closeQuietly(is);
+// 		}
+// 	}
+//
+// 	/**
+// 	 * @param key
+// 	 * @return
+// 	 */
+// 	public static String getString(String key) {
+// 		String value = PROPS.getProperty(key);
+// 		if (StringUtils.isNotBlank(value)) {
+// 			return value.trim();
+// 		} else {
+// 			if (LOG.isDebugEnabled()) {
+// 				LOG.debug("No property value, key = " + key);
+// 			}
+// 			return null;
+// 		}
+// 	}
+//
+// 	/**
+// 	 * @param key
+// 	 * @param defaultValue
+// 	 * @return
+// 	 */
+// 	public static String getString(String key, String defaultValue) {
+// 		String value = getString(key);
+// 		if (null != value) {
+// 			return value;
+// 		}
+// 		return defaultValue;
+// 	}
+//
+// 	/**
+// 	 * @param key
+// 	 * @param defaultValue
+// 	 * @return
+// 	 */
+// 	public static int getInt(String key, int defaultValue) {
+// 		String value = getString(key);
+// 		if (null != value) {
+// 			try {
+// 				return Integer.parseInt(value);
+// 			} catch (NumberFormatException e) {
+// 				PROPS.setProperty(key, String.valueOf(defaultValue));
+// 				return defaultValue;
+// 			}
+// 		}
+// 		return defaultValue;
+// 	}
+//
+// 	/**
+// 	 * @param key
+// 	 * @param defaultValue
+// 	 * @return
+// 	 */
+// 	public static long getLong(String key, long defaultValue) {
+// 		String value = getString(key);
+// 		if (null != value) {
+// 			try {
+// 				return Long.parseLong(value);
+// 			} catch (NumberFormatException e) {
+// 				return defaultValue;
+// 			}
+// 		}
+// 		return defaultValue;
+// 	}
+//
+// 	/**
+// 	 * 获取boolean
+// 	 *
+// 	 * @author WANGWEI
+// 	 * @param key
+// 	 * @param defaultVale
+// 	 * @return
+// 	 */
+// 	public static boolean getBoolean(String key, boolean defaultVale) {
+// 		String value = getString(key);
+// 		if (null == value) {
+// 			return defaultVale;
+// 		}
+// 		if (value.equals("true")) {
+// 			return true;
+// 		} else if (value.equals("false")) {
+// 			return false;
+// 		} else {
+// 			return defaultVale;
+// 		}
+// 	}
+// }

+ 0 - 124
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/SecurityUtil.java

@@ -1,124 +0,0 @@
-package cn.com.qmth.examcloud.commons.util;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
-/**
- * 安全工具
- *
- * @author WANGWEI
- * @date 2018年12月4日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class SecurityUtil {
-
-	private static final String RANDOM = "9451utb@91&vrmio!90iu!89F2QN1V ALAII!K33I*DFA^sA";
-
-	private static final String ENCRYPTED_HEAD = "$encrypted";
-
-	/**
-	 * main
-	 *
-	 * @author WANGWEI
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		String s = "";
-		String secretKey = "5220";
-		System.out.println(encrypt(s, secretKey));
-	}
-
-	/**
-	 * 加密
-	 *
-	 * @author WANGWEI
-	 * @param s
-	 * @param secretKey
-	 */
-	public static String encrypt(String s, String secretKey) {
-		AES aes = new AES(secretKey + RANDOM);
-		String encrypted = aes.encrypt(s);
-		return encrypted;
-	}
-
-	/**
-	 * 解密
-	 *
-	 * @author WANGWEI
-	 * @param s
-	 * @param secretKey
-	 */
-	public static String decrypt(String s, String secretKey) {
-		AES aes = new AES(secretKey + RANDOM);
-		String decrypted = aes.decrypt(s);
-		return decrypted;
-	}
-
-	/**
-	 * 解密
-	 *
-	 * @author WANGWEI
-	 * @param props
-	 * @param secretKey
-	 */
-	public static void decrypt(Properties props, String secretKey) {
-		AES aes = new AES(secretKey + RANDOM);
-		Map<String, String> map = Maps.newHashMap();
-		Set<String> set = Sets.newHashSet();
-		for (Entry<Object, Object> entry : props.entrySet()) {
-			Object key = entry.getKey();
-			Object value = entry.getValue();
-			if (key instanceof String && value instanceof String) {
-				if (((String) key).startsWith(ENCRYPTED_HEAD)) {
-					String decrypted = aes.decrypt((String) value);
-					map.put(((String) key).substring(ENCRYPTED_HEAD.length() + 1), decrypted);
-					set.add((String) key);
-				}
-			}
-		}
-
-		for (String s : set) {
-			props.remove(s);
-		}
-
-		for (Entry<String, String> entry : map.entrySet()) {
-			props.put(entry.getKey(), entry.getValue());
-		}
-	}
-
-	/**
-	 * 解密
-	 *
-	 * @author WANGWEI
-	 * @param props
-	 * @param secretKey
-	 */
-	public static void decrypt(Map<String, String> props, String secretKey) {
-		AES aes = new AES(secretKey + RANDOM);
-		Map<String, String> map = Maps.newHashMap();
-		Set<String> set = Sets.newHashSet();
-		for (Entry<String, String> entry : props.entrySet()) {
-			String key = entry.getKey();
-			String value = entry.getValue();
-			if (key.startsWith(ENCRYPTED_HEAD)) {
-				String decrypted = aes.decrypt((String) value);
-				map.put(key.substring(ENCRYPTED_HEAD.length() + 1), decrypted);
-				set.add(key);
-			}
-		}
-
-		for (String s : set) {
-			props.remove(s);
-		}
-
-		for (Entry<String, String> entry : map.entrySet()) {
-			props.put(entry.getKey(), entry.getValue());
-		}
-	}
-
-}

+ 27 - 0
examcloud-commons/src/main/java/cn/com/qmth/examcloud/commons/util/SqlUtil.java

@@ -0,0 +1,27 @@
+package cn.com.qmth.examcloud.commons.util;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class SqlUtil {
+
+    /**
+     * 转换为数据库模糊查询匹配模式
+     */
+    public static String toSqlSearchPattern(String column) {
+        if (StringUtils.isBlank(column)) {
+            return "%";
+        }
+        return "%" + column.trim() + "%";
+    }
+
+    /**
+     * 转换为数据库模糊查询匹配模式 (左边全匹配、右边模糊匹配)
+     */
+    public static String toSqlRightLike(String column) {
+        if (StringUtils.isBlank(column)) {
+            return "%";
+        }
+        return column.trim() + "%";
+    }
+
+}

+ 0 - 42
examcloud-commons/src/test/resources/log4j2.xml

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="WARN" monitorInterval="30">
-
-	<Properties>
-		<Property name="commonLevel" value="${sys:log.commonLevel}" />
-	</Properties>
-
-	<Appenders>
-		<!-- 控制台 日志 -->
-		<Console name="Console" target="SYSTEM_OUT">
-			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
-		</Console>
-		<!-- debug 日志 -->
-		<RollingFile name="DEBUG_APPENDER" fileName="./logs/debug/debug.log" filePattern="./logs/debug/debug-%d{yyyy.MM.dd.HH}-%i.log">
-			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
-			<Policies>
-				<TimeBasedTriggeringPolicy interval="1" />
-				<SizeBasedTriggeringPolicy size="100 MB" />
-			</Policies>
-			<DefaultRolloverStrategy max="10000">
-				<Delete basePath="./logs/debug" maxDepth="1">
-					<IfFileName glob="debug-*.log">
-						<IfAccumulatedFileSize exceeds="2 GB" />
-					</IfFileName>
-				</Delete>
-			</DefaultRolloverStrategy>
-		</RollingFile>
-	</Appenders>
-
-	<Loggers>
-		<Logger name="cn.tianji.heaven" level="DEBUG" additivity="false">
-			<AppenderRef ref="DEBUG_APPENDER" />
-			<AppenderRef ref="Console" />
-		</Logger>
-
-		<Root level="INFO">
-			<AppenderRef ref="Console" />
-			<AppenderRef ref="DEBUG_APPENDER" />
-		</Root>
-	</Loggers>
-
-</Configuration>

+ 0 - 19
examcloud-config-center-starter/.gitignore

@@ -1,19 +0,0 @@
-*.class
-
-# Proguard folder generated by ide
-.project
-.classpath
-.settings
-target/
-.idea/
-*.iml
-
-# Log Files
-*.log
-*.class
-
-
-# Package Files #
-*.jar
-*.war
-*.ear

+ 0 - 33
examcloud-config-center-starter/pom.xml

@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>examcloud-config-center-starter</artifactId>
-    <version>v4.0.2-RELEASE</version>
-    <packaging>jar</packaging>
-
-    <parent>
-        <groupId>cn.com.qmth.examcloud</groupId>
-        <artifactId>examcloud-parent</artifactId>
-        <version>v4.0.2-RELEASE</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>cn.com.qmth.examcloud</groupId>
-            <artifactId>examcloud-web</artifactId>
-            <version>${examcloud.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.cloud</groupId>
-                    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.jline</groupId>
-            <artifactId>jline</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 143
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/ConfigCenterStarter.java

@@ -1,143 +0,0 @@
-package cn.com.qmth.examcloud.config.center;
-
-import cn.com.qmth.examcloud.commons.helpers.BlackHolePrintStreamBuilder;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.config.center.core.BootstrapSecurityManager;
-import cn.com.qmth.examcloud.config.center.core.CommandInterpreter;
-import cn.com.qmth.examcloud.config.center.core.ConfigCenterBootstrap;
-import org.apache.commons.compress.utils.IOUtils;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.logging.log4j.ThreadContext;
-import org.jline.reader.LineReader;
-import org.jline.reader.LineReaderBuilder;
-import org.jline.terminal.Terminal;
-import org.jline.terminal.TerminalBuilder;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-
-import java.io.IOException;
-import java.io.PrintStream;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 配置中心启动类
- *
- * @author WANGWEI
- * @date 2019年3月29日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-@SpringBootApplication
-@Configuration
-@ComponentScan(basePackages = {"cn.com.qmth"})
-@EnableAutoConfiguration(exclude = {RedisAutoConfiguration.class, DataSourceAutoConfiguration.class})
-public class ConfigCenterStarter {
-
-    private static PrintStream stdOut = null;
-
-    private static PrintStream stdErrOut = null;
-
-    private static PrintStream blackHoleOut = null;
-
-    private static Long action = System.currentTimeMillis();
-
-    /**
-     * 启动方法
-     */
-    public static void run(String[] args) {
-        ExamCloudLog log = ExamCloudLogFactory.getLog(ConfigCenterStarter.class);
-        ThreadContext.put("TRACE_ID", Thread.currentThread().getName());
-        log.info("Starting...");
-
-        blackHoleOut = BlackHolePrintStreamBuilder.build();
-        stdOut = System.out;
-        stdErrOut = System.err;
-
-        Terminal terminal = null;
-        LineReader reader = null;
-        try {
-            System.setOut(blackHoleOut);
-            System.setErr(blackHoleOut);
-            terminal = TerminalBuilder.terminal();
-            reader = LineReaderBuilder.builder().terminal(terminal).build();
-            System.setOut(stdOut);
-            System.setErr(stdErrOut);
-        } catch (IOException e) {
-            System.setOut(stdOut);
-            System.setErr(stdErrOut);
-            IOUtils.closeQuietly(terminal);
-            e.printStackTrace();
-            System.exit(-1);
-        }
-
-        int errCount = 1;
-
-        String secretKey;
-        while (true) {
-            try {
-                secretKey = reader.readLine("Enter secret key>", (char) 0);
-                System.setOut(blackHoleOut);
-                System.setErr(blackHoleOut);
-                args = ArrayUtils.add(args, "--examcloud.startup.secretKey=" + secretKey);
-
-                ConfigCenterBootstrap.run(ConfigCenterStarter.class, args);
-                System.setOut(stdOut);
-                System.setErr(stdErrOut);
-                break;
-            } catch (Exception e) {
-                System.setOut(stdOut);
-                System.setErr(stdErrOut);
-                System.out.println(e.getMessage());
-
-                if (errCount > 5) {
-                    System.out.println("Too many wrong, exit!");
-                    System.exit(0);
-                }
-
-                System.out.println("Try again...");
-                errCount++;
-                continue;
-            }
-        }
-
-        System.out.println("Ok, running...");
-        String active = BootstrapSecurityManager.getInstance().getActive();
-        System.out.println("Env active = " + active);
-
-        new Thread(() -> {
-            while (true) {
-                if (System.currentTimeMillis() - action > CommandInterpreter.getInstance()
-                        .getSessionTimeout()) {
-                    System.exit(0);
-                }
-                try {
-                    TimeUnit.SECONDS.sleep(5);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-
-        }).start();
-
-        IOUtils.closeQuietly(blackHoleOut);
-        action = System.currentTimeMillis();
-
-        while (true) {
-            action = System.currentTimeMillis();
-            String cmd = reader.readLine("$>");
-            if (cmd.equals("exit") || cmd.equals("quit")) {
-                break;
-            }
-
-            CommandInterpreter.getInstance().interpret(cmd);
-        }
-
-        IOUtils.closeQuietly(terminal);
-        System.exit(0);
-    }
-
-}

+ 0 - 25
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/configuration/ExamCloudAppSelf.java

@@ -1,25 +0,0 @@
-package cn.com.qmth.examcloud.config.center.configuration;
-
-import org.springframework.stereotype.Component;
-
-import cn.com.qmth.examcloud.web.cloud.AppSelf;
-
-@Component
-public class ExamCloudAppSelf implements AppSelf {
-
-	@Override
-	public Long getAppId() {
-		return -1L;
-	}
-
-	@Override
-	public String getSecretKey() {
-		return null;
-	}
-
-	@Override
-	public String getAppCode() {
-		return "CC";
-	}
-
-}

+ 0 - 23
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/configuration/ExamCloudWebMvcConfigurer.java

@@ -1,23 +0,0 @@
-package cn.com.qmth.examcloud.config.center.configuration;
-
-import cn.com.qmth.examcloud.web.interceptor.FirstInterceptor;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-/**
- * WebMvcConfigurer
- *
- * @author WANGWEI
- * @date 2019年1月30日
- * @Copyright (c) 2018-2020 http://www.qmth.com.cn/ All Rights Reserved.
- */
-@Configuration
-public class ExamCloudWebMvcConfigurer implements WebMvcConfigurer {
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(new FirstInterceptor()).addPathPatterns("/**");
-    }
-
-}

+ 0 - 86
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/controller/ConfigCenterController.java

@@ -1,86 +0,0 @@
-package cn.com.qmth.examcloud.config.center.controller;
-
-import java.util.Map;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.JsonUtil;
-import cn.com.qmth.examcloud.config.center.core.BootstrapSecurityManager;
-import cn.com.qmth.examcloud.config.center.core.PropertiesLoader;
-import cn.com.qmth.examcloud.web.bootstrap.BootstrapSecurityUtil;
-import io.swagger.annotations.ApiOperation;
-
-@Controller
-@RequestMapping("configCenter")
-public class ConfigCenterController {
-
-	private static ExamCloudLog log = ExamCloudLogFactory.getLog("APP_STARTUP_LOGGER");
-
-	@ApiOperation(value = "消息通知")
-	@PostMapping("notice")
-	public ResponseEntity<String> notice(@RequestParam(required = true) String active,
-			@RequestParam(required = true) String appCode,
-			@RequestParam(required = true) String startupCode,
-			@RequestParam(required = true) String message) {
-
-		String mainInfo = "notice(). active=" + active + "; appCode=" + appCode + "; startupCode="
-				+ startupCode + "; message=" + message;
-		log.debug(mainInfo);
-
-		String configCenterActive = BootstrapSecurityManager.getInstance().getActive();
-		if (!configCenterActive.equals(active)) {
-			log.error("active is wrong");
-			return new ResponseEntity<>("active is wrong", HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-
-		return new ResponseEntity<String>("OK", HttpStatus.OK);
-	}
-
-	@ApiOperation(value = "启动请求")
-	@PostMapping("startup")
-	public ResponseEntity<String> startup(@RequestParam(required = true) String active,
-			@RequestParam(required = true) String appCode,
-			@RequestParam(required = true) String startupCode, HttpServletResponse response) {
-
-		String mainInfo = "startup(). active=" + active + "; appCode=" + appCode + "; startupCode="
-				+ startupCode;
-
-		log.debug(mainInfo);
-
-		String configCenterActive = BootstrapSecurityManager.getInstance().getActive();
-		if (!configCenterActive.equals(active)) {
-			log.error("active is wrong");
-			return new ResponseEntity<>("active is wrong", HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-
-		Map<String, String> map = null;
-		try {
-			map = PropertiesLoader.getProperties(appCode, active);
-		} catch (Exception e) {
-			log.error(e.getMessage());
-			return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
-		}
-
-		String ret = JsonUtil.toJson(map);
-		ret = BootstrapSecurityUtil.encrypt(ret, startupCode);
-
-		String appId = map.get("examcloud.bootstrap.app.appId");
-		String secretKey = map.get("examcloud.bootstrap.app.secretKey");
-
-		response.setHeader("App-Id", BootstrapSecurityUtil.encrypt(appId, startupCode));
-		response.setHeader("App-Code", appCode);
-		response.setHeader("Secret-Key", BootstrapSecurityUtil.encrypt(secretKey, startupCode));
-
-		return new ResponseEntity<>(ret, HttpStatus.OK);
-	}
-
-}

+ 0 - 61
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/BootstrapSecurityManager.java

@@ -1,61 +0,0 @@
-package cn.com.qmth.examcloud.config.center.core;
-
-/**
- * 启动安全管理器
- *
- * @author WANGWEI
- * @date 2019年3月25日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class BootstrapSecurityManager {
-
-	private static BootstrapSecurityManager mgr;
-
-	private static final Object LOCK = new Object();
-
-	private String secretKey;
-
-	private String active;
-
-	/**
-	 * 构造函数
-	 */
-	private BootstrapSecurityManager() {
-	}
-
-	/**
-	 * 获取单例
-	 *
-	 * @author WANGWEI
-	 * @return
-	 */
-	public static BootstrapSecurityManager getInstance() {
-		if (null == mgr) {
-			synchronized (LOCK) {
-				if (null == mgr) {
-					mgr = new BootstrapSecurityManager();
-				}
-				return mgr;
-			}
-		} else {
-			return mgr;
-		}
-	}
-
-	public String getSecretKey() {
-		return secretKey;
-	}
-
-	public void setSecretKey(String secretKey) {
-		this.secretKey = secretKey;
-	}
-
-	public String getActive() {
-		return active;
-	}
-
-	public void setActive(String active) {
-		this.active = active;
-	}
-
-}

+ 0 - 113
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/CommandInterpreter.java

@@ -1,113 +0,0 @@
-package cn.com.qmth.examcloud.config.center.core;
-
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.MapUtil;
-import cn.com.qmth.examcloud.commons.util.RegExpUtil;
-import cn.com.qmth.examcloud.commons.util.StringUtil;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * 命令解释器
- *
- * @author WANGWEI
- * @date 2018年12月5日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class CommandInterpreter {
-
-    private static ExamCloudLog log = ExamCloudLogFactory.getLog("COMMAND_LOGGER");
-
-    private static CommandInterpreter interpreter;
-
-    private static final Object LOCK = new Object();
-
-    private static long sessionTimeout = 1000 * 60 * 10;
-
-    /**
-     * 构造函数
-     */
-    private CommandInterpreter() {
-
-    }
-
-    /**
-     * 获取单例
-     */
-    public static CommandInterpreter getInstance() {
-        if (null == interpreter) {
-            synchronized (LOCK) {
-                if (null == interpreter) {
-                    interpreter = new CommandInterpreter();
-                }
-                return interpreter;
-            }
-        } else {
-            return interpreter;
-        }
-    }
-
-    /**
-     * 解释
-     */
-    public void interpret(String cmd) {
-        try {
-            process(cmd);
-        } catch (Exception e) {
-            log.error(e.getMessage());
-        }
-    }
-
-    /**
-     * 处理
-     */
-    public void process(String cmd) {
-        cmd = cmd.trim();
-        if (StringUtils.isBlank(cmd)) {
-            return;
-        }
-
-        if (cmd.matches("\\s*session\\s+[1-9]\\d*")) {
-            // 设置进程退出命令:session 分钟值
-            String timeoutStr = RegExpUtil.find(cmd, "\\s*session\\s+([1-9]\\d*)", 1);
-            timeoutStr = timeoutStr.length() > 4 ? "999" : timeoutStr;
-
-            // 默认最大值
-            long timeout = StringUtil.toLong(timeoutStr);
-            timeout = timeout > 360 ? 360 : timeout;
-
-            sessionTimeout = 1000 * 60 * timeout;
-            log.info("sessionTimeout = " + timeout + " minutes");
-        } else if (cmd.matches("\\s*load\\s+([^\\s]+)\\s*")) {
-            // 加载配置:load <appSimpleName>
-            String appSimpleName = RegExpUtil.find(cmd, "\\s*load\\s+([^\\s]+)\\s*", 1);
-            String active = BootstrapSecurityManager.getInstance().getActive();
-            Map<String, String> properties = PropertiesLoader.getProperties(appSimpleName, active);
-
-            properties = MapUtil.sortMapByKey(properties, true);
-            StringBuilder props = new StringBuilder()
-                    .append(appSimpleName)
-                    .append(" ")
-                    .append(active)
-                    .append(" Properties: ");
-
-            for (Entry<String, String> entry : properties.entrySet()) {
-                props.append("\n  ").append(entry.getKey()).append("=").append(entry.getValue());
-            }
-
-            log.info(props.toString());
-        } else {
-            // 错误命令
-            log.error("error command !");
-        }
-
-    }
-
-    public long getSessionTimeout() {
-        return sessionTimeout;
-    }
-
-}

+ 0 - 110
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/ConfigCenterBootstrap.java

@@ -1,110 +0,0 @@
-package cn.com.qmth.examcloud.config.center.core;
-
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
-import cn.com.qmth.examcloud.web.bootstrap.BootstrapSecurityUtil;
-import com.google.common.collect.Sets;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.boot.SpringApplication;
-import org.springframework.context.ConfigurableApplicationContext;
-
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * 配置中心启动器
- *
- * @author WANGWEI
- * @date 2019年3月25日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class ConfigCenterBootstrap {
-
-    private static ExamCloudLog log = ExamCloudLogFactory.getLog(ConfigCenterBootstrap.class);
-
-    /**
-     * 启动配置中心
-     */
-    public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {
-
-        Properties props = new Properties();
-        PropertiesUtil.loadFromResource("application.properties", props);
-
-        String active = null;
-        String secretKey = null;
-        if (null != args) {
-            for (String s : args) {
-                s = s.trim();
-                if (s.startsWith("--examcloud.startup.secretKey=")) {
-                    secretKey = s.substring(s.indexOf("=") + 1);
-                }
-                if (s.startsWith("--spring.profiles.active=")) {
-                    active = s.substring(s.indexOf("=") + 1);
-                }
-            }
-        }
-
-        if (null == active) {
-            String value = props.getProperty("spring.profiles.active");
-            if (StringUtils.isNotBlank(value)) {
-                active = value.trim();
-            }
-        }
-        log.info("active=" + active);
-
-        if (StringUtils.isBlank(active)) {
-            log.error("[spring.profiles.active] value must not empty!");
-            System.exit(-1);
-        }
-
-        if (StringUtils.isBlank(secretKey)) {
-            throw new RuntimeException("Secret key must not empty!");
-        }
-
-        PropertiesUtil.loadFromResource("application-" + active + ".properties", props);
-        props.setProperty("spring.profiles.active", active);
-
-        String test = props.getProperty("$$.examcloud.test");
-        if (StringUtils.isBlank(test)) {
-            log.error("[$$.examcloud.test] value must not empty!");
-            System.exit(-1);
-        }
-
-        try {
-            BootstrapSecurityUtil.decrypt(test.trim(), secretKey);
-        } catch (Exception e) {
-            throw new RuntimeException("Secret key is wrong!");
-        }
-
-        try {
-            BootstrapSecurityUtil.decrypt(props, secretKey);
-        } catch (Exception e) {
-            log.error("Secret key decrypt fail!");
-            System.exit(-1);
-        }
-
-        Set<String> argSet = Sets.newLinkedHashSet();
-        for (Entry<Object, Object> p : props.entrySet()) {
-            String arg = "--" + p.getKey() + "=" + p.getValue();
-            argSet.add(arg);
-        }
-
-        String[] newArgs = argSet.toArray(new String[argSet.size()]);
-
-        BootstrapSecurityManager.getInstance().setSecretKey(secretKey);
-        BootstrapSecurityManager.getInstance().setActive(active);
-
-        ConfigurableApplicationContext context = null;
-        try {
-            context = SpringApplication.run(primarySource, newArgs);
-        } catch (Exception e) {
-            log.error("Project startup fail!", e);
-            System.exit(-1);
-        }
-
-        return context;
-    }
-
-}

+ 0 - 85
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/core/PropertiesLoader.java

@@ -1,85 +0,0 @@
-package cn.com.qmth.examcloud.config.center.core;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-
-import cn.com.qmth.examcloud.commons.util.PropertiesUtil;
-import cn.com.qmth.examcloud.web.bootstrap.BootstrapSecurityUtil;
-
-/**
- * 配置加载器
- *
- * @author WANGWEI
- * @date 2019年5月15日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class PropertiesLoader {
-
-	/**
-	 * 保存启动配置属性
-	 *
-	 * @author WANGWEI
-	 * @param appCode
-	 * @param active
-	 */
-	public static Map<String, String> getProperties(String appCode, String active) {
-
-		Properties props = new Properties();
-		String resource1 = active + "/application.properties";
-		String resource2 = active + "/application-" + appCode + ".properties";
-
-		try {
-			PropertiesUtil.loadFromResource(resource1, props);
-		} catch (Exception e) {
-			String errorMessage = "fail to load properties file [" + resource1 + "]";
-			throw new RuntimeException(errorMessage);
-		}
-
-		BootstrapSecurityUtil.decrypt(props, BootstrapSecurityManager.getInstance().getSecretKey());
-
-		try {
-			PropertiesUtil.loadFromResource(resource2, props);
-		} catch (Exception e) {
-			String errorMessage = "fail to load properties file [" + resource2 + "]";
-			throw new RuntimeException(errorMessage);
-		}
-
-		BootstrapSecurityUtil.decrypt(props, BootstrapSecurityManager.getInstance().getSecretKey());
-
-		Map<String, String> map = Maps.newHashMap();
-		for (Entry<Object, Object> entry : props.entrySet()) {
-			map.put(String.valueOf(entry.getKey()), String.valueOf(entry.getValue()));
-		}
-
-		filter(map);
-		return map;
-	}
-
-	private static void filter(Map<String, String> properties) {
-		Set<String> removedKeySet = Sets.newHashSet();
-
-		String datasourceType = properties.get("spring.datasource.type");
-		if (StringUtils.isNotBlank(datasourceType)) {
-			if (datasourceType.equalsIgnoreCase("null")) {
-				for (String key : properties.keySet()) {
-					if (key.startsWith("spring.datasource")) {
-						removedKeySet.add(key);
-					}
-				}
-			}
-		}
-
-		for (String key : removedKeySet) {
-			properties.remove(key);
-		}
-
-	}
-
-}

+ 0 - 49
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Rpc.java

@@ -1,49 +0,0 @@
-package cn.com.qmth.examcloud.config.center.test;
-
-import java.io.IOException;
-import java.util.Map;
-
-import com.google.common.collect.Maps;
-
-import cn.com.qmth.examcloud.commons.util.ByteUtil;
-import cn.com.qmth.examcloud.commons.util.HttpMethod;
-import cn.com.qmth.examcloud.commons.util.OKHttpUtil;
-import cn.com.qmth.examcloud.commons.util.SHA256;
-import cn.com.qmth.examcloud.commons.util.StringUtil;
-import cn.com.qmth.examcloud.commons.util.ThreadLocalUtil;
-import okhttp3.Response;
-
-/**
- * RPC
- *
- * @author WANGWEI
- * @date 2019年6月13日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class Rpc {
-
-	public static void main(String[] args) throws IOException {
-
-		Map<String, String> headers = Maps.newHashMap();
-		long startTime = System.currentTimeMillis();
-		String appId = "1";
-		String appCode = "B";
-		String secretKey = "123456";
-
-		headers.put("Trace-Id", ThreadLocalUtil.getTraceId());
-		headers.put("timestamp", String.valueOf(startTime));
-		headers.put("App-Id", appId);
-		headers.put("App-Code", appCode);
-
-		String joinStr = StringUtil.join(appId, appCode, startTime, secretKey);
-		byte[] bytes = SHA256.encode(joinStr);
-		String accessToken = ByteUtil.toHexAscii(bytes);
-		headers.put("Access-Token", accessToken);
-
-		String url = "http://192.168.10.39:8001/cache/refresh";
-		String reqBody = "{\"className\":\"cn.com.qmth.examcloud.core.examwork.service.cache.ExamOrgPropertyCache\",\"keys\":[\"a\",\"3\",\"WARN_THRESHOLD\"],\"typeArray\":[\"LONG\",\"LONG\",\"STRING\"]}";
-		Response response = OKHttpUtil.call(HttpMethod.POST, url, headers, reqBody);
-
-		System.out.println(response.body().string());
-	}
-}

+ 0 - 13
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Test.java

@@ -1,13 +0,0 @@
-package cn.com.qmth.examcloud.config.center.test;
-
-import cn.com.qmth.examcloud.web.bootstrap.BootstrapSecurityUtil;
-
-public class Test {
-	public static void main(String[] args) {
-		String s = "";
-		String secretKey = "";
-		System.out.println(BootstrapSecurityUtil.encrypt(s, secretKey));
-		// System.out.println(BootstrapSecurityUtil.decrypt(s, secretKey));
-	}
-
-}

+ 0 - 14
examcloud-config-center-starter/src/main/java/cn/com/qmth/examcloud/config/center/test/Test2.java

@@ -1,14 +0,0 @@
-package cn.com.qmth.examcloud.config.center.test;
-
-import cn.com.qmth.examcloud.commons.util.ByteUtil;
-import cn.com.qmth.examcloud.commons.util.SHA256;
-
-public class Test2 {
-	public static void main(String[] args) {
-		String str1 = "1";
-		String str2 = "123456";
-		String encoded = ByteUtil.toHexAscii(SHA256.encode(str1 + str2));
-		System.out.println(encoded);
-	}
-
-}

+ 0 - 51
examcloud-config-center-starter/src/main/resources/log4j2.xml

@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Configuration status="WARN" monitorInterval="30">
-
-    <Appenders>
-        <Console name="CONSOLE" target="SYSTEM_OUT">
-            <PatternLayout
-                    pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} | %level | %X{TRACE_ID} | %clr{%c{1.1}:%L}{cyan} | %m%n $>"
-                    charset="UTF-8"/>
-        </Console>
-
-        <Console name="APP_STARTUP_CONSOLE" target="SYSTEM_OUT">
-            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} | %level | %X{TRACE_ID} | %m%n $>"
-                           charset="UTF-8"/>
-        </Console>
-
-        <Console name="COMMAND_CONSOLE" target="SYSTEM_OUT">
-            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} | %level | CMD | %m%n"/>
-        </Console>
-    </Appenders>
-
-    <Loggers>
-        <logger name="springfox.documentation" level="ERROR"/>
-        <logger name="org.springframework" level="ERROR"/>
-        <logger name="org.hibernate" level="ERROR"/>
-        <logger name="org.apache" level="ERROR"/>
-        <logger name="org.quartz" level="ERROR"/>
-        <logger name="org.docx4j" level="ERROR"/>
-        <logger name="cn.afterturn" level="ERROR"/>
-        <logger name="com.netflix" level="ERROR"/>
-        <logger name="com.aliyun" level="ERROR"/>
-        <logger name="io.lettuce" level="ERROR"/>
-        <logger name="io.netty" level="ERROR"/>
-
-        <Logger name="APP_STARTUP_LOGGER" level="DEBUG" additivity="false">
-            <AppenderRef ref="APP_STARTUP_CONSOLE"/>
-        </Logger>
-
-        <Logger name="COMMAND_LOGGER" level="DEBUG" additivity="false">
-            <AppenderRef ref="COMMAND_CONSOLE"/>
-        </Logger>
-
-        <Logger name="INTERFACE_LOGGER" level="ERROR" additivity="false">
-            <AppenderRef ref="CONSOLE"/>
-        </Logger>
-
-        <Root level="ERROR">
-            <AppenderRef ref="CONSOLE"/>
-        </Root>
-    </Loggers>
-
-</Configuration>

+ 0 - 19
examcloud-java-sdk/.gitignore

@@ -1,19 +0,0 @@
-*.class
-
-# Proguard folder generated by ide
-.project
-.classpath
-.settings
-target/
-.idea/
-*.iml
-
-# Log Files
-*.log
-*.class
-
-
-# Package Files #
-*.jar
-*.war
-*.ear

+ 0 - 87
examcloud-java-sdk/pom.xml

@@ -1,87 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>cn.com.qmth.sdk</groupId>
-    <artifactId>examcloud-java-sdk</artifactId>
-    <version>v4.0.2-RELEASE</version>
-    <packaging>jar</packaging>
-
-    <parent>
-        <groupId>cn.com.qmth.examcloud</groupId>
-        <artifactId>examcloud-parent</artifactId>
-        <version>v4.0.2-RELEASE</version>
-    </parent>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <java.version>1.8</java.version>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-log4j2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.squareup.okhttp3</groupId>
-            <artifactId>okhttp</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpmime</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-collections</groupId>
-            <artifactId>commons-collections</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <skip>true</skip>
-                    <skipTests>true</skipTests>
-                </configuration>
-            </plugin>
-            <!--<plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>3.1.2</version>
-                <configuration>
-                    <outputDirectory>D:\home\lib</outputDirectory>
-                    <excludeTransitive>false</excludeTransitive>
-                    <stripVersion>false</stripVersion>
-                </configuration>
-            </plugin>-->
-        </plugins>
-    </build>
-
-</project>

+ 0 - 187
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudent4BatchBean.java

@@ -1,187 +0,0 @@
-package cn.com.qmth.sdk.bean;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月14日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterExamStudent4BatchBean implements JsonSerializable {
-
-	private static final long serialVersionUID = 4259890948495983284L;
-
-	private String studentName;
-
-	private String studentCode;
-
-	private String identityNumber;
-
-	private String courseName;
-
-	private String courseCode;
-
-	private String courseLevel;
-
-	private String paperType;
-
-	private String infoCollector;
-
-	private String specialtyName;
-
-	private String examSite;
-
-	private String grade;
-
-	private String remark;
-
-	private String ext1;
-
-	private String ext2;
-
-	private String ext3;
-
-	private String ext4;
-
-	private String ext5;
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseLevel() {
-		return courseLevel;
-	}
-
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
-
-	public String getPaperType() {
-		return paperType;
-	}
-
-	public void setPaperType(String paperType) {
-		this.paperType = paperType;
-	}
-
-	public String getInfoCollector() {
-		return infoCollector;
-	}
-
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
-
-	public String getSpecialtyName() {
-		return specialtyName;
-	}
-
-	public void setSpecialtyName(String specialtyName) {
-		this.specialtyName = specialtyName;
-	}
-
-	public String getExamSite() {
-		return examSite;
-	}
-
-	public void setExamSite(String examSite) {
-		this.examSite = examSite;
-	}
-
-	public String getGrade() {
-		return grade;
-	}
-
-	public void setGrade(String grade) {
-		this.grade = grade;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public String getExt1() {
-		return ext1;
-	}
-
-	public void setExt1(String ext1) {
-		this.ext1 = ext1;
-	}
-
-	public String getExt2() {
-		return ext2;
-	}
-
-	public void setExt2(String ext2) {
-		this.ext2 = ext2;
-	}
-
-	public String getExt3() {
-		return ext3;
-	}
-
-	public void setExt3(String ext3) {
-		this.ext3 = ext3;
-	}
-
-	public String getExt4() {
-		return ext4;
-	}
-
-	public void setExt4(String ext4) {
-		this.ext4 = ext4;
-	}
-
-	public String getExt5() {
-		return ext5;
-	}
-
-	public void setExt5(String ext5) {
-		this.ext5 = ext5;
-	}
-
-}

+ 0 - 145
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudentBean.java

@@ -1,145 +0,0 @@
-package cn.com.qmth.sdk.bean;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月14日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterExamStudentBean implements JsonSerializable {
-	private static final long serialVersionUID = 2079003980099252759L;
-
-	/**
-	 * 顶级机构ID
-	 */
-	private Long rootOrgId;
-
-	/**
-	 * 考试ID
-	 */
-	private Long examId;
-
-	/**
-	 * 考试名称
-	 */
-	private String examName;
-
-	/**
-	 * 学生姓名
-	 */
-	private String studentName;
-
-	/**
-	 * 学生学号
-	 */
-	private String studentCode;
-
-	/**
-	 * 学生身份证号
-	 */
-	private String identityNumber;
-
-	/**
-	 * 考试课程名称
-	 */
-	private String courseName;
-
-	/**
-	 * 考试课程code
-	 */
-	private String courseCode;
-
-	/**
-	 * 考试课程level
-	 */
-	private String courseLevel;
-
-	/**
-	 * 试卷类型
-	 */
-	private String paperType;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamName() {
-		return examName;
-	}
-
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseLevel() {
-		return courseLevel;
-	}
-
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
-
-	public String getPaperType() {
-		return paperType;
-	}
-
-	public void setPaperType(String paperType) {
-		this.paperType = paperType;
-	}
-
-}

+ 0 - 149
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterExamStudentBean4Reset.java

@@ -1,149 +0,0 @@
-package cn.com.qmth.sdk.bean;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-public class OuterExamStudentBean4Reset implements JsonSerializable {
-
-	private static final long serialVersionUID = 2079003980099252759L;
-
-	private String courseName;
-
-	private String courseCode;
-
-	private String courseLevel;
-
-	private String paperType;
-
-	private String infoCollector;
-
-	private String examSite;
-
-	private String specialtyName;
-
-	private String grade;
-
-	private String remark;
-
-	private String ext1;
-
-	private String ext2;
-
-	private String ext3;
-
-	private String ext4;
-
-	private String ext5;
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseLevel() {
-		return courseLevel;
-	}
-
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
-
-	public String getPaperType() {
-		return paperType;
-	}
-
-	public void setPaperType(String paperType) {
-		this.paperType = paperType;
-	}
-
-	public String getInfoCollector() {
-		return infoCollector;
-	}
-
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
-
-	public String getExamSite() {
-		return examSite;
-	}
-
-	public void setExamSite(String examSite) {
-		this.examSite = examSite;
-	}
-
-	public String getSpecialtyName() {
-		return specialtyName;
-	}
-
-	public void setSpecialtyName(String specialtyName) {
-		this.specialtyName = specialtyName;
-	}
-
-	public String getGrade() {
-		return grade;
-	}
-
-	public void setGrade(String grade) {
-		this.grade = grade;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public String getExt1() {
-		return ext1;
-	}
-
-	public void setExt1(String ext1) {
-		this.ext1 = ext1;
-	}
-
-	public String getExt2() {
-		return ext2;
-	}
-
-	public void setExt2(String ext2) {
-		this.ext2 = ext2;
-	}
-
-	public String getExt3() {
-		return ext3;
-	}
-
-	public void setExt3(String ext3) {
-		this.ext3 = ext3;
-	}
-
-	public String getExt4() {
-		return ext4;
-	}
-
-	public void setExt4(String ext4) {
-		this.ext4 = ext4;
-	}
-
-	public String getExt5() {
-		return ext5;
-	}
-
-	public void setExt5(String ext5) {
-		this.ext5 = ext5;
-	}
-
-}

+ 0 - 66
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterGetCapturePhotoBean.java

@@ -1,66 +0,0 @@
-package cn.com.qmth.sdk.bean;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 下午1:50:02
- * @company QMTH
- * @description OuterGetCapturePhotoBean.java
- */
-public class OuterGetCapturePhotoBean implements JsonSerializable {
-
-	private static final long serialVersionUID = 2867275034372864464L;
-
-	private Long examRecordDataId;
-
-	private String fileUrl;
-
-	private Boolean isPass;
-
-	private Boolean isStranger;
-
-	private Boolean isLivenessPass;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public String getFileUrl() {
-		return fileUrl;
-	}
-
-	public void setFileUrl(String fileUrl) {
-		this.fileUrl = fileUrl;
-	}
-
-	public Boolean getIsPass() {
-		return isPass;
-	}
-
-	public void setIsPass(Boolean isPass) {
-		this.isPass = isPass;
-	}
-
-	public Boolean getIsStranger() {
-		return isStranger;
-	}
-
-	public void setIsStranger(Boolean isStranger) {
-		this.isStranger = isStranger;
-	}
-
-	public Boolean getIsLivenessPass() {
-		return isLivenessPass;
-	}
-
-	public void setIsLivenessPass(Boolean isLivenessPass) {
-		this.isLivenessPass = isLivenessPass;
-	}
-
-}

+ 0 - 163
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/bean/OuterStudent4BatchBean.java

@@ -1,163 +0,0 @@
-package cn.com.qmth.sdk.bean;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-/**
- * 
- * @author  	chenken
- * @date    	2019年1月23日 上午10:35:36
- * @company 	QMTH
- * @description OuterStudent4BatchBean.java
- */
-public class OuterStudent4BatchBean implements JsonSerializable{
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3676901946585887427L;
-
-	/**
-	 * 学生姓名
-	 */
-	private String name;
-
-	/**
-	 * 顶级机构ID
-	 */
-	private Long rootOrgId;
-
-	/**
-	 * 机构ID
-	 */
-	private Long orgId;
-
-	/**
-	 * 学习中心编码
-	 */
-	private String orgCode;
-
-	/**
-	 * 学习中心名称
-	 */
-	private String orgName;
-
-	/**
-	 * 学生code
-	 */
-	private String studentCode;
-
-	/**
-	 * 身份证号码
-	 */
-	private String identityNumber;
-
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-	/**
-	 * 图片地址
-	 */
-	private String photoUrl;
-
-	/**
-	 * 手机号码
-	 */
-	private String phoneNumber;
-
-	/**
-	 * 操作者
-	 */
-	private String operator;
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-	public String getOrgCode() {
-		return orgCode;
-	}
-
-	public void setOrgCode(String orgCode) {
-		this.orgCode = orgCode;
-	}
-
-	public String getOrgName() {
-		return orgName;
-	}
-
-	public void setOrgName(String orgName) {
-		this.orgName = orgName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public String getPhotoUrl() {
-		return photoUrl;
-	}
-
-	public void setPhotoUrl(String photoUrl) {
-		this.photoUrl = photoUrl;
-	}
-
-	public String getPhoneNumber() {
-		return phoneNumber;
-	}
-
-	public void setPhoneNumber(String phoneNumber) {
-		this.phoneNumber = phoneNumber;
-	}
-
-	public String getOperator() {
-		return operator;
-	}
-
-	public void setOperator(String operator) {
-		this.operator = operator;
-	}
-
-	
-}

+ 0 - 62
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/enums/AccountType.java

@@ -1,62 +0,0 @@
-package cn.com.qmth.sdk.enums;
-
-/**
- * 账户类型
- *
- * @author WANGWEI
- * @date 2018年5月25日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public enum AccountType {
-
-	/**
-	 * 学生学号
-	 */
-	STUDENT_CODE("SC", "学生学号"),
-
-	/**
-	 * 学生身份证号
-	 */
-	STUDENT_IDENTITY_NUMBER("SIN", "学生身份证号"),
-
-	/**
-	 * 学生手机号登录
-	 */
-	STUDENT_PHONE("SP", "学生手机号"),
-
-	/**
-	 * 常规登录名(非学生登录)
-	 */
-	COMMON_LOGIN_NAME("C", "常规登录名");
-
-	// ===========================================================================
-
-	/**
-	 * 码
-	 */
-	private String code;
-
-	/**
-	 * 描述
-	 */
-	private String desc;
-
-	/**
-	 * 构造函数
-	 *
-	 * @param desc
-	 */
-	private AccountType(String code, String desc) {
-		this.code = code;
-		this.desc = desc;
-	}
-
-	public String getDesc() {
-		return desc;
-	}
-
-	public String getCode() {
-		return code;
-	}
-
-}

+ 0 - 80
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exception/StatusException.java

@@ -1,80 +0,0 @@
-package cn.com.qmth.sdk.exception;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import cn.com.qmth.sdk.util.JsonUtil;
-
-/**
- * 状态异常类<br>
- *
- * @author WANG
- */
-public class StatusException extends RuntimeException {
-	private static final long serialVersionUID = 5003047488500388819L;
-
-	/**
-	 * 追踪ID
-	 */
-	private String traceId;
-
-	/**
-	 * 状态码
-	 */
-	private String code;
-
-	/**
-	 * 状态描述
-	 */
-	private String desc;
-
-	/**
-	 * 构造函数
-	 */
-	public StatusException(String code, String desc) {
-		super("[code: " + code + "; desc: " + desc + "]");
-		this.code = code;
-		this.desc = desc;
-	}
-
-	/**
-	 * 构造函数
-	 */
-	public StatusException(String code, String desc, Throwable cause) {
-		super("[code: " + code + "; desc: " + desc + "]", cause);
-		this.code = code;
-		this.desc = desc;
-	}
-
-	public String getCode() {
-		return code;
-	}
-
-	public String getDesc() {
-		return desc;
-	}
-
-	public String getTraceId() {
-		return traceId;
-	}
-
-	public void setTraceId(String traceId) {
-		this.traceId = traceId;
-	}
-
-	/**
-	 * @return
-	 */
-	public String toJson() {
-		Map<String, Object> map = new HashMap<String, Object>();
-		map.put("code", code);
-		map.put("desc", desc);
-		return JsonUtil.toJson(map);
-	}
-
-	@Override
-	public String toString() {
-		return toJson();
-	}
-
-}

+ 0 - 29
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/EnterpriseRequest.java

@@ -1,29 +0,0 @@
-package cn.com.qmth.sdk.exchange;
-
-/**
- * 请求体基类
- * 
- * @author WANGWEI
- *
- */
-public abstract class EnterpriseRequest extends ExchangeBean {
-
-	private static final long serialVersionUID = 6465330136225230063L;
-
-	/**
-	 * 数据执行状态
-	 */
-	@Deprecated
-	private String des;
-
-	@Deprecated
-	public String getDes() {
-		return des;
-	}
-
-	@Deprecated
-	public void setDes(String des) {
-		this.des = des;
-	}
-
-}

+ 0 - 42
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/EnterpriseResponse.java

@@ -1,42 +0,0 @@
-package cn.com.qmth.sdk.exchange;
-
-/**
- * 响应体基类
- * 
- * @author WANGWEI
- *
- */
-public abstract class EnterpriseResponse extends ExchangeBean {
-
-	private static final long serialVersionUID = 1755304211766414171L;
-
-	/**
-	 * 耗时(毫秒)
-	 */
-	private Long cost;
-
-	/**
-	 * 数据执行状态
-	 */
-	@Deprecated
-	private String des;
-
-	public Long getCost() {
-		return cost;
-	}
-
-	public void setCost(Long cost) {
-		this.cost = cost;
-	}
-
-	@Deprecated
-	public String getDes() {
-		return des;
-	}
-
-	@Deprecated
-	public void setDes(String des) {
-		this.des = des;
-	}
-
-}

+ 0 - 13
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/ExchangeBean.java

@@ -1,13 +0,0 @@
-package cn.com.qmth.sdk.exchange;
-
-/**
- * bean 基类
- * 
- * @author WANGWEI
- *
- */
-public abstract class ExchangeBean implements JsonSerializable {
-
-	private static final long serialVersionUID = 3913250969569367810L;
-
-}

+ 0 - 16
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/exchange/JsonSerializable.java

@@ -1,16 +0,0 @@
-package cn.com.qmth.sdk.exchange;
-
-import java.io.Serializable;
-
-/**
- * 可序列化为JSON<br>
- * <p>
- * 严重警告: 此接口为标识接口,禁止添加属性和方法. by wangwei
- * </p>
- * 
- * @author WANGWEI
- *
- */
-public interface JsonSerializable extends Serializable {
-
-}

+ 0 - 58
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/helpers/FormFilePart.java

@@ -1,58 +0,0 @@
-package cn.com.qmth.sdk.helpers;
-
-import java.io.File;
-
-/**
- * 表单文件参数
- *
- * @author WANGWEI
- * @date 2019年5月9日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class FormFilePart {
-
-	private String paramName;
-
-	private String filename;
-
-	private File file;
-
-	/**
-	 * 构造函数
-	 *
-	 * @param paramName
-	 * @param filename
-	 * @param file
-	 */
-	public FormFilePart(String paramName, String filename, File file) {
-		super();
-		this.paramName = paramName;
-		this.filename = filename;
-		this.file = file;
-	}
-
-	public String getParamName() {
-		return paramName;
-	}
-
-	public void setParamName(String paramName) {
-		this.paramName = paramName;
-	}
-
-	public String getFilename() {
-		return filename;
-	}
-
-	public void setFilename(String filename) {
-		this.filename = filename;
-	}
-
-	public File getFile() {
-		return file;
-	}
-
-	public void setFile(File file) {
-		this.file = file;
-	}
-
-}

+ 0 - 59
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterBatchSaveExamStudentReq.java

@@ -1,59 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import java.util.List;
-
-import cn.com.qmth.sdk.bean.OuterExamStudent4BatchBean;
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2019年1月8日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterBatchSaveExamStudentReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 9086274932441194883L;
-
-	private Long rootOrgId;
-
-	private Long examId;
-
-	private String examName;
-
-	List<OuterExamStudent4BatchBean> examStudentList;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamName() {
-		return examName;
-	}
-
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-
-	public List<OuterExamStudent4BatchBean> getExamStudentList() {
-		return examStudentList;
-	}
-
-	public void setExamStudentList(List<OuterExamStudent4BatchBean> examStudentList) {
-		this.examStudentList = examStudentList;
-	}
-
-}

+ 0 - 35
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterBatchSaveStudentReq.java

@@ -1,35 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import java.util.List;
-
-import cn.com.qmth.sdk.bean.OuterStudent4BatchBean;
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterBatchSaveStudentReq extends EnterpriseRequest{
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 6002831507960608647L;
-
-	private Long rootOrgId;
-	
-	private List<OuterStudent4BatchBean> studentList;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public List<OuterStudent4BatchBean> getStudentList() {
-		return studentList;
-	}
-
-	public void setStudentList(List<OuterStudent4BatchBean> studentList) {
-		this.studentList = studentList;
-	}
-
-}

+ 0 - 36
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterDeleteScoreQueueTopReq.java

@@ -1,36 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 下午3:12:02
- * @company QMTH
- * @description 删除队列请求
- */
-public class OuterDeleteScoreQueueTopReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 6340573640799250911L;
-
-	private Long rootOrgId;
-	
-	private Long queueId;
-
-	public Long getQueueId() {
-		return queueId;
-	}
-
-	public void setQueueId(Long queueId) {
-		this.queueId = queueId;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-}

+ 0 - 29
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetCourseListReq.java

@@ -1,29 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterGetCourseListReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -8374755306658040184L;
-
-	private Long rootOrgId;
-
-	private String courseGroupName;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public String getCourseGroupName() {
-		return courseGroupName;
-	}
-
-	public void setCourseGroupName(String courseGroupName) {
-		this.courseGroupName = courseGroupName;
-	}
-
-}

+ 0 - 29
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetExamRecordAuditInfoReq.java

@@ -1,29 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterGetExamRecordAuditInfoReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 492449120567501650L;
-
-	private Long rootOrgId;
-	
-	private Long examRecordDataId;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-}

+ 0 - 56
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetExamReq.java

@@ -1,56 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月16日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterGetExamReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -2827676106721670081L;
-
-	private Long id;
-
-	private Long rootOrgId;
-
-	private String name;
-
-	private Long orgId;
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-}

+ 0 - 24
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetQuestionAnswerReq.java

@@ -1,24 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * @Description 获取试题答案请求类
- * @Author lideyin
- * @Date 2020/3/30 15:25
- * @Version 1.0
- */
-public class OuterGetQuestionAnswerReq extends EnterpriseRequest {
-
-    private static final long serialVersionUID = 8303860788475413215L;
-
-    private String questionId;
-
-    public String getQuestionId() {
-        return questionId;
-    }
-
-    public void setQuestionId(String questionId) {
-        this.questionId = questionId;
-    }
-}

+ 0 - 36
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetScoreDataReq.java

@@ -1,36 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 上午11:22:27
- * @company QMTH
- * @description OuterGetScoreInfoReq.java
- */
-public class OuterGetScoreDataReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -7514465576897689892L;
-
-	private Long rootOrgId;
-	
-	private Long examRecordDataId;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-}

+ 0 - 19
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetScoreQueueTopReq.java

@@ -1,19 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterGetScoreQueueTopReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -8881081085095233235L;
-
-	private Long rootOrgId;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-}

+ 0 - 34
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectivePaperReq.java

@@ -1,34 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * @Description 获取主观题试卷请求类
- * @Author lideyin
- * @Date 2020/6/23 15:25
- * @Version 1.0
- */
-public class OuterGetSubjectivePaperReq extends EnterpriseRequest {
-
-    private static final long serialVersionUID = 8892205616387684966L;
-
-    private Long examId;
-
-    private String subjectCode;
-
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getSubjectCode() {
-        return subjectCode;
-    }
-
-    public void setSubjectCode(String subjectCode) {
-        this.subjectCode = subjectCode;
-    }
-}

+ 0 - 24
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectivePaperStructReq.java

@@ -1,24 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * @Description 获取主观题试卷结构请求类
- * @Author lideyin
- * @Date 2020/3/30 15:24
- * @Version 1.0
- */
-public class OuterGetSubjectivePaperStructReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 8892205616387684966L;
-
-	private Long examId;
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-}

+ 0 - 54
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterGetSubjectiveQuestionReq.java

@@ -1,54 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * @Description 获取主观题考试作答请求类
- * @Author lideyin
- * @Date 2020/3/30 15:25
- * @Version 1.0
- */
-public class OuterGetSubjectiveQuestionReq extends EnterpriseRequest {
-
-    private static final long serialVersionUID = 8303860788475413215L;
-
-    private Long examId;
-
-    private String subjectCode;
-
-    private Long startId;
-
-    private Integer size;
-
-    public Long getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Long examId) {
-        this.examId = examId;
-    }
-
-    public String getSubjectCode() {
-        return subjectCode;
-    }
-
-    public void setSubjectCode(String subjectCode) {
-        this.subjectCode = subjectCode;
-    }
-
-    public Long getStartId() {
-        return startId;
-    }
-
-    public void setStartId(Long startId) {
-        this.startId = startId;
-    }
-
-    public Integer getSize() {
-        return size;
-    }
-
-    public void setSize(Integer size) {
-        this.size = size;
-    }
-}

+ 0 - 36
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryCapturePhotoReq.java

@@ -1,36 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 上午11:35:15
- * @company QMTH
- * @description OuterGetCapturePhotoReq.java
- */
-public class OuterQueryCapturePhotoReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -3913911619514532603L;
-
-	private Long rootOrgId;
-	
-	private Long examRecordDataId;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-}

+ 0 - 74
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryScoreDataReq.java

@@ -1,74 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * @author chenken
- * @date 2018年11月27日 下午5:51:08
- * @company QMTH
- */
-public class OuterQueryScoreDataReq extends EnterpriseRequest {
-
-    private static final long serialVersionUID = -5033520077132433253L;
-
-    private String examCode;
-
-    private String examName;
-
-    private Long rootOrgId;
-
-    private String studentCode;
-
-    private String identityNumber;
-
-    private String courseCode;
-
-    public String getExamCode() {
-        return examCode;
-    }
-
-    public void setExamCode(String examCode) {
-        this.examCode = examCode;
-    }
-
-    public String getExamName() {
-        return examName;
-    }
-
-    public void setExamName(String examName) {
-        this.examName = examName;
-    }
-
-    public Long getRootOrgId() {
-        return rootOrgId;
-    }
-
-    public void setRootOrgId(Long rootOrgId) {
-        this.rootOrgId = rootOrgId;
-    }
-
-    public String getStudentCode() {
-        return studentCode;
-    }
-
-    public void setStudentCode(String studentCode) {
-        this.studentCode = studentCode;
-    }
-
-    public String getIdentityNumber() {
-        return identityNumber;
-    }
-
-    public void setIdentityNumber(String identityNumber) {
-        this.identityNumber = identityNumber;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-}

+ 0 - 89
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterQueryScoreListReq.java

@@ -1,89 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterQueryScoreListReq extends EnterpriseRequest {
-
-    private static final long serialVersionUID = 1L;
-
-    private Long rootOrgId;
-
-    private String examCode;
-
-    @Deprecated
-    private String examName;
-
-    private String courseCode;
-
-    private String queryStartTime;
-
-    private String queryEndTime;
-
-    private Integer pageNo;
-
-    private Integer pageSize;
-
-    public Long getRootOrgId() {
-        return rootOrgId;
-    }
-
-    public void setRootOrgId(Long rootOrgId) {
-        this.rootOrgId = rootOrgId;
-    }
-
-    public String getExamCode() {
-        return examCode;
-    }
-
-    public void setExamCode(String examCode) {
-        this.examCode = examCode;
-    }
-
-    public String getExamName() {
-        return examName;
-    }
-
-    public void setExamName(String examName) {
-        this.examName = examName;
-    }
-
-    public String getCourseCode() {
-        return courseCode;
-    }
-
-    public void setCourseCode(String courseCode) {
-        this.courseCode = courseCode;
-    }
-
-    public String getQueryStartTime() {
-        return queryStartTime;
-    }
-
-    public void setQueryStartTime(String queryStartTime) {
-        this.queryStartTime = queryStartTime;
-    }
-
-    public String getQueryEndTime() {
-        return queryEndTime;
-    }
-
-    public void setQueryEndTime(String queryEndTime) {
-        this.queryEndTime = queryEndTime;
-    }
-
-    public Integer getPageNo() {
-        return pageNo;
-    }
-
-    public void setPageNo(Integer pageNo) {
-        this.pageNo = pageNo;
-    }
-
-    public Integer getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(Integer pageSize) {
-        this.pageSize = pageSize;
-    }
-}

+ 0 - 92
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterResetExamStudentReq.java

@@ -1,92 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import java.util.List;
-
-import cn.com.qmth.sdk.bean.OuterExamStudentBean4Reset;
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterResetExamStudentReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 3633974018347041831L;
-
-	private Long rootOrgId;
-
-	private Long examId;
-
-	private String examName;
-
-	private String examCode;
-
-	private String studentName;
-
-	private String studentCode;
-
-	private String identityNumber;
-
-	private List<OuterExamStudentBean4Reset> examStudentList;
-
-	public String getExamName() {
-		return examName;
-	}
-
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamCode() {
-		return examCode;
-	}
-
-	public void setExamCode(String examCode) {
-		this.examCode = examCode;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public List<OuterExamStudentBean4Reset> getExamStudentList() {
-		return examStudentList;
-	}
-
-	public void setExamStudentList(List<OuterExamStudentBean4Reset> examStudentList) {
-		this.examStudentList = examStudentList;
-	}
-
-}

+ 0 - 98
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveExamReq.java

@@ -1,98 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import java.util.Date;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月16日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveExamReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 8298816850875139485L;
-
-	private Long rootOrgId;
-
-	private Date beginTime;
-
-	private Date endTime;
-
-	private String name;
-
-	private String examType;
-
-	private Integer duration;
-
-	private String remark;
-
-	private Long examTimes;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Date getBeginTime() {
-		return beginTime;
-	}
-
-	public void setBeginTime(Date beginTime) {
-		this.beginTime = beginTime;
-	}
-
-	public Date getEndTime() {
-		return endTime;
-	}
-
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getExamType() {
-		return examType;
-	}
-
-	public void setExamType(String examType) {
-		this.examType = examType;
-	}
-
-	public Integer getDuration() {
-		return duration;
-	}
-
-	public void setDuration(Integer duration) {
-		this.duration = duration;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public Long getExamTimes() {
-		return examTimes;
-	}
-
-	public void setExamTimes(Long examTimes) {
-		this.examTimes = examTimes;
-	}
-
-}

+ 0 - 166
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveExamStudentReq.java

@@ -1,166 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月14日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveExamStudentReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -8455805881947392754L;
-
-	private Long rootOrgId;
-
-	private Long examId;
-
-	private String examName;
-
-	private String studentName;
-
-	private String studentCode;
-
-	private String identityNumber;
-
-	private String courseName;
-
-	private String courseCode;
-
-	private String courseLevel;
-
-	private String paperType;
-
-	private String infoCollector;
-
-	private String specialtyName;
-
-	private String examSite;
-
-	private String grade;
-
-	private String remark;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamName() {
-		return examName;
-	}
-
-	public void setExamName(String examName) {
-		this.examName = examName;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public String getCourseLevel() {
-		return courseLevel;
-	}
-
-	public void setCourseLevel(String courseLevel) {
-		this.courseLevel = courseLevel;
-	}
-
-	public String getPaperType() {
-		return paperType;
-	}
-
-	public void setPaperType(String paperType) {
-		this.paperType = paperType;
-	}
-
-	public String getInfoCollector() {
-		return infoCollector;
-	}
-
-	public void setInfoCollector(String infoCollector) {
-		this.infoCollector = infoCollector;
-	}
-
-	public String getSpecialtyName() {
-		return specialtyName;
-	}
-
-	public void setSpecialtyName(String specialtyName) {
-		this.specialtyName = specialtyName;
-	}
-
-	public String getExamSite() {
-		return examSite;
-	}
-
-	public void setExamSite(String examSite) {
-		this.examSite = examSite;
-	}
-
-	public String getGrade() {
-		return grade;
-	}
-
-	public void setGrade(String grade) {
-		this.grade = grade;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-}

+ 0 - 159
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterSaveStudentReq.java

@@ -1,159 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年6月29日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveStudentReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -8500412921400589808L;
-
-	/**
-	 * 学生姓名
-	 */
-	private String name;
-
-	/**
-	 * 顶级机构ID
-	 */
-	private Long rootOrgId;
-
-	/**
-	 * 机构ID
-	 */
-	private Long orgId;
-
-	/**
-	 * 学习中心编码
-	 */
-	private String orgCode;
-
-	/**
-	 * 学习中心名称
-	 */
-	private String orgName;
-
-	/**
-	 * 学生code
-	 */
-	private String studentCode;
-
-	/**
-	 * 身份证号码
-	 */
-	private String identityNumber;
-
-	/**
-	 * 备注
-	 */
-	private String remark;
-
-	/**
-	 * 图片地址
-	 */
-	private String photoUrl;
-
-	/**
-	 * 手机号码
-	 */
-	private String phoneNumber;
-
-	/**
-	 * 操作者
-	 */
-	private String operator;
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-	public String getOrgCode() {
-		return orgCode;
-	}
-
-	public void setOrgCode(String orgCode) {
-		this.orgCode = orgCode;
-	}
-
-	public String getOrgName() {
-		return orgName;
-	}
-
-	public void setOrgName(String orgName) {
-		this.orgName = orgName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public String getPhotoUrl() {
-		return photoUrl;
-	}
-
-	public void setPhotoUrl(String photoUrl) {
-		this.photoUrl = photoUrl;
-	}
-
-	public String getPhoneNumber() {
-		return phoneNumber;
-	}
-
-	public void setPhoneNumber(String phoneNumber) {
-		this.phoneNumber = phoneNumber;
-	}
-
-	public String getOperator() {
-		return operator;
-	}
-
-	public void setOperator(String operator) {
-		this.operator = operator;
-	}
-
-}

+ 0 - 89
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdateExamStudentStatusReq.java

@@ -1,89 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterUpdateExamStudentStatusReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = -4293362630253480701L;
-
-	private Long rootOrgId;
-
-	private Long examId;
-
-	private String examCode;
-
-	private String identityNumber;
-
-	private Long studentId;
-
-	private Long courseId;
-
-	private String courseCode;
-
-	private Boolean enable;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-	public String getExamCode() {
-		return examCode;
-	}
-
-	public void setExamCode(String examCode) {
-		this.examCode = examCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public Long getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public Long getCourseId() {
-		return courseId;
-	}
-
-	public void setCourseId(Long courseId) {
-		this.courseId = courseId;
-	}
-
-	public Boolean getEnable() {
-		return enable;
-	}
-
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
-
-}

+ 0 - 49
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdatePasswordReq.java

@@ -1,49 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterUpdatePasswordReq extends EnterpriseRequest {
-
-	private static final long serialVersionUID = 1003594551453376759L;
-
-	private Long rootOrgId;
-
-	private Long studentId;
-
-	private String identityNumber;
-
-	private String password;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getPassword() {
-		return password;
-	}
-
-	public void setPassword(String password) {
-		this.password = password;
-	}
-
-}

+ 0 - 48
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/request/OuterUpdateStudentStatusReq.java

@@ -1,48 +0,0 @@
-package cn.com.qmth.sdk.request;
-
-import cn.com.qmth.sdk.exchange.EnterpriseRequest;
-
-public class OuterUpdateStudentStatusReq extends EnterpriseRequest {
-	private static final long serialVersionUID = -3300491605950827319L;
-
-	private Long rootOrgId;
-
-	private Long studentId;
-
-	private String identityNumber;
-
-	private Boolean enable;
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public Boolean getEnable() {
-		return enable;
-	}
-
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
-
-}

+ 0 - 39
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterDeleteScoreQueueTopResp.java

@@ -1,39 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 下午3:11:41
- * @company QMTH
- * @description 删除队列返回
- */
-public class OuterDeleteScoreQueueTopResp extends EnterpriseResponse {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 3067547229113108753L;
-
-	private Boolean isSuccess;
-
-	private String desc;
-
-	public Boolean getIsSuccess() {
-		return isSuccess;
-	}
-
-	public void setIsSuccess(Boolean isSuccess) {
-		this.isSuccess = isSuccess;
-	}
-
-	public String getDesc() {
-		return desc;
-	}
-
-	public void setDesc(String desc) {
-		this.desc = desc;
-	}
-
-}

+ 0 - 71
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetExamRecordAuditInfoResp.java

@@ -1,71 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import java.util.Date;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 下午2:38:13
- * @company QMTH
- * @description 审核信息返回
- */
-public class OuterGetExamRecordAuditInfoResp extends EnterpriseResponse {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 6067030714515530914L;
-
-	private Long examRecordDataId;
-
-	private String disciplineType;
-
-	private String disciplineDetail;
-
-	private String auditUserName;
-
-	private Date creationTime;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public String getDisciplineType() {
-		return disciplineType;
-	}
-
-	public void setDisciplineType(String disciplineType) {
-		this.disciplineType = disciplineType;
-	}
-
-	public String getDisciplineDetail() {
-		return disciplineDetail;
-	}
-
-	public void setDisciplineDetail(String disciplineDetail) {
-		this.disciplineDetail = disciplineDetail;
-	}
-
-	public String getAuditUserName() {
-		return auditUserName;
-	}
-
-	public void setAuditUserName(String auditUserName) {
-		this.auditUserName = auditUserName;
-	}
-
-	public Date getCreationTime() {
-		return creationTime;
-	}
-
-	public void setCreationTime(Date creationTime) {
-		this.creationTime = creationTime;
-	}
-
-}

+ 0 - 148
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetExamResp.java

@@ -1,148 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import java.util.Date;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月16日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterGetExamResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = 1030154836013325322L;
-
-	/**
-	 * ID
-	 */
-	private Long id;
-
-	/**
-	 * 顶级机构Id
-	 */
-	private Long rootOrgId;
-
-	/**
-	 * 考试批次开始时间
-	 */
-	private Date beginTime;
-
-	/**
-	 * 考试批次结束时间
-	 */
-	private Date endTime;
-
-	/**
-	 * 考试名称
-	 */
-	private String name;
-
-	/**
-	 * 考试类型
-	 */
-	private String examType;
-
-	/**
-	 * 考试时长(分钟)
-	 */
-	private Integer duration;
-
-	/**
-	 * 是否可用
-	 */
-	private Boolean enable;
-
-	/**
-	 * 考试备注
-	 */
-	private String remark;
-
-	/**
-	 * 考试次数
-	 */
-	private Long examTimes;
-
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Date getBeginTime() {
-		return beginTime;
-	}
-
-	public void setBeginTime(Date beginTime) {
-		this.beginTime = beginTime;
-	}
-
-	public Date getEndTime() {
-		return endTime;
-	}
-
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public String getExamType() {
-		return examType;
-	}
-
-	public void setExamType(String examType) {
-		this.examType = examType;
-	}
-
-	public Integer getDuration() {
-		return duration;
-	}
-
-	public void setDuration(Integer duration) {
-		this.duration = duration;
-	}
-
-	public Boolean getEnable() {
-		return enable;
-	}
-
-	public void setEnable(Boolean enable) {
-		this.enable = enable;
-	}
-
-	public String getRemark() {
-		return remark;
-	}
-
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
-	public Long getExamTimes() {
-		return examTimes;
-	}
-
-	public void setExamTimes(Long examTimes) {
-		this.examTimes = examTimes;
-	}
-
-}

+ 0 - 27
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetQuestionAnswerResp.java

@@ -1,27 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-import java.util.List;
-
-/**
- * @Description 获取题目作答
- * @Author lideyin
- * @Date 2020/4/25 18:56
- * @Version 1.0
- */
-public class OuterGetQuestionAnswerResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = 8290190579593586203L;
-
-	//答案集合
-	private List<String> answerList;
-
-	public List<String> getAnswerList() {
-		return answerList;
-	}
-
-	public void setAnswerList(List<String> answerList) {
-		this.answerList = answerList;
-	}
-}

+ 0 - 138
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetScoreDataResp.java

@@ -1,138 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import java.util.Date;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 上午11:31:26
- * @company QMTH
- * @description 获取成绩数据返回
- */
-public class OuterGetScoreDataResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = -9186364236466166910L;
-
-	private Long examRecordDataId;
-
-	private String studentName;
-
-	private String studentCode;
-
-	private String identityNumber;
-
-	private String courseName;
-
-	private String courseCode;
-
-	private Date startTime;
-
-	private Date endTime;
-
-	private Double totalScore;
-
-	private Boolean isWarn;
-
-	private Boolean isAudit;
-
-	private Boolean isIllegality;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public String getStudentName() {
-		return studentName;
-	}
-
-	public void setStudentName(String studentName) {
-		this.studentName = studentName;
-	}
-
-	public String getStudentCode() {
-		return studentCode;
-	}
-
-	public void setStudentCode(String studentCode) {
-		this.studentCode = studentCode;
-	}
-
-	public String getIdentityNumber() {
-		return identityNumber;
-	}
-
-	public void setIdentityNumber(String identityNumber) {
-		this.identityNumber = identityNumber;
-	}
-
-	public String getCourseName() {
-		return courseName;
-	}
-
-	public void setCourseName(String courseName) {
-		this.courseName = courseName;
-	}
-
-	public String getCourseCode() {
-		return courseCode;
-	}
-
-	public void setCourseCode(String courseCode) {
-		this.courseCode = courseCode;
-	}
-
-	public Date getStartTime() {
-		return startTime;
-	}
-
-	public void setStartTime(Date startTime) {
-		this.startTime = startTime;
-	}
-
-	public Date getEndTime() {
-		return endTime;
-	}
-
-	public void setEndTime(Date endTime) {
-		this.endTime = endTime;
-	}
-
-	public Double getTotalScore() {
-		return totalScore;
-	}
-
-	public void setTotalScore(Double totalScore) {
-		this.totalScore = totalScore;
-	}
-
-	public Boolean getIsWarn() {
-		return isWarn;
-	}
-
-	public void setIsWarn(Boolean isWarn) {
-		this.isWarn = isWarn;
-	}
-
-	public Boolean getIsAudit() {
-		return isAudit;
-	}
-
-	public void setIsAudit(Boolean isAudit) {
-		this.isAudit = isAudit;
-	}
-
-	public Boolean getIsIllegality() {
-		return isIllegality;
-	}
-
-	public void setIsIllegality(Boolean isIllegality) {
-		this.isIllegality = isIllegality;
-	}
-
-}

+ 0 - 36
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterGetScoreQueueTopResp.java

@@ -1,36 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 
- * @author chenken
- * @date 2018年11月16日 下午3:08:14
- * @company QMTH
- * @description 成绩队列返回信息
- */
-public class OuterGetScoreQueueTopResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = -2874809807909407199L;
-
-	private Long queueId;
-
-	private Long examRecordDataId;
-
-	public Long getQueueId() {
-		return queueId;
-	}
-
-	public void setQueueId(Long queueId) {
-		this.queueId = queueId;
-	}
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-}

+ 0 - 32
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterQueryCapturePhotoResp.java

@@ -1,32 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import java.util.List;
-
-import cn.com.qmth.sdk.bean.OuterGetCapturePhotoBean;
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-public class OuterQueryCapturePhotoResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = -1332579670294448864L;
-
-	private Long examRecordDataId;
-
-	private List<OuterGetCapturePhotoBean> capturePhotoList;
-
-	public Long getExamRecordDataId() {
-		return examRecordDataId;
-	}
-
-	public void setExamRecordDataId(Long examRecordDataId) {
-		this.examRecordDataId = examRecordDataId;
-	}
-
-	public List<OuterGetCapturePhotoBean> getCapturePhotoList() {
-		return capturePhotoList;
-	}
-
-	public void setCapturePhotoList(List<OuterGetCapturePhotoBean> capturePhotoList) {
-		this.capturePhotoList = capturePhotoList;
-	}
-
-}

+ 0 - 26
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveExamResp.java

@@ -1,26 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年11月16日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveExamResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = -8997559197584414927L;
-
-	private Long examId;
-
-	public Long getExamId() {
-		return examId;
-	}
-
-	public void setExamId(Long examId) {
-		this.examId = examId;
-	}
-
-}

+ 0 - 27
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveExamStudentResp.java

@@ -1,27 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.bean.OuterExamStudentBean;
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 响应
- *
- * @author WANGWEI
- * @date 2018年11月14日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveExamStudentResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = 5003024673163742249L;
-
-	private OuterExamStudentBean examStudentBean;
-
-	public OuterExamStudentBean getExamStudentBean() {
-		return examStudentBean;
-	}
-
-	public void setExamStudentBean(OuterExamStudentBean examStudentBean) {
-		this.examStudentBean = examStudentBean;
-	}
-
-}

+ 0 - 16
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveStudentPhotoResp.java

@@ -1,16 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年9月4日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class OuterSaveStudentPhotoResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = 8401121486324558126L;
-
-}

+ 0 - 49
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/response/OuterSaveStudentResp.java

@@ -1,49 +0,0 @@
-package cn.com.qmth.sdk.response;
-
-import cn.com.qmth.sdk.exchange.EnterpriseResponse;
-
-public class OuterSaveStudentResp extends EnterpriseResponse {
-
-	private static final long serialVersionUID = 2523302124132923363L;
-
-	private Long studentId;
-
-	private Long rootOrgId;
-
-	private Long orgId;
-
-	private String orgName;
-
-	public Long getStudentId() {
-		return studentId;
-	}
-
-	public void setStudentId(Long studentId) {
-		this.studentId = studentId;
-	}
-
-	public Long getRootOrgId() {
-		return rootOrgId;
-	}
-
-	public void setRootOrgId(Long rootOrgId) {
-		this.rootOrgId = rootOrgId;
-	}
-
-	public Long getOrgId() {
-		return orgId;
-	}
-
-	public void setOrgId(Long orgId) {
-		this.orgId = orgId;
-	}
-
-	public String getOrgName() {
-		return orgName;
-	}
-
-	public void setOrgName(String orgName) {
-		this.orgName = orgName;
-	}
-
-}

+ 0 - 22
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/InvalidScoreHandler.java

@@ -1,22 +0,0 @@
-package cn.com.qmth.sdk.score;
-
-import cn.com.qmth.sdk.response.OuterGetScoreDataResp;
-
-/**
- * 无效数据处理
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public interface InvalidScoreHandler {
-
-	/**
-	 * 处理
-	 *
-	 * @author WANGWEI
-	 * @param data
-	 */
-	void handle(OuterGetScoreDataResp data);
-
-}

+ 0 - 159
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ScoreHandler.java

@@ -1,159 +0,0 @@
-package cn.com.qmth.sdk.score;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import org.apache.commons.io.IOUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import cn.com.qmth.sdk.request.OuterDeleteScoreQueueTopReq;
-import cn.com.qmth.sdk.request.OuterGetScoreDataReq;
-import cn.com.qmth.sdk.request.OuterGetScoreQueueTopReq;
-import cn.com.qmth.sdk.response.OuterGetScoreDataResp;
-import cn.com.qmth.sdk.response.OuterGetScoreQueueTopResp;
-import cn.com.qmth.sdk.util.HttpMethod;
-import cn.com.qmth.sdk.util.JsonUtil;
-import cn.com.qmth.sdk.util.OKHttpUtil;
-import cn.com.qmth.sdk.util.QmthUtil;
-import okhttp3.Response;
-
-/**
- * 分数处理
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class ScoreHandler implements Runnable {
-
-	private static final Logger LOG = LoggerFactory.getLogger(ScoreHandler.class);
-
-	/**
-	 * 有效数据处理
-	 */
-	private ValidScoreHandler validScoreHandler;
-
-	/**
-	 * 无效数据处理
-	 */
-	private InvalidScoreHandler invalidScoreHandler;
-
-	private AtomicBoolean running;
-
-	/**
-	 * 构造函数
-	 *
-	 * @param validScoreHandler
-	 * @param invalidScoreHandler
-	 * @param running
-	 */
-	public ScoreHandler(ValidScoreHandler validScoreHandler,
-			InvalidScoreHandler invalidScoreHandler, AtomicBoolean running) {
-		super();
-		this.validScoreHandler = validScoreHandler;
-		this.invalidScoreHandler = invalidScoreHandler;
-		this.running = running;
-	}
-
-	@Override
-	public void run() {
-		if (!running.compareAndSet(false, true)) {
-			return;
-		}
-		int count = 0;
-		while (true) {
-			try {
-				if (!execute()) {
-					// 队列没有元素时线程退出
-					break;
-				}
-			} catch (Exception e) {
-				LOG.error("I am sorry", e);
-				count++;
-			}
-			// 10次异常后线程退出
-			if (10 < count) {
-				break;
-			}
-		}
-
-		if (!running.compareAndSet(true, false)) {
-			throw new RuntimeException("status exception");
-		}
-	}
-
-	private boolean execute() {
-		// 查询队列
-		String getElementUrl = QmthUtil.buildUrl("/api/exchange/outer/scoreQueue/getScoreQueueTop");
-		OuterGetScoreQueueTopReq outerGetScoreQueueTopReq = new OuterGetScoreQueueTopReq();
-		outerGetScoreQueueTopReq.setRootOrgId(QmthUtil.getRootOrgId());
-
-		String outerGetScoreQueueTopRespJson = null;
-		Response resp = null;
-		try {
-			resp = OKHttpUtil.call(HttpMethod.POST, getElementUrl, QmthUtil.getSecurityHeaders(),
-					JsonUtil.toJson(outerGetScoreQueueTopReq));
-			System.out.println(resp.code());
-			System.out.println(resp.body().string());
-			outerGetScoreQueueTopRespJson = resp.body().string();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(resp);
-		}
-
-		OuterGetScoreQueueTopResp outerGetScoreQueueTopResp = JsonUtil
-				.fromJson(outerGetScoreQueueTopRespJson, OuterGetScoreQueueTopResp.class);
-
-		// 考试记录ID
-		Long examRecordDataId = outerGetScoreQueueTopResp.getExamRecordDataId();
-		if (null == examRecordDataId) {
-			return false;
-		}
-
-		String getScoreDataUrl = QmthUtil.buildUrl("/api/exchange/outer/score/getScoreData");
-		OuterGetScoreDataReq outerGetScoreDataReq = new OuterGetScoreDataReq();
-		outerGetScoreDataReq.setExamRecordDataId(examRecordDataId);
-
-		String outerGetScoreDataRespJson = null;
-		try {
-			resp = OKHttpUtil.call(HttpMethod.POST, getScoreDataUrl, QmthUtil.getSecurityHeaders(),
-					JsonUtil.toJson(outerGetScoreDataReq));
-			System.out.println(resp.code());
-			System.out.println(resp.body().string());
-			outerGetScoreDataRespJson = resp.body().string();
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(resp);
-		}
-
-		// 分数
-		OuterGetScoreDataResp outerGetScoreDataResp = JsonUtil.fromJson(outerGetScoreDataRespJson,
-				OuterGetScoreDataResp.class);
-
-		Boolean isWarn = outerGetScoreDataResp.getIsWarn();
-		Boolean isAudit = outerGetScoreDataResp.getIsAudit();
-		Boolean isIllegality = outerGetScoreDataResp.getIsIllegality();
-
-		// 正常状态1
-		Boolean ok1 = (!isWarn) && (!isAudit) && (!isIllegality);
-		// 正常状态2
-		Boolean ok2 = (isWarn) && (isAudit) && (!isIllegality);
-
-		if (ok1 || ok2) {
-			validScoreHandler.handle(outerGetScoreDataResp);
-		} else {
-			invalidScoreHandler.handle(outerGetScoreDataResp);
-		}
-
-		String deleteQueueUrl = QmthUtil.buildUrl("/api/exchange/outer/scoreQueue/getScoreQueueTop");
-		OuterDeleteScoreQueueTopReq outerDeleteScoreQueueTopReq = new OuterDeleteScoreQueueTopReq();
-		outerGetScoreQueueTopReq.setRootOrgId(QmthUtil.getRootOrgId());
-		OKHttpUtil.call(HttpMethod.POST, deleteQueueUrl, QmthUtil.getSecurityHeaders(),
-				JsonUtil.toJson(outerDeleteScoreQueueTopReq));
-
-		return true;
-	}
-
-}

+ 0 - 49
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ScoreHandlerController.java

@@ -1,49 +0,0 @@
-package cn.com.qmth.sdk.score;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import cn.com.qmth.sdk.response.OuterGetScoreDataResp;
-
-/**
- * 分数处理控制器
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class ScoreHandlerController {
-
-	/**
-	 * 是否正在处理
-	 */
-	private static AtomicBoolean running = new AtomicBoolean(false);
-
-	/**
-	 * 启动 (收到同步信号后调用该方放)
-	 *
-	 * @author WANGWEI
-	 */
-	public static void start() {
-		if (running.get()) {
-			return;
-		}
-
-		new Thread(new ScoreHandler(new ValidScoreHandler() {
-
-			@Override
-			public void handle(OuterGetScoreDataResp data) {
-				// 这里写有效分处理逻辑
-			}
-		}, new InvalidScoreHandler() {
-
-			@Override
-			public void handle(OuterGetScoreDataResp data) {
-				// 这里写无效分处理逻辑
-
-			}
-
-		}, running)).start();
-
-	}
-
-}

+ 0 - 22
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/score/ValidScoreHandler.java

@@ -1,22 +0,0 @@
-package cn.com.qmth.sdk.score;
-
-import cn.com.qmth.sdk.response.OuterGetScoreDataResp;
-
-/**
- * 有效数据处理
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public interface ValidScoreHandler {
-
-	/**
-	 * 处理
-	 *
-	 * @author WANGWEI
-	 * @param data
-	 */
-	void handle(OuterGetScoreDataResp data);
-
-}

+ 0 - 61
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/security/LoginUtil.java

@@ -1,61 +0,0 @@
-package cn.com.qmth.sdk.security;
-
-import java.util.Map;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.http.HttpStatus;
-
-import com.google.common.collect.Maps;
-
-import cn.com.qmth.sdk.exception.StatusException;
-import cn.com.qmth.sdk.security.bean.Session;
-import cn.com.qmth.sdk.support.StatusResponse;
-import cn.com.qmth.sdk.util.HttpMethod;
-import cn.com.qmth.sdk.util.JsonUtil;
-import cn.com.qmth.sdk.util.OKHttpUtil;
-import cn.com.qmth.sdk.util.PropertiesUtil;
-import cn.com.qmth.sdk.util.QmthUtil;
-import okhttp3.Response;
-
-/**
- * 登陆
- *
- * @author WANGWEI
- * @date 2019年5月8日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class LoginUtil {
-
-	public static Session login(String loginName, String password) {
-
-		Long rootOrgId = QmthUtil.getRootOrgId();
-		String url = PropertiesUtil.getString("qmth.loginUrl");
-
-		Map<String, String> params = Maps.newHashMap();
-		params.put("rootOrgId", String.valueOf(rootOrgId));
-		params.put("loginName", loginName);
-		params.put("password", password);
-
-		Response resp = null;
-		try {
-			resp = OKHttpUtil.call(HttpMethod.POST, url, Maps.newHashMap(), params);
-			int code = resp.code();
-			String body = resp.body().string();
-			System.out.println(code);
-			System.out.println(body);
-			if (HttpStatus.SC_OK != code) {
-				StatusResponse sr = JsonUtil.fromJson(body, StatusResponse.class);
-				throw new StatusException(sr.getCode(), sr.getDesc());
-			}
-			Session session = JsonUtil.fromJson(body, Session.class);
-			return session;
-		} catch (StatusException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(resp);
-		}
-	}
-
-}

+ 0 - 35
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/security/bean/Session.java

@@ -1,35 +0,0 @@
-package cn.com.qmth.sdk.security.bean;
-
-import java.util.Map;
-
-import com.google.common.collect.Maps;
-
-public class Session {
-
-	private Long userId;
-
-	private String token;
-
-	public Map<String, String> buildHeaders() {
-		Map<String, String> headers = Maps.newHashMap();
-		headers.put("user_token", token);
-		return headers;
-	}
-
-	public Long getUserId() {
-		return userId;
-	}
-
-	public void setUserId(Long userId) {
-		this.userId = userId;
-	}
-
-	public String getToken() {
-		return token;
-	}
-
-	public void setToken(String token) {
-		this.token = token;
-	}
-
-}

+ 0 - 56
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/support/StatusResponse.java

@@ -1,56 +0,0 @@
-package cn.com.qmth.sdk.support;
-
-import cn.com.qmth.sdk.exchange.JsonSerializable;
-
-/**
- * 状态响应实体
- *
- * @author WANGWEI
- * @date 2018年5月24日
- * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
- */
-public class StatusResponse implements JsonSerializable {
-
-	private static final long serialVersionUID = 8393074113722405560L;
-
-	private String code;
-
-	private String desc;
-
-	/**
-	 * 构造函数
-	 *
-	 */
-	public StatusResponse() {
-		super();
-	}
-
-	/**
-	 * 构造函数
-	 *
-	 * @param code
-	 * @param desc
-	 */
-	public StatusResponse(String code, String desc) {
-		super();
-		this.code = code;
-		this.desc = desc;
-	}
-
-	public String getCode() {
-		return code;
-	}
-
-	public void setCode(String code) {
-		this.code = code;
-	}
-
-	public String getDesc() {
-		return desc;
-	}
-
-	public void setDesc(String desc) {
-		this.desc = desc;
-	}
-
-}

+ 0 - 116
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/ByteUtil.java

@@ -1,116 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-/**
- * 字节转换工具
- *
- * @author WANGWEI
- * @date 2018年4月27日
- */
-public class ByteUtil {
-	public final static short UNSIGNED_MAX_VALUE = (Byte.MAX_VALUE * 2) + 1;
-
-	private ByteUtil() {
-	}
-
-	public static int unsignedPromote(byte b) {
-		return b & 0xff;
-	}
-
-	public static String toHexAscii(byte b) {
-		StringWriter sw = new StringWriter(2);
-		addHexAscii(b, sw);
-		return sw.toString();
-	}
-
-	public static String toLowercaseHexAscii(byte b) {
-		StringWriter sw = new StringWriter(2);
-		addLowercaseHexAscii(b, sw);
-		return sw.toString();
-	}
-
-	public static String toHexAscii(byte[] bytes) {
-		int len = bytes.length;
-		StringWriter sw = new StringWriter(len * 2);
-		for (int i = 0; i < len; ++i)
-			addHexAscii(bytes[i], sw);
-		return sw.toString();
-	}
-
-	public static String toLowercaseHexAscii(byte[] bytes) {
-		int len = bytes.length;
-		StringWriter sw = new StringWriter(len * 2);
-		for (int i = 0; i < len; ++i)
-			addLowercaseHexAscii(bytes[i], sw);
-		return sw.toString();
-	}
-
-	public static byte[] fromHexAscii(String s) throws NumberFormatException {
-		try {
-			int len = s.length();
-			if ((len % 2) != 0)
-				throw new NumberFormatException("Hex ascii must be exactly two digits per byte.");
-
-			int out_len = len / 2;
-			byte[] out = new byte[out_len];
-			int i = 0;
-			StringReader sr = new StringReader(s);
-			while (i < out_len) {
-				int val = (16 * fromHexDigit(sr.read())) + fromHexDigit(sr.read());
-				out[i++] = (byte) val;
-			}
-			return out;
-		} catch (IOException e) {
-			throw new InternalError("IOException reading from StringReader?!?!");
-		}
-	}
-
-	static void addHexAscii(byte b, StringWriter sw) {
-		int ub = unsignedPromote(b);
-		int h1 = ub / 16;
-		int h2 = ub % 16;
-		sw.write(toHexDigit(h1));
-		sw.write(toHexDigit(h2));
-	}
-
-	static void addLowercaseHexAscii(byte b, StringWriter sw) {
-		int ub = unsignedPromote(b);
-		int h1 = ub / 16;
-		int h2 = ub % 16;
-		sw.write(toLowercaseHexDigit(h1));
-		sw.write(toLowercaseHexDigit(h2));
-	}
-
-	private static int fromHexDigit(int c) throws NumberFormatException {
-		if (c >= 0x30 && c < 0x3A)
-			return c - 0x30;
-		else if (c >= 0x41 && c < 0x47)
-			return c - 0x37;
-		else if (c >= 0x61 && c < 0x67)
-			return c - 0x57;
-		else
-			throw new NumberFormatException('\'' + c + "' is not a valid hexadecimal digit.");
-	}
-
-	private static char toHexDigit(int h) {
-		char out;
-		if (h <= 9)
-			out = (char) (h + 0x30);
-		else
-			out = (char) (h + 0x37);
-		return out;
-	}
-
-	private static char toLowercaseHexDigit(int h) {
-		char out;
-		if (h <= 9)
-			out = (char) (h + 0x30);
-		else
-			out = (char) (h + 0x57);
-		return out;
-	}
-
-}

+ 0 - 94
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/DateUtil.java

@@ -1,94 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * 日期工具
- * 
- * @author WANGWEI
- */
-public class DateUtil {
-
-	/**
-	 * patterns describing the date and time format
-	 *
-	 * @author WANGWEI
-	 */
-	public interface DatePatterns {
-		public static final String DEFAULT = "yyyyMMddHHmmss";
-
-		public static final String YYYY = "yyyy";
-
-		public static final String YYYYMM = "yyyyMM";
-
-		public static final String YYYYMMDD = "yyyyMMdd";
-
-		public static final String YYYYMMDDHH = "yyyyMMddHH";
-
-		public static final String YYYYMMDDHHMM = "yyyyMMddHHmm";
-
-		public static final String ISO = "yyyy-MM-dd HH:mm:ss";
-
-		public static final String YYYY_MM = "yyyy-MM";
-
-		public static final String YYYY_MM_DD = "yyyy-MM-dd";
-
-		public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
-
-		public static final String YYYY_MM_DD_HH_MM_SS_SSS = "yyyy-MM-dd HH:mm:ss.SSS";
-	}
-
-	/**
-	 * get now date.
-	 * 
-	 * @param pattern
-	 * @return
-	 */
-	public static String getNow(String pattern) {
-		return format(new Date(), pattern);
-	}
-
-	/**
-	 * get now ISO date.
-	 * 
-	 * @return
-	 */
-	public static String getNowISO() {
-		return format(new Date(), DatePatterns.ISO);
-	}
-
-	/**
-	 * format date.
-	 * 
-	 * @param date
-	 * @param pattern
-	 * @return
-	 */
-	public static String format(Date date, String pattern) {
-		try {
-			SimpleDateFormat df = new SimpleDateFormat(pattern);
-			return df.format(date);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * parse date.
-	 * 
-	 * @param source
-	 * @param pattern
-	 * @return
-	 */
-	public static Date parse(String source, String pattern) {
-		SimpleDateFormat df = new SimpleDateFormat(pattern);
-		try {
-			return df.parse(source);
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-}

+ 0 - 115
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/HttpMethod.java

@@ -1,115 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * HTTP method
- *
- * @author WANGWEI
- * @date 2019年4月10日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class HttpMethod {
-
-	public static final HttpMethod OPTIONS = new HttpMethod("OPTIONS");
-
-	public static final HttpMethod GET = new HttpMethod("GET");
-
-	public static final HttpMethod HEAD = new HttpMethod("HEAD");
-
-	public static final HttpMethod POST = new HttpMethod("POST");
-
-	public static final HttpMethod PUT = new HttpMethod("PUT");
-
-	public static final HttpMethod PATCH = new HttpMethod("PATCH");
-
-	public static final HttpMethod DELETE = new HttpMethod("DELETE");
-
-	public static final HttpMethod TRACE = new HttpMethod("TRACE");
-
-	public static final HttpMethod CONNECT = new HttpMethod("CONNECT");
-
-	private static final Map<String, HttpMethod> METHOD_MAP = new HashMap<String, HttpMethod>();
-
-	static {
-		METHOD_MAP.put(OPTIONS.toString(), OPTIONS);
-		METHOD_MAP.put(GET.toString(), GET);
-		METHOD_MAP.put(HEAD.toString(), HEAD);
-		METHOD_MAP.put(POST.toString(), POST);
-		METHOD_MAP.put(PUT.toString(), PUT);
-		METHOD_MAP.put(PATCH.toString(), PATCH);
-		METHOD_MAP.put(DELETE.toString(), DELETE);
-		METHOD_MAP.put(TRACE.toString(), TRACE);
-		METHOD_MAP.put(CONNECT.toString(), CONNECT);
-	}
-
-	private final String name;
-
-	/**
-	 * 构造函数
-	 *
-	 * @param name
-	 */
-	private HttpMethod(String name) {
-		if (name == null) {
-			throw new NullPointerException("name");
-		}
-
-		name = name.trim();
-		if (name.length() == 0) {
-			throw new IllegalArgumentException("empty name");
-		}
-
-		for (int i = 0; i < name.length(); i++) {
-			if (Character.isISOControl(name.charAt(i)) || Character.isWhitespace(name.charAt(i))) {
-				throw new IllegalArgumentException("invalid character in name");
-			}
-		}
-
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public static HttpMethod valueOf(String name) {
-		if (name == null) {
-			throw new NullPointerException("name");
-		}
-
-		name = name.trim();
-		if (name.length() == 0) {
-			throw new IllegalArgumentException("empty name");
-		}
-
-		HttpMethod result = METHOD_MAP.get(name);
-		if (result != null) {
-			return result;
-		} else {
-			throw new IllegalArgumentException("undefined name");
-		}
-	}
-
-	@Override
-	public int hashCode() {
-		return getName().hashCode();
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (!(o instanceof HttpMethod)) {
-			return false;
-		}
-
-		HttpMethod that = (HttpMethod) o;
-		return getName().equals(that.getName());
-	}
-
-	@Override
-	public String toString() {
-		return getName();
-	}
-
-}

+ 0 - 53
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/JsonUtil.java

@@ -1,53 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-
-import cn.com.qmth.sdk.util.DateUtil.DatePatterns;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- */
-public class JsonUtil {
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param obj
-	 * @return
-	 */
-	public static String toJson(Object obj) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping().setDateFormat(DatePatterns.ISO)
-				.create();
-		return gson.toJson(obj);
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param obj
-	 * @return
-	 */
-	public static String toPrettyJson(Object obj) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting()
-				.setDateFormat(DatePatterns.ISO).create();
-		return gson.toJson(obj);
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param json
-	 * @param c
-	 * @return
-	 */
-	public static <T> T fromJson(String json, Class<T> c) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping().create();
-		return gson.fromJson(json, c);
-	}
-
-}

+ 0 - 305
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/OKHttpUtil.java

@@ -1,305 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import cn.com.qmth.sdk.helpers.FormFilePart;
-import okhttp3.FormBody;
-import okhttp3.MediaType;
-import okhttp3.MultipartBody;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Request.Builder;
-import okhttp3.RequestBody;
-import okhttp3.Response;
-
-/**
- * OKHttp
- *
- * @author WANGWEI
- * @date 2018年9月6日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class OKHttpUtil {
-
-	private static final Logger LOG = LoggerFactory.getLogger(OKHttpUtil.class);
-
-	public static final class MediaTypes {
-
-		public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
-	}
-
-	/**
-	 * 请求体构建器
-	 *
-	 * @author WANGWEI
-	 * @date 2019年4月10日
-	 * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
-	 */
-	public static interface RequestBodyBuilder {
-		RequestBody build();
-	}
-
-	/**
-	 * json请求体构建器
-	 *
-	 * @author WANGWEI
-	 * @date 2019年4月10日
-	 * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
-	 */
-	public static final class JsonBodyBuilder implements RequestBodyBuilder {
-
-		private String json;
-
-		public JsonBodyBuilder(String json) {
-			super();
-			this.json = json;
-		}
-
-		@Override
-		public RequestBody build() {
-			return RequestBody.create(MediaTypes.JSON, json);
-		}
-
-		@Override
-		public String toString() {
-			return json;
-		}
-	}
-
-	private static OkHttpClient okHttpClient;
-
-	static {
-		okHttpClient = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS)
-				.readTimeout(20, TimeUnit.SECONDS).build();
-	}
-
-	public static OkHttpClient getOkHttpClient() {
-		return okHttpClient;
-	}
-
-	/**
-	 * 发送请求 (带json请求体)
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @param headers
-	 * @param jsonBody
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url, Map<String, String> headers,
-			String jsonBody) {
-		return call(httpMethod, url, headers, new JsonBodyBuilder(jsonBody));
-	}
-
-	/**
-	 * 发送请求 (带请求体)
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @param headers
-	 * @param requestBodyBuilder
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url, Map<String, String> headers,
-			RequestBodyBuilder requestBodyBuilder) {
-
-		LOG.info("[okhttp3] new call: " + httpMethod + " " + url);
-		LOG.info("[okhttp3] headers: " + JsonUtil.toJson(headers));
-		LOG.info("[okhttp3] body: " + requestBodyBuilder);
-
-		Builder builder = null;
-		if (httpMethod.equals(HttpMethod.POST)) {
-			builder = new Request.Builder().url(url).post(requestBodyBuilder.build());
-		} else if (httpMethod.equals(HttpMethod.PUT)) {
-			builder = new Request.Builder().url(url).put(requestBodyBuilder.build());
-		} else if (httpMethod.equals(HttpMethod.DELETE)) {
-			builder = new Request.Builder().url(url).delete(requestBodyBuilder.build());
-		}
-
-		if (null != headers && 0 != headers.size()) {
-			for (Entry<String, String> entry : headers.entrySet()) {
-				builder.addHeader(entry.getKey(), entry.getValue());
-			}
-		}
-
-		Request request = builder.build();
-
-		Response response = null;
-		try {
-			response = okHttpClient.newCall(request).execute();
-			return response;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * 发送请求
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url) {
-		return call(httpMethod, url, null);
-	}
-
-	/**
-	 * 发送请求
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @param headers
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url, Map<String, String> headers) {
-
-		LOG.info("[okhttp3] new call: " + httpMethod + " " + url);
-		LOG.info("[okhttp3] headers: " + JsonUtil.toJson(headers));
-
-		Builder builder = null;
-		if (httpMethod.equals(HttpMethod.GET)) {
-			builder = new Request.Builder().url(url);
-		} else if (httpMethod.equals(HttpMethod.POST)) {
-			builder = new Request.Builder().url(url).post(new FormBody.Builder().build());
-		} else if (httpMethod.equals(HttpMethod.PUT)) {
-			builder = new Request.Builder().url(url).put(new FormBody.Builder().build());
-		} else if (httpMethod.equals(HttpMethod.DELETE)) {
-			builder = new Request.Builder().url(url).delete(new FormBody.Builder().build());
-		}
-
-		if (null != headers && 0 != headers.size()) {
-			for (Entry<String, String> entry : headers.entrySet()) {
-				builder.addHeader(entry.getKey(), entry.getValue());
-			}
-		}
-
-		Request request = builder.build();
-
-		Response response = null;
-		try {
-			response = okHttpClient.newCall(request).execute();
-			return response;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * 发送请求 (表单)
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @param headers
-	 * @param params
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url, Map<String, String> headers,
-			Map<String, String> params) {
-
-		LOG.info("[okhttp3] new call: " + httpMethod + " " + url);
-		LOG.info("[okhttp3] headers: " + JsonUtil.toJson(headers));
-		LOG.info("[okhttp3] params: " + JsonUtil.toJson(params));
-
-		okhttp3.FormBody.Builder formBody = new FormBody.Builder();
-
-		if (null != params && 0 != params.size()) {
-			for (Entry<String, String> entry : params.entrySet()) {
-				formBody.add(entry.getKey(), entry.getValue());
-			}
-		}
-
-		Builder builder = null;
-		if (httpMethod.equals(HttpMethod.POST)) {
-			builder = new Request.Builder().url(url).post(formBody.build());
-		} else if (httpMethod.equals(HttpMethod.PUT)) {
-			builder = new Request.Builder().url(url).put(formBody.build());
-		} else if (httpMethod.equals(HttpMethod.DELETE)) {
-			builder = new Request.Builder().url(url).delete(formBody.build());
-		}
-
-		if (null != headers && 0 != headers.size()) {
-			for (Entry<String, String> entry : headers.entrySet()) {
-				builder.addHeader(entry.getKey(), entry.getValue());
-			}
-		}
-
-		Request request = builder.build();
-
-		Response response = null;
-		try {
-			response = okHttpClient.newCall(request).execute();
-			return response;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * 发送请求 (包含文件表单)
-	 *
-	 * @author WANGWEI
-	 * @param httpMethod
-	 * @param url
-	 * @param headers
-	 * @param params
-	 * @param formFilePartList
-	 * @return
-	 */
-	public static Response call(HttpMethod httpMethod, String url, Map<String, String> headers,
-			Map<String, String> params, List<FormFilePart> formFilePartList) {
-
-		LOG.info("[okhttp3] new call: " + httpMethod + " " + url);
-		LOG.info("[okhttp3] headers: " + JsonUtil.toJson(headers));
-		LOG.info("[okhttp3] params: " + JsonUtil.toJson(params));
-
-		okhttp3.MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
-				.setType(MultipartBody.ALTERNATIVE);
-
-		if (null != params) {
-			for (Entry<String, String> entry : params.entrySet()) {
-				multipartBodyBuilder.addFormDataPart(entry.getKey(), entry.getValue());
-			}
-		}
-
-		if (CollectionUtils.isNotEmpty(formFilePartList)) {
-			MediaType type = MediaType.parse("application/octet-stream");
-			for (FormFilePart part : formFilePartList) {
-				RequestBody fileBody = RequestBody.create(type, part.getFile());
-				multipartBodyBuilder.addFormDataPart(part.getParamName(), part.getFilename(),
-						fileBody);
-			}
-		}
-
-		Builder builder = new Request.Builder().url(url).post(multipartBodyBuilder.build());
-		if (null != headers && 0 != headers.size()) {
-			for (Entry<String, String> entry : headers.entrySet()) {
-				builder.addHeader(entry.getKey(), entry.getValue());
-			}
-		}
-
-		Request request = builder.build();
-
-		Response response = null;
-		try {
-			response = okHttpClient.newCall(request).execute();
-			return response;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-}

+ 0 - 113
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/PathUtil.java

@@ -1,113 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLDecoder;
-
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * 路径工具
- *
- * @author WANGWEI
- */
-public class PathUtil
-{
-
-	/**
-	 * 获取标准路径
-	 *
-	 * @author WANGWEI
-	 * @param path
-	 * @return
-	 */
-	public static String getCanonicalPath(String path)
-	{
-		path = path.replaceAll("\\+", "/").replaceAll("/+", "/").replaceAll("/\\./", "/");
-		return StringUtils.replace(path, "/", File.separator);
-	}
-
-	/**
-	 * 获取路径
-	 *
-	 * @author WANGWEI
-	 * @param file
-	 * @return
-	 */
-	public static String getCanonicalPath(File file)
-	{
-		try
-		{
-			return file.getCanonicalPath();
-		}
-		catch (IOException e)
-		{
-			throw new RuntimeException("Fail to get canonical path.", e);
-		}
-
-	}
-
-	/**
-	 * 获取当前路径
-	 *
-	 * @author WANGWEI
-	 * @return
-	 * @throws IOException
-	 */
-	public static String currentPath()
-	{
-		File directory = new File(". ");
-		return getCanonicalPath(directory);
-	}
-
-	/**
-	 * 获取资源路径
-	 *
-	 * @author WANGWEI
-	 * @param resourceName
-	 * @return
-	 */
-	public static String getResoucePath(String resourceName)
-	{
-		try
-		{
-			ClassLoader classLoader = PathUtil.class.getClassLoader();
-
-			URL url = classLoader.getResource(resourceName);
-			if (null != url)
-			{
-				String path = URLDecoder.decode(url.getPath(), "UTF-8");
-				return path;
-			}
-			else
-			{
-				return null;
-			}
-		}
-		catch (Exception e)
-		{
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * 获取windows盘符
-	 *
-	 * @author WANGWEI
-	 * @param path
-	 * @return
-	 */
-	public static String getDrive(String path)
-	{
-		if (path.matches("[a-zA-Z]:[\\\\/].*"))
-		{
-			return path.substring(0, 2);
-		}
-		else
-		{
-			throw new RuntimeException("Path is not a windows path.");
-		}
-	}
-
-}

+ 0 - 236
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/PropertiesUtil.java

@@ -1,236 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Properties;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- * @date 2018年10月8日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class PropertiesUtil {
-
-	private static final Logger LOG = LoggerFactory.getLogger(PropertiesUtil.class);
-
-	private static final Properties PROPS = new Properties();
-
-	static {
-		init();
-	}
-
-	/**
-	 * 构造函数
-	 *
-	 */
-	private PropertiesUtil() {
-	}
-
-	/**
-	 * 初始化方法
-	 *
-	 * @author WANGWEI
-	 */
-	public static void init() {
-		configureAndWatch(PathUtil.getResoucePath("qmth.properties"));
-	}
-
-	/**
-	 * 加载配置文件并观察配置文件
-	 *
-	 * @author WANGWEI
-	 * @param path
-	 */
-	public static synchronized void configureAndWatch(String path) {
-		if (StringUtils.isBlank(path)) {
-			return;
-		}
-		try {
-			File file = new File(path);
-			loadFromFile(file, PROPS);
-		} catch (Exception e) {
-			LOG.error("Fail to load and watch file [" + path + "].", e);
-		}
-	}
-
-	/**
-	 * @param path
-	 * @param props
-	 */
-	public static void loadFromDir(String path, Properties props) {
-		File dir = new File(path + "");
-		if ((!dir.exists()) || (!dir.isDirectory())) {
-			LOG.error("directory [" + path + "] is illegal.");
-			return;
-		}
-
-		LOG.info("Loading all Properties files from path [" + path + "].");
-
-		File[] files = dir.listFiles();
-		if (null == files || 0 == files.length) {
-			return;
-		}
-		for (File file : files) {
-			if (file.isDirectory()) {
-				continue;
-			}
-			if (file.getName().toLowerCase().endsWith(".properties")) {
-				loadFromFile(file, props);
-			}
-		}
-	}
-
-	/**
-	 * @param resourceName
-	 * @param props
-	 */
-	public static void loadFromResource(String resourceName, Properties props) {
-		if (null != PropertiesUtil.class.getClassLoader()) {
-			InputStream in = PropertiesUtil.class.getClassLoader()
-					.getResourceAsStream(resourceName);
-
-			loadFromStream(in, props);
-		} else {
-			throw new RuntimeException("fail to get class loader");
-		}
-	}
-
-	/**
-	 * @param file
-	 * @param props
-	 * @throws IOException
-	 */
-	public static void loadFromFile(File file, Properties props) {
-		if (null == file) {
-			LOG.error("file is null.");
-			return;
-		}
-		if (!file.isFile()) {
-			LOG.error("file is not a normal file.");
-			return;
-		}
-
-		String path = PathUtil.getCanonicalPath(file);
-		LOG.info("Loading properties from file [" + path + "]");
-
-		try {
-			loadFromStream(new FileInputStream(file), props);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * @param is
-	 * @param props
-	 */
-	public static void loadFromStream(InputStream is, Properties props) {
-		BufferedReader reader = null;
-		try {
-			reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-			props.load(reader);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(reader);
-			IOUtils.closeQuietly(is);
-		}
-	}
-
-	/**
-	 * @param key
-	 * @return
-	 */
-	public static String getString(String key) {
-		String value = PROPS.getProperty(key);
-		if (StringUtils.isNotBlank(value)) {
-			return value.trim();
-		} else {
-			if (LOG.isDebugEnabled()) {
-				LOG.debug("No property value, key = " + key);
-			}
-			return null;
-		}
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static String getString(String key, String defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			return value;
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static int getInt(String key, int defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			try {
-				return Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-				PROPS.setProperty(key, String.valueOf(defaultValue));
-				return defaultValue;
-			}
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * @param key
-	 * @param defaultValue
-	 * @return
-	 */
-	public static long getLong(String key, long defaultValue) {
-		String value = getString(key);
-		if (null != value) {
-			try {
-				return Long.parseLong(value);
-			} catch (NumberFormatException e) {
-				return defaultValue;
-			}
-		}
-		return defaultValue;
-	}
-
-	/**
-	 * 获取boolean
-	 *
-	 * @author WANGWEI
-	 * @param key
-	 * @param defaultVale
-	 * @return
-	 */
-	public static boolean getBoolean(String key, boolean defaultVale) {
-		String value = getString(key);
-		if (null == value) {
-			return defaultVale;
-		}
-		if (value.equals("true")) {
-			return true;
-		} else if (value.equals("false")) {
-			return false;
-		} else {
-			return defaultVale;
-		}
-	}
-}

+ 0 - 154
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/QmthUtil.java

@@ -1,154 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 启明泰和-接口安全工具
- *
- * @author WANGWEI
- * @date 2018年11月23日
- * @Copyright (c) 2018-2020 WANGWEI [QQ:522080330] All Rights Reserved.
- */
-public class QmthUtil {
-
-	/**
-	 * 获取安全请求头信息
-	 *
-	 * @author WANGWEI
-	 * @return
-	 */
-	public static Map<String, String> getSecurityHeaders() {
-
-		long timestamp = System.currentTimeMillis();
-		String rootOrgId = String.valueOf(getRootOrgId());
-		String appId = PropertiesUtil.getString("qmth.appId");
-		String secretKey = PropertiesUtil.getString("qmth.secretKey");
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(rootOrgId).append(appId).append(timestamp).append(secretKey);
-
-		byte[] bytes = SHA256.encode(sb.toString());
-		String accessToken = ByteUtil.toHexAscii(bytes);
-
-		Map<String, String> headers = new HashMap<String, String>();
-
-		headers.put("rootOrgId", String.valueOf(rootOrgId));
-		headers.put("timestamp", String.valueOf(timestamp));
-		headers.put("appId", appId);
-		headers.put("access_token", accessToken);
-
-		return headers;
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @return
-	 */
-	public static Long getRootOrgId() {
-		Long rootOrgId = PropertiesUtil.getLong("qmth.rootOrgId", -1L);
-		return rootOrgId;
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param args
-	 */
-	public static String buildCommonUserAccessUrl(String loginName) {
-		String rootOrgId = String.valueOf(getRootOrgId());
-		long timestamp = System.currentTimeMillis();
-		String appId = PropertiesUtil.getString("qmth.appId");
-		String secretKey = PropertiesUtil.getString("qmth.secretKey");
-		String accessUrl = PropertiesUtil.getString("qmth.commonUserAccessUrl");
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(loginName).append(rootOrgId).append(appId).append(timestamp).append(secretKey);
-
-		byte[] bytes = SHA256.encode(sb.toString());
-		String accessToken = ByteUtil.toHexAscii(bytes);
-
-		StringBuilder params = new StringBuilder();
-		params.append("loginName").append("=").append(urlEncode(loginName));
-		params.append("&").append("orgId").append("=").append(rootOrgId);
-		params.append("&").append("appId").append("=").append(appId);
-		params.append("&").append("timestamp").append("=").append(timestamp);
-		params.append("&").append("token").append("=").append(accessToken);
-
-		return accessUrl + "?" + params.toString();
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param args
-	 */
-	public static String buildStudentAccessUrl(String accountType, String accountValue) {
-		String rootOrgId = String.valueOf(getRootOrgId());
-		long timestamp = System.currentTimeMillis();
-		String appId = PropertiesUtil.getString("qmth.appId");
-		String secretKey = PropertiesUtil.getString("qmth.secretKey");
-		String accessUrl = PropertiesUtil.getString("qmth.studentAccessUrl");
-
-		StringBuilder sb = new StringBuilder();
-		sb.append(accountType).append(accountValue).append(rootOrgId).append(appId)
-				.append(timestamp).append(secretKey);
-
-		byte[] bytes = SHA256.encode(sb.toString());
-		String accessToken = ByteUtil.toHexAscii(bytes);
-
-		StringBuilder params = new StringBuilder();
-		params.append("accountType").append("=").append(urlEncode(accountType));
-		params.append("&").append("accountValue").append("=").append(urlEncode(accountValue));
-		params.append("&").append("rootOrgId").append("=").append(rootOrgId);
-		params.append("&").append("appId").append("=").append(appId);
-		params.append("&").append("timestamp").append("=").append(timestamp);
-		params.append("&").append("token").append("=").append(accessToken);
-
-		return accessUrl + "?" + params.toString();
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param s
-	 * @return
-	 */
-	private static String urlEncode(String s) {
-		try {
-			return URLEncoder.encode(s, "UTF-8");
-		} catch (UnsupportedEncodingException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * 构建URL
-	 *
-	 * @author WANGWEI
-	 * @param uri
-	 * @return
-	 */
-	public static String buildUrl(String uri) {
-		String host = PropertiesUtil.getString("qmth.server.host");
-		String port = PropertiesUtil.getString("qmth.server.port");
-		StringBuilder sb = new StringBuilder();
-
-		sb.append("http://").append(host).append(":").append(port);
-
-		if (!uri.startsWith("/")) {
-			sb.append("/");
-		}
-		sb.append(uri);
-
-		return sb.toString();
-	}
-
-}

+ 0 - 67
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/ResourceLoader.java

@@ -1,67 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.apache.commons.io.IOUtils;
-
-/**
- * 类注释
- *
- * @author WANGWEI
- */
-public class ResourceLoader {
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param resourceName
-	 * @return
-	 */
-	public static String getResource(String resourceName) {
-		InputStream is = null;
-		try {
-			is = ResourceLoader.class.getClassLoader().getResourceAsStream(resourceName);
-			if (null == is) {
-				throw new RuntimeException(
-						"Resource could not be found. resource name is '" + resourceName + "'.");
-			}
-			return IOUtils.toString(is, "UTF-8");
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(is);
-		}
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author WANGWEI
-	 * @param resourceName
-	 * @return
-	 */
-	public static String getResourceWithoutBlank(String resourceName) {
-		InputStream is = null;
-		BufferedReader br = null;
-		try {
-			is = ResourceLoader.class.getClassLoader().getResourceAsStream(resourceName);
-			br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
-			StringBuilder sb = new StringBuilder();
-			String line = null;
-			while (null != (line = br.readLine())) {
-				sb.append(line.trim());
-			}
-
-			return sb.toString();
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		} finally {
-			IOUtils.closeQuietly(br);
-			IOUtils.closeQuietly(is);
-		}
-	}
-}

+ 0 - 25
examcloud-java-sdk/src/main/java/cn/com/qmth/sdk/util/SHA256.java

@@ -1,25 +0,0 @@
-package cn.com.qmth.sdk.util;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-/**
- * SHA256加密
- * 
- * @author WANGWEI
- *
- */
-public class SHA256 {
-
-	public static byte[] encode(String str) {
-		MessageDigest messageDigest;
-		try {
-			messageDigest = MessageDigest.getInstance("SHA-256");
-		} catch (NoSuchAlgorithmException e) {
-			throw new RuntimeException(e);
-		}
-		messageDigest.update(str.getBytes());
-		return messageDigest.digest();
-	}
-
-}

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini