wangwei 6 yıl önce
ebeveyn
işleme
1ac3fb3793
93 değiştirilmiş dosya ile 4239 ekleme ve 8 silme
  1. 12 0
      .gitignore
  2. 20 0
      examcloud-core-basic-api-client/pom.xml
  3. 16 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/BasicCloudClientSupport.java
  4. 40 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/CommonCloudServiceClient.java
  5. 54 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/CourseCloudServiceClient.java
  6. 44 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/DemoCloudServiceClient.java
  7. 60 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/OrgCloudServiceClient.java
  8. 47 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentCloudServiceClient.java
  9. 46 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentFaceCloudServiceClient.java
  10. 52 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/UserCloudServiceClient.java
  11. 19 0
      examcloud-core-basic-api/pom.xml
  12. 26 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/CommonCloudService.java
  13. 35 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/CourseCloudService.java
  14. 17 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/DemoCloudService.java
  15. 27 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/OrgCloudService.java
  16. 24 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/RolePrivilegeCloudService.java
  17. 29 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentCloudService.java
  18. 18 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentFaceCloudService.java
  19. 37 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/UserCloudService.java
  20. 69 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/CourseBean.java
  21. 74 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/OrgBean.java
  22. 60 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/RoleBean.java
  23. 165 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/StudentBean.java
  24. 68 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/ThirdPartyAccessBean.java
  25. 109 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/UserBean.java
  26. 68 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/AddUserReq.java
  27. 50 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetCourseReq.java
  28. 29 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetOrgListByNameLikeReq.java
  29. 39 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetOrgReq.java
  30. 48 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetStudentReq.java
  31. 29 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetThirdPartyAccessInfoReq.java
  32. 29 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetUserReq.java
  33. 33 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetXxxReq.java
  34. 139 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/InsertOrUpdateStudentReq.java
  35. 84 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveCourseReq.java
  36. 41 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveOrgReq.java
  37. 76 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveStudentFaceInfoReq.java
  38. 26 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/AddUserResp.java
  39. 27 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetCourseResp.java
  40. 22 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetOrgListByNameLikeResp.java
  41. 20 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetOrgResp.java
  42. 20 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetStudentResp.java
  43. 20 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetThirdPartyAccessInfoResp.java
  44. 30 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetUserResp.java
  45. 23 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetXxxResp.java
  46. 59 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/InsertOrUpdateStudentResp.java
  47. 20 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveCourseResp.java
  48. 25 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveOrgResp.java
  49. 29 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveStudentFaceInfoResp.java
  50. 20 0
      examcloud-core-examwork-api-client/pom.xml
  51. 16 0
      examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/BasicCloudClientSupport.java
  52. 65 0
      examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamCloudServiceClient.java
  53. 40 0
      examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamStudentCloudServiceClient.java
  54. 18 0
      examcloud-core-examwork-api/pom.xml
  55. 55 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamCloudService.java
  56. 24 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamStudentCloudService.java
  57. 148 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/bean/ExamBean.java
  58. 148 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/bean/ExamStudentBean.java
  59. 39 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamPropertyReq.java
  60. 54 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamReq.java
  61. 103 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SaveExamReq.java
  62. 224 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SaveExamStudentReq.java
  63. 49 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SetExamPropertyReq.java
  64. 49 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamPropertyResp.java
  65. 37 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamResp.java
  66. 19 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamResp.java
  67. 20 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamStudentResp.java
  68. 19 0
      examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SetExamPropertyResp.java
  69. 18 0
      examcloud-exchange-inner-api-client/pom.xml
  70. 16 0
      examcloud-exchange-inner-api-client/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/client/ExchangeCloudClientSupport.java
  71. 52 0
      examcloud-exchange-inner-api-client/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/client/SendSmsServiceClient.java
  72. 18 0
      examcloud-exchange-inner-api/pom.xml
  73. 30 0
      examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/SendSmsCloudService.java
  74. 31 0
      examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/request/CheckSmsCodeReq.java
  75. 85 0
      examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/request/SendSmsReq.java
  76. 32 0
      examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/response/CheckIdentifyingCodeResp.java
  77. 32 0
      examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/response/SendSmsResp.java
  78. 18 0
      examcloud-task-api-client/pom.xml
  79. 75 0
      examcloud-task-api-client/src/main/java/cn/com/qmth/examcloud/task/api/client/DataSyncCloudServiceClient.java
  80. 16 0
      examcloud-task-api-client/src/main/java/cn/com/qmth/examcloud/task/api/client/TaskCloudClientSupport.java
  81. 18 0
      examcloud-task-api/pom.xml
  82. 69 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/DataSyncCloudService.java
  83. 69 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncCourseReq.java
  84. 8 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncExamReq.java
  85. 69 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncOrgReq.java
  86. 59 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncSpecialtyReq.java
  87. 165 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncStudentReq.java
  88. 9 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncCourseResp.java
  89. 9 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncExamResp.java
  90. 9 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncOrgResp.java
  91. 9 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncSpecialtyResp.java
  92. 9 0
      examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncStudentResp.java
  93. 13 8
      pom.xml

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+.project
+.classpath
+.settings
+target/
+.idea/
+*.iml
+*test/
+# Package Files #
+*.jar
+logs/
+
+

+ 20 - 0
examcloud-core-basic-api-client/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-core-basic-api-client</artifactId>
+	<packaging>jar</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-core-basic-api</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+</project>

+ 16 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/BasicCloudClientSupport.java

@@ -0,0 +1,16 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import cn.com.qmth.examcloud.commons.web.support.CloudClientSupport;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public abstract class BasicCloudClientSupport extends CloudClientSupport {
+
+	@Override
+	public String getUrlPrefix() {
+		return "http://EC_CORE_BASIC/api/core/basic/";
+	}
+
+}

+ 40 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/CommonCloudServiceClient.java

@@ -0,0 +1,40 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.CommonCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetThirdPartyAccessInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetThirdPartyAccessInfoResp;
+
+@Service
+public class CommonCloudServiceClient extends BasicCloudClientSupport
+		implements
+			CommonCloudService {
+
+	private static final long serialVersionUID = 6826389318398035229L;
+
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public GetThirdPartyAccessInfoResp getThirdPartyAccessInfo(GetThirdPartyAccessInfoReq req) {
+		return post("common/getThirdPartyAccessInfo", req, GetThirdPartyAccessInfoResp.class);
+	}
+
+}

+ 54 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/CourseCloudServiceClient.java

@@ -0,0 +1,54 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.CourseCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetCourseReq;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveCourseReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetCourseResp;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveCourseResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Service
+public class CourseCloudServiceClient extends BasicCloudClientSupport
+		implements
+			CourseCloudService {
+
+	private static final long serialVersionUID = -5246359107103119265L;
+
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SaveCourseResp saveCourse(SaveCourseReq req) {
+		return post("course/saveCourse", req, SaveCourseResp.class);
+	}
+
+	@Override
+	public GetCourseResp getCourse(GetCourseReq req) {
+		return post("course/getCourse", req, GetCourseResp.class);
+	}
+
+}

+ 44 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/DemoCloudServiceClient.java

@@ -0,0 +1,44 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.DemoCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetXxxReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetXxxResp;
+
+/**
+ * demo 云服务客户端
+ * 
+ * @author WANGWEI
+ *
+ */
+@Service
+public class DemoCloudServiceClient extends BasicCloudClientSupport implements DemoCloudService {
+
+	private static final long serialVersionUID = -7456923008162697199L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	public GetXxxResp getXxx(GetXxxReq req) {
+		return post("demo/getXxx", req, GetXxxResp.class);
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+}

+ 60 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/OrgCloudServiceClient.java

@@ -0,0 +1,60 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetOrgListByNameLikeReq;
+import cn.com.qmth.examcloud.core.basic.api.request.GetOrgReq;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveOrgReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetOrgListByNameLikeResp;
+import cn.com.qmth.examcloud.core.basic.api.response.GetOrgResp;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveOrgResp;
+
+/**
+ * 机构服务客户端
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午3:28:53
+ * @company QMTH
+ * @description OrgCloudServiceClient.java
+ */
+@Service
+public class OrgCloudServiceClient extends BasicCloudClientSupport implements OrgCloudService {
+
+	private static final long serialVersionUID = -1608540743867447624L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SaveOrgResp saveOrg(SaveOrgReq orgReq) {
+		return post("org/saveOrg", orgReq, SaveOrgResp.class);
+	}
+
+	@Override
+	public GetOrgListByNameLikeResp getOrgListByNameLike(GetOrgListByNameLikeReq req) {
+		return post("org/getOrgListByNameLike", req, GetOrgListByNameLikeResp.class);
+	}
+
+	@Override
+	public GetOrgResp getOrg(GetOrgReq req) {
+		return post("org/getOrg", req, GetOrgResp.class);
+	}
+
+}

+ 47 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentCloudServiceClient.java

@@ -0,0 +1,47 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetStudentReq;
+import cn.com.qmth.examcloud.core.basic.api.request.InsertOrUpdateStudentReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetStudentResp;
+import cn.com.qmth.examcloud.core.basic.api.response.InsertOrUpdateStudentResp;
+
+@Service
+public class StudentCloudServiceClient extends BasicCloudClientSupport
+		implements
+			StudentCloudService {
+
+	private static final long serialVersionUID = 7669672850482842766L;
+
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public InsertOrUpdateStudentResp insertOrUpdateStudent(InsertOrUpdateStudentReq studentReq) {
+		return post("student/insertOrUpdateStudent", studentReq, InsertOrUpdateStudentResp.class);
+	}
+
+	@Override
+	public GetStudentResp getStudent(GetStudentReq req) {
+		return post("student/getStudent", req, GetStudentResp.class);
+	}
+
+}

+ 46 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentFaceCloudServiceClient.java

@@ -0,0 +1,46 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.StudentFaceCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentFaceInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentFaceInfoResp;
+
+/**
+ * demo 云服务客户端
+ * 
+ * @author WANGWEI
+ *
+ */
+@Service
+public class StudentFaceCloudServiceClient extends BasicCloudClientSupport
+		implements
+			StudentFaceCloudService {
+
+	private static final long serialVersionUID = -7456923008162697199L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SaveStudentFaceInfoResp saveStudentFaceInfo(SaveStudentFaceInfoReq req) {
+		return post("studentFace/saveStudentFaceInfo", req, SaveStudentFaceInfoResp.class);
+	}
+
+}

+ 52 - 0
examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/UserCloudServiceClient.java

@@ -0,0 +1,52 @@
+package cn.com.qmth.examcloud.core.basic.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.core.basic.api.UserCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.AddUserReq;
+import cn.com.qmth.examcloud.core.basic.api.request.GetUserReq;
+import cn.com.qmth.examcloud.core.basic.api.response.AddUserResp;
+import cn.com.qmth.examcloud.core.basic.api.response.GetUserResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Service
+public class UserCloudServiceClient extends BasicCloudClientSupport implements UserCloudService {
+
+	private static final long serialVersionUID = 5562847036151453132L;
+
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public AddUserResp addUser(AddUserReq req) {
+		return post("user/addUser", req, AddUserResp.class);
+	}
+
+	@Override
+	public GetUserResp getUser(GetUserReq req) {
+		return post("user/getUser", req, GetUserResp.class);
+	}
+
+}

+ 19 - 0
examcloud-core-basic-api/pom.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-core-basic-api</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-web</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+</project>

+ 26 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/CommonCloudService.java

@@ -0,0 +1,26 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetThirdPartyAccessInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetThirdPartyAccessInfoResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月5日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface CommonCloudService extends CloudService {
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param rootOrgId
+	 * @param appId
+	 * @return
+	 */
+	GetThirdPartyAccessInfoResp getThirdPartyAccessInfo(GetThirdPartyAccessInfoReq req);
+
+}

+ 35 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/CourseCloudService.java

@@ -0,0 +1,35 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetCourseReq;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveCourseReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetCourseResp;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveCourseResp;
+
+/**
+ * 课程服务
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午4:01:09
+ * @company QMTH
+ * @description CourseCloudService.java
+ */
+public interface CourseCloudService extends CloudService {
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	GetCourseResp getCourse(GetCourseReq req);
+
+	/**
+	 * 保存课程
+	 * 
+	 * @param courseReq
+	 */
+	SaveCourseResp saveCourse(SaveCourseReq req);
+
+}

+ 17 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/DemoCloudService.java

@@ -0,0 +1,17 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetXxxReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetXxxResp;
+
+/**
+ * demo 云服务接口
+ * 
+ * @author WANG
+ *
+ */
+public interface DemoCloudService extends CloudService {
+
+	GetXxxResp getXxx(GetXxxReq req);
+
+}

+ 27 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/OrgCloudService.java

@@ -0,0 +1,27 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetOrgListByNameLikeReq;
+import cn.com.qmth.examcloud.core.basic.api.request.GetOrgReq;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveOrgReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetOrgListByNameLikeResp;
+import cn.com.qmth.examcloud.core.basic.api.response.GetOrgResp;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveOrgResp;
+
+/**
+ * 机构服务
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午3:27:55
+ * @company QMTH
+ * @description OrgCloudService.java
+ */
+public interface OrgCloudService extends CloudService {
+
+	GetOrgResp getOrg(GetOrgReq req);
+
+	SaveOrgResp saveOrg(SaveOrgReq orgReq);
+
+	GetOrgListByNameLikeResp getOrgListByNameLike(GetOrgListByNameLikeReq req);
+
+}

+ 24 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/RolePrivilegeCloudService.java

@@ -0,0 +1,24 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.bean.RoleBean;
+
+/**
+ * 角色权限云服务
+ * 
+ * @author WANGWEI
+ *
+ */
+public interface RolePrivilegeCloudService extends CloudService {
+
+	/**
+	 * 获取所有角色
+	 *
+	 * @author WANGWEI
+	 * @return
+	 */
+	List<RoleBean> getAllRoles(Boolean withSuperAdmin);
+
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentCloudService.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.GetStudentReq;
+import cn.com.qmth.examcloud.core.basic.api.request.InsertOrUpdateStudentReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetStudentResp;
+import cn.com.qmth.examcloud.core.basic.api.response.InsertOrUpdateStudentResp;
+
+/**
+ * 学生接口服务
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午5:10:40
+ * @company QMTH
+ * @description StudentCloudService.java
+ */
+public interface StudentCloudService extends CloudService {
+
+	/**
+	 * 插入或更新学生
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 */
+	InsertOrUpdateStudentResp insertOrUpdateStudent(InsertOrUpdateStudentReq req);
+
+	GetStudentResp getStudent(GetStudentReq req);
+
+}

+ 18 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentFaceCloudService.java

@@ -0,0 +1,18 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.SaveStudentFaceInfoReq;
+import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentFaceInfoResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface StudentFaceCloudService extends CloudService {
+
+	SaveStudentFaceInfoResp saveStudentFaceInfo(SaveStudentFaceInfoReq req);
+
+}

+ 37 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/UserCloudService.java

@@ -0,0 +1,37 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.AddUserReq;
+import cn.com.qmth.examcloud.core.basic.api.request.GetUserReq;
+import cn.com.qmth.examcloud.core.basic.api.response.AddUserResp;
+import cn.com.qmth.examcloud.core.basic.api.response.GetUserResp;
+
+/**
+ * 学生接口服务
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午5:10:40
+ * @company QMTH
+ * @description StudentCloudService.java
+ */
+public interface UserCloudService extends CloudService {
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	AddUserResp addUser(AddUserReq req);
+
+	/**
+	 * 方法注释
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	GetUserResp getUser(GetUserReq req);
+
+}

+ 69 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/CourseBean.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+public class CourseBean implements JsonSerializable {
+
+	private static final long serialVersionUID = -6261302618070108336L;
+
+	private Long rootOrgId;
+
+	private Long id;
+
+	private String code;
+
+	private String name;
+
+	private String level;
+
+	private Boolean enable;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getLevel() {
+		return level;
+	}
+
+	public void setLevel(String level) {
+		this.level = level;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 74 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/OrgBean.java

@@ -0,0 +1,74 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import java.io.Serializable;
+
+/**
+ * 
+ * @author WANG
+ *
+ */
+public class OrgBean implements Serializable {
+
+	private static final long serialVersionUID = -4045967342902486442L;
+
+	private Long id;
+
+	private Long rootId;
+
+	private Long parentId;
+
+	private Integer level;
+
+	private String name;
+
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getRootId() {
+		return rootId;
+	}
+
+	public void setRootId(Long rootId) {
+		this.rootId = rootId;
+	}
+
+	public Long getParentId() {
+		return parentId;
+	}
+
+	public void setParentId(Long parentId) {
+		this.parentId = parentId;
+	}
+
+	public Integer getLevel() {
+		return level;
+	}
+
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 60 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/RoleBean.java

@@ -0,0 +1,60 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年5月25日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class RoleBean implements JsonSerializable {
+
+	private static final long serialVersionUID = -916123953402843015L;
+
+	private Long roleId;
+
+	private String roleCode;
+
+	private String roleName;
+
+	public RoleBean() {
+	}
+
+	public RoleBean(Long roleId, String roleCode, String roleName) {
+		super();
+		this.roleId = roleId;
+		this.roleCode = roleCode;
+		this.roleName = roleName;
+	}
+
+	public Long getRoleId() {
+		return roleId;
+	}
+
+	public void setRoleId(Long roleId) {
+		this.roleId = roleId;
+	}
+
+	public String getRoleCode() {
+		return roleCode;
+	}
+
+	public void setRoleCode(String roleCode) {
+		this.roleCode = roleCode;
+	}
+
+	public String getRoleName() {
+		return roleName;
+	}
+
+	public void setRoleName(String roleName) {
+		this.roleName = roleName;
+	}
+
+	public static long getSerialversionuid() {
+		return serialVersionUID;
+	}
+
+}

+ 165 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/StudentBean.java

@@ -0,0 +1,165 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+public class StudentBean implements JsonSerializable {
+
+	private static final long serialVersionUID = -5365301843181593678L;
+
+	/**
+	 * 学生ID
+	 */
+	private Long id;
+
+	/**
+	 * 学生姓名
+	 */
+	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 photoPath;
+
+	/**
+	 * 手机号码
+	 */
+	private String phoneNumber;
+
+	/**
+	 * 安全手机号码(用于登录)
+	 */
+	private String securityPhone;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	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 getPhotoPath() {
+		return photoPath;
+	}
+
+	public void setPhotoPath(String photoPath) {
+		this.photoPath = photoPath;
+	}
+
+	public String getPhoneNumber() {
+		return phoneNumber;
+	}
+
+	public void setPhoneNumber(String phoneNumber) {
+		this.phoneNumber = phoneNumber;
+	}
+
+	public String getSecurityPhone() {
+		return securityPhone;
+	}
+
+	public void setSecurityPhone(String securityPhone) {
+		this.securityPhone = securityPhone;
+	}
+
+}

+ 68 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/ThirdPartyAccessBean.java

@@ -0,0 +1,68 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 第三方接入信息
+ *
+ * @author WANGWEI
+ * @date 2018年7月5日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class ThirdPartyAccessBean implements JsonSerializable {
+
+	private static final long serialVersionUID = 9212710623859419481L;
+
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 应用ID
+	 */
+	private String appId;
+
+	/**
+	 * 密钥
+	 */
+	private String secretKey;
+
+	/**
+	 * 时间差范围
+	 */
+	private long timeRange;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+	public String getSecretKey() {
+		return secretKey;
+	}
+
+	public void setSecretKey(String secretKey) {
+		this.secretKey = secretKey;
+	}
+
+	public long getTimeRange() {
+		return timeRange;
+	}
+
+	public void setTimeRange(long timeRange) {
+		this.timeRange = timeRange;
+	}
+
+}

+ 109 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/bean/UserBean.java

@@ -0,0 +1,109 @@
+package cn.com.qmth.examcloud.core.basic.api.bean;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年5月25日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class UserBean implements JsonSerializable {
+
+	private static final long serialVersionUID = -4157068941699776174L;
+
+	/**
+	 * 用户ID
+	 */
+	private Long userId;
+
+	/**
+	 * 显示名
+	 */
+	private String displayName;
+
+	/**
+	 * 顶级机构(学校)ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 顶级机构(学校)名称
+	 */
+	private String rootOrgName;
+
+	/**
+	 * 学习中心 ID
+	 */
+	private Long orgId;
+
+	/**
+	 * 学习中心名称
+	 */
+	private String orgName;
+
+	/**
+	 * 角色集合
+	 */
+	private List<RoleBean> roleList;
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	public String getDisplayName() {
+		return displayName;
+	}
+
+	public void setDisplayName(String displayName) {
+		this.displayName = displayName;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getRootOrgName() {
+		return rootOrgName;
+	}
+
+	public void setRootOrgName(String rootOrgName) {
+		this.rootOrgName = rootOrgName;
+	}
+
+	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;
+	}
+
+	public List<RoleBean> getRoleList() {
+		return roleList;
+	}
+
+	public void setRoleList(List<RoleBean> roleList) {
+		this.roleList = roleList;
+	}
+
+}

+ 68 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/AddUserReq.java

@@ -0,0 +1,68 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月20日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class AddUserReq extends BaseRequest {
+
+	private static final long serialVersionUID = -3083507251640320616L;
+
+	private Long rootOrgId;
+
+	private String loginName;
+
+	private String password;
+
+	private String name;
+
+	private List<String> roleCodeList;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getLoginName() {
+		return loginName;
+	}
+
+	public void setLoginName(String loginName) {
+		this.loginName = loginName;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public List<String> getRoleCodeList() {
+		return roleCodeList;
+	}
+
+	public void setRoleCodeList(List<String> roleCodeList) {
+		this.roleCodeList = roleCodeList;
+	}
+
+}

+ 50 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetCourseReq.java

@@ -0,0 +1,50 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class GetCourseReq extends BaseRequest {
+
+	private static final long serialVersionUID = 1519674389621637131L;
+
+	private Long rootOrgId;
+
+	private Long id;
+
+	private String code;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public static long getSerialversionuid() {
+		return serialVersionUID;
+	}
+
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetOrgListByNameLikeReq.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetOrgListByNameLikeReq extends BaseRequest {
+
+	private static final long serialVersionUID = 612496100625952940L;
+
+	private String rootOrgId;
+
+	private String orgName;
+
+	public String getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(String rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getOrgName() {
+		return orgName;
+	}
+
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
+	}
+
+}

+ 39 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetOrgReq.java

@@ -0,0 +1,39 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetOrgReq extends BaseRequest {
+
+	private static final long serialVersionUID = 8860061888831487546L;
+
+	private Long orgId;
+
+	private String orgCode;
+
+	private Long 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 Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+}

+ 48 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetStudentReq.java

@@ -0,0 +1,48 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetStudentReq extends BaseRequest {
+
+	private static final long serialVersionUID = 2135618523755240278L;
+
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 学生code
+	 */
+	private String studentCode;
+
+	/**
+	 * 身份证号码
+	 */
+	private String identityNumber;
+
+	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;
+	}
+
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetThirdPartyAccessInfoReq.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetThirdPartyAccessInfoReq extends BaseRequest {
+
+	private static final long serialVersionUID = -8087094118667193680L;
+
+	private Long rootOrgId;
+
+	private String appId;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetUserReq.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetUserReq extends BaseRequest {
+
+	private static final long serialVersionUID = 6450873611171541831L;
+
+	private Long rootOrgId;
+
+	private String loginName;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getLoginName() {
+		return loginName;
+	}
+
+	public void setLoginName(String loginName) {
+		this.loginName = loginName;
+	}
+
+}

+ 33 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/GetXxxReq.java

@@ -0,0 +1,33 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public class GetXxxReq extends BaseRequest {
+
+	private static final long serialVersionUID = -6925630706679571172L;
+
+	private String f1;
+
+	private int f2;
+
+	public String getF1() {
+		return f1;
+	}
+
+	public void setF1(String f1) {
+		this.f1 = f1;
+	}
+
+	public int getF2() {
+		return f2;
+	}
+
+	public void setF2(int f2) {
+		this.f2 = f2;
+	}
+
+}

+ 139 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/InsertOrUpdateStudentReq.java

@@ -0,0 +1,139 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class InsertOrUpdateStudentReq extends BaseRequest {
+
+	private static final long serialVersionUID = 9066273303019460160L;
+
+	/**
+	 * 学生姓名
+	 */
+	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 photoPath;
+
+	/**
+	 * 手机号码
+	 */
+	private String phoneNumber;
+
+	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 getPhotoPath() {
+		return photoPath;
+	}
+
+	public void setPhotoPath(String photoPath) {
+		this.photoPath = photoPath;
+	}
+
+	public String getPhoneNumber() {
+		return phoneNumber;
+	}
+
+	public void setPhoneNumber(String phoneNumber) {
+		this.phoneNumber = phoneNumber;
+	}
+
+}

+ 84 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveCourseReq.java

@@ -0,0 +1,84 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SaveCourseReq extends BaseRequest {
+
+	private static final long serialVersionUID = -814368725579588751L;
+
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 课程ID
+	 */
+	private Long courseId;
+
+	/**
+	 * 课程code
+	 */
+	private String courseCode;
+
+	/**
+	 * 课程name
+	 */
+	private String courseName;
+
+	/**
+	 * 课程level
+	 */
+	private String courseLevel;
+
+	private Boolean enable;
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public Long getCourseId() {
+		return courseId;
+	}
+
+	public void setCourseId(Long courseId) {
+		this.courseId = courseId;
+	}
+
+	public String getCourseCode() {
+		return courseCode;
+	}
+
+	public void setCourseCode(String courseCode) {
+		this.courseCode = courseCode;
+	}
+
+	public String getCourseName() {
+		return courseName;
+	}
+
+	public void setCourseName(String courseName) {
+		this.courseName = courseName;
+	}
+
+	public String getCourseLevel() {
+		return courseLevel;
+	}
+
+	public void setCourseLevel(String courseLevel) {
+		this.courseLevel = courseLevel;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 41 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveOrgReq.java

@@ -0,0 +1,41 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SaveOrgReq  extends BaseRequest {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7946303617489697283L;
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+	/**
+	 * 机构code
+	 */
+	private String orgCode;
+	/**
+	 * 机构名称
+	 */
+	private String orgName;
+	
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+	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;
+	}
+}

+ 76 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/SaveStudentFaceInfoReq.java

@@ -0,0 +1,76 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class SaveStudentFaceInfoReq extends BaseRequest {
+
+	private static final long serialVersionUID = -8260481601116583797L;
+
+	private Long rootOrgId;
+
+	private Long studentId;
+
+	private String faceToken;
+
+	private String faceSetToken;
+
+	private String photoPath;
+
+	private String operator;
+
+	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 getFaceToken() {
+		return faceToken;
+	}
+
+	public void setFaceToken(String faceToken) {
+		this.faceToken = faceToken;
+	}
+
+	public String getFaceSetToken() {
+		return faceSetToken;
+	}
+
+	public void setFaceSetToken(String faceSetToken) {
+		this.faceSetToken = faceSetToken;
+	}
+
+	public String getPhotoPath() {
+		return photoPath;
+	}
+
+	public void setPhotoPath(String photoPath) {
+		this.photoPath = photoPath;
+	}
+
+	public String getOperator() {
+		return operator;
+	}
+
+	public void setOperator(String operator) {
+		this.operator = operator;
+	}
+
+}

+ 26 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/AddUserResp.java

@@ -0,0 +1,26 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月20日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class AddUserResp extends BaseResponse {
+
+	private static final long serialVersionUID = -9143409387667411757L;
+
+	private Long userId;
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+}

+ 27 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetCourseResp.java

@@ -0,0 +1,27 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class GetCourseResp extends BaseResponse {
+
+	private static final long serialVersionUID = -572585864968338068L;
+
+	private CourseBean courseBean;
+
+	public CourseBean getCourseBean() {
+		return courseBean;
+	}
+
+	public void setCourseBean(CourseBean courseBean) {
+		this.courseBean = courseBean;
+	}
+
+}

+ 22 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetOrgListByNameLikeResp.java

@@ -0,0 +1,22 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.OrgBean;
+
+public class GetOrgListByNameLikeResp extends BaseResponse {
+
+	private static final long serialVersionUID = -4635477352326141785L;
+
+	List<OrgBean> orgList;
+
+	public List<OrgBean> getOrgList() {
+		return orgList;
+	}
+
+	public void setOrgList(List<OrgBean> orgList) {
+		this.orgList = orgList;
+	}
+
+}

+ 20 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetOrgResp.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.OrgBean;
+
+public class GetOrgResp extends BaseResponse {
+
+	private static final long serialVersionUID = -2625382462279650240L;
+
+	private OrgBean org;
+
+	public OrgBean getOrg() {
+		return org;
+	}
+
+	public void setOrg(OrgBean org) {
+		this.org = org;
+	}
+
+}

+ 20 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetStudentResp.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.StudentBean;
+
+public class GetStudentResp extends BaseResponse {
+
+	private static final long serialVersionUID = 7197179106056569555L;
+
+	private StudentBean studentInfo;
+
+	public StudentBean getStudentInfo() {
+		return studentInfo;
+	}
+
+	public void setStudentInfo(StudentBean studentInfo) {
+		this.studentInfo = studentInfo;
+	}
+
+}

+ 20 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetThirdPartyAccessInfoResp.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.ThirdPartyAccessBean;
+
+public class GetThirdPartyAccessInfoResp extends BaseResponse {
+
+	private static final long serialVersionUID = -5868292504966057746L;
+
+	private ThirdPartyAccessBean thirdPartyAccessBean;
+
+	public ThirdPartyAccessBean getThirdPartyAccessBean() {
+		return thirdPartyAccessBean;
+	}
+
+	public void setThirdPartyAccessBean(ThirdPartyAccessBean thirdPartyAccessBean) {
+		this.thirdPartyAccessBean = thirdPartyAccessBean;
+	}
+
+}

+ 30 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetUserResp.java

@@ -0,0 +1,30 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.UserBean;
+
+public class GetUserResp extends BaseResponse {
+
+	private static final long serialVersionUID = -2113393945721693679L;
+
+	private Boolean existing;
+
+	private UserBean userBean;
+
+	public Boolean getExisting() {
+		return existing;
+	}
+
+	public void setExisting(Boolean existing) {
+		this.existing = existing;
+	}
+
+	public UserBean getUserBean() {
+		return userBean;
+	}
+
+	public void setUserBean(UserBean userBean) {
+		this.userBean = userBean;
+	}
+
+}

+ 23 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/GetXxxResp.java

@@ -0,0 +1,23 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public class GetXxxResp extends BaseResponse {
+
+	private static final long serialVersionUID = -6925630706679571172L;
+
+	private String s;
+
+	public String getS() {
+		return s;
+	}
+
+	public void setS(String s) {
+		this.s = s;
+	}
+
+}

+ 59 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/InsertOrUpdateStudentResp.java

@@ -0,0 +1,59 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年6月29日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class InsertOrUpdateStudentResp extends BaseResponse {
+
+	/**
+	 * 属性注释
+	 */
+	private static final long serialVersionUID = 2263704597882102664L;
+
+	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;
+	}
+
+}

+ 20 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveCourseResp.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
+
+public class SaveCourseResp extends BaseResponse {
+
+	private static final long serialVersionUID = -6692031428275657695L;
+
+	private CourseBean courseBean;
+
+	public CourseBean getCourseBean() {
+		return courseBean;
+	}
+
+	public void setCourseBean(CourseBean courseBean) {
+		this.courseBean = courseBean;
+	}
+
+}

+ 25 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveOrgResp.java

@@ -0,0 +1,25 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+public class SaveOrgResp {
+
+	private Long id;
+	
+	private String name;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+}

+ 29 - 0
examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/SaveStudentFaceInfoResp.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月18日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class SaveStudentFaceInfoResp extends BaseResponse {
+
+	/**
+	 * 属性注释
+	 */
+	private static final long serialVersionUID = 731016458089573829L;
+
+	private Long id;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+}

+ 20 - 0
examcloud-core-examwork-api-client/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-core-examwork-api-client</artifactId>
+	<packaging>jar</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-core-examwork-api</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+</project>

+ 16 - 0
examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/BasicCloudClientSupport.java

@@ -0,0 +1,16 @@
+package cn.com.qmth.examcloud.examwork.api.client;
+
+import cn.com.qmth.examcloud.commons.web.support.CloudClientSupport;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public abstract class BasicCloudClientSupport extends CloudClientSupport {
+
+	@Override
+	public String getUrlPrefix() {
+		return "http://EC_CORE_EXAMWORK/api/core/examwork/";
+	}
+
+}

+ 65 - 0
examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamCloudServiceClient.java

@@ -0,0 +1,65 @@
+package cn.com.qmth.examcloud.examwork.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SetExamPropertyResp;
+
+/**
+ * @author chenken
+ * @date 2018年5月3日 上午9:18:19
+ * @company QMTH
+ * @description ExamClient.java
+ */
+@Service
+public class ExamCloudServiceClient extends BasicCloudClientSupport implements ExamCloudService {
+
+	private static final long serialVersionUID = -2880611326177571371L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SaveExamResp saveExam(SaveExamReq req) {
+		return post("exam/saveExam", req, SaveExamResp.class);
+	}
+
+	@Override
+	public GetExamResp getExam(GetExamReq req) {
+		return post("exam/getExam", req, GetExamResp.class);
+	}
+
+	@Override
+	public SetExamPropertyResp setExamProperty(SetExamPropertyReq req) {
+		return post("exam/setExamProperty", req, SetExamPropertyResp.class);
+	}
+
+	@Override
+	public GetExamPropertyResp getExamProperty(GetExamPropertyReq req) {
+		return post("exam/getExamProperty", req, GetExamPropertyResp.class);
+	}
+
+}

+ 40 - 0
examcloud-core-examwork-api-client/src/main/java/cn/com/qmth/examcloud/examwork/api/client/ExamStudentCloudServiceClient.java

@@ -0,0 +1,40 @@
+package cn.com.qmth.examcloud.examwork.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.examwork.api.ExamStudentCloudService;
+import cn.com.qmth.examcloud.examwork.api.request.SaveExamStudentReq;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamStudentResp;
+
+@Service
+public class ExamStudentCloudServiceClient extends BasicCloudClientSupport
+		implements
+			ExamStudentCloudService {
+
+	private static final long serialVersionUID = -8874453764538303046L;
+
+	@Autowired
+	private RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	public SaveExamStudentResp saveExamStudent(SaveExamStudentReq examStudentReq) {
+		return post("examStudent/saveExamStudent", examStudentReq, SaveExamStudentResp.class);
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+}

+ 18 - 0
examcloud-core-examwork-api/pom.xml

@@ -0,0 +1,18 @@
+<?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>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-core-examwork-api</artifactId>
+	<packaging>jar</packaging>
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-web</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

+ 55 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamCloudService.java

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.examwork.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SaveExamReq;
+import cn.com.qmth.examcloud.examwork.api.request.SetExamPropertyReq;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
+import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamResp;
+import cn.com.qmth.examcloud.examwork.api.response.SetExamPropertyResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月6日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface ExamCloudService extends CloudService {
+
+	/**
+	 * 保存考试
+	 * 
+	 * @param exam
+	 */
+	SaveExamResp saveExam(SaveExamReq req);
+
+	/**
+	 * 查询考试
+	 * 
+	 * @param name
+	 * @return
+	 */
+	GetExamResp getExam(GetExamReq req);
+
+	/**
+	 * 设置考试属性配置
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SetExamPropertyResp setExamProperty(SetExamPropertyReq req);
+
+	/**
+	 * 获取考试属性配置
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	GetExamPropertyResp getExamProperty(GetExamPropertyReq req);
+
+}

+ 24 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/ExamStudentCloudService.java

@@ -0,0 +1,24 @@
+package cn.com.qmth.examcloud.examwork.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.examwork.api.request.SaveExamStudentReq;
+import cn.com.qmth.examcloud.examwork.api.response.SaveExamStudentResp;
+
+/**
+ * 考生信息服务
+ * 
+ * @author chenken
+ * @date 2018年5月4日 下午2:01:15
+ * @company QMTH
+ * @description ExamStudentCloudService.java
+ */
+public interface ExamStudentCloudService extends CloudService {
+
+	/**
+	 * 保存考生信息
+	 * 
+	 * @param examStudentReq
+	 */
+	SaveExamStudentResp saveExamStudent(SaveExamStudentReq req);
+
+}

+ 148 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/bean/ExamBean.java

@@ -0,0 +1,148 @@
+package cn.com.qmth.examcloud.examwork.api.bean;
+
+import java.util.Date;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class ExamBean implements JsonSerializable {
+
+	private static final long serialVersionUID = 6619634459082795393L;
+
+	/**
+	 * 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;
+	}
+
+}

+ 148 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/bean/ExamStudentBean.java

@@ -0,0 +1,148 @@
+package cn.com.qmth.examcloud.examwork.api.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+public class ExamStudentBean implements JsonSerializable {
+	private static final long serialVersionUID = 2079003980099252759L;
+
+	private Long id;
+
+	/**
+	 * 顶级机构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 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 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;
+	}
+
+}

+ 39 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamPropertyReq.java

@@ -0,0 +1,39 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class GetExamPropertyReq extends BaseRequest {
+
+	private static final long serialVersionUID = -3957501133504335385L;
+
+	private Long examId;
+
+	private Long rootOrgId;
+
+	private String key;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+}

+ 54 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/GetExamReq.java

@@ -0,0 +1,54 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * @author chenken
+ * @date 2018年5月2日 下午3:44:54
+ * @company QMTH
+ * @description ExamReq.java
+ */
+public class GetExamReq extends BaseRequest {
+
+	private static final long serialVersionUID = -5832266903859887508L;
+
+	/**
+	 * 机构ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 考试名称
+	 */
+	private String name;
+
+	/**
+	 * 考试ID
+	 */
+	private Long 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 getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+}

+ 103 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SaveExamReq.java

@@ -0,0 +1,103 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import java.util.Date;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+/**
+ * @author  	chenken
+ * @date    	2018年5月2日 下午3:44:54
+ * @company 	QMTH
+ * @description ExamReq.java
+ */
+public class SaveExamReq extends BaseRequest {
+
+	private static final long serialVersionUID = -5832266903859887508L;
+	/**
+	 * 机构ID
+	 */
+	private Long rootOrgId;
+	/**
+	 * 考试名称
+	 */
+	private String name;
+	/**
+	 * 考试类型
+	 */
+	private String examType;
+	/**
+	 * 考试开始时间
+	 */
+	private Date beginTime;
+	/**
+	 * 考试结束时间
+	 */
+	private Date endTime;
+	/**
+	 * 考试时长(分钟)
+	 */
+	private Integer duration;
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	
+	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 String getExamType() {
+		return examType;
+	}
+
+	public void setExamType(String examType) {
+		this.examType = examType;
+	}
+
+	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 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;
+	}
+	
+}
+

+ 224 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SaveExamStudentReq.java

@@ -0,0 +1,224 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SaveExamStudentReq extends BaseRequest {
+
+	private static final long serialVersionUID = -8455805881947392754L;
+
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+
+	/**
+	 * 考试ID
+	 */
+	private Long examId;
+
+	/**
+	 * 考试名称
+	 */
+	private String examName;
+
+	private Long studentId;
+
+	/**
+	 * 学生姓名
+	 */
+	private String studentName;
+
+	/**
+	 * 学生学号
+	 */
+	private String studentCode;
+
+	/**
+	 * 学生身份证号
+	 */
+	private String identityNumber;
+
+	/**
+	 * 考试课程名称
+	 */
+	private String courseName;
+
+	/**
+	 * 考试课程ID
+	 */
+	private Long courseId;
+
+	/**
+	 * 考试课程code
+	 */
+	private String courseCode;
+
+	/**
+	 * 考试课程level
+	 */
+	private String courseLevel;
+
+	/**
+	 * 试卷类型
+	 */
+	private String paperType;
+
+	/**
+	 * 信息采集人
+	 */
+	private String infoCollector;
+
+	/**
+	 * 考点
+	 */
+	private String examSite;
+
+	/**
+	 * 专业名称
+	 */
+	private String specialtyName;
+
+	/**
+	 * 年级
+	 */
+	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 Long getStudentId() {
+		return studentId;
+	}
+
+	public void setStudentId(Long studentId) {
+		this.studentId = studentId;
+	}
+
+	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 Long getCourseId() {
+		return courseId;
+	}
+
+	public void setCourseId(Long courseId) {
+		this.courseId = courseId;
+	}
+
+	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;
+	}
+
+}

+ 49 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/request/SetExamPropertyReq.java

@@ -0,0 +1,49 @@
+package cn.com.qmth.examcloud.examwork.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SetExamPropertyReq extends BaseRequest {
+
+	private static final long serialVersionUID = 5567648518317183261L;
+
+	private Long examId;
+
+	private Long rootOrgId;
+
+	private String key;
+
+	private String value;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

+ 49 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamPropertyResp.java

@@ -0,0 +1,49 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class GetExamPropertyResp extends BaseResponse {
+
+	private static final long serialVersionUID = 606999493938772517L;
+
+	private Boolean existing;
+
+	private Long propertyId;
+
+	private String key;
+
+	private String value;
+
+	public Boolean getExisting() {
+		return existing;
+	}
+
+	public void setExisting(Boolean existing) {
+		this.existing = existing;
+	}
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+}

+ 37 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/GetExamResp.java

@@ -0,0 +1,37 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月14日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class GetExamResp extends BaseResponse {
+
+	private static final long serialVersionUID = -1493707790478891416L;
+
+	private Long id;
+
+	private ExamBean examBean;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public ExamBean getExamBean() {
+		return examBean;
+	}
+
+	public void setExamBean(ExamBean examBean) {
+		this.examBean = examBean;
+	}
+
+}

+ 19 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamResp.java

@@ -0,0 +1,19 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SaveExamResp extends BaseResponse {
+
+	private static final long serialVersionUID = 5603861974375233174L;
+
+	private Long examId;
+
+	public Long getExamId() {
+		return examId;
+	}
+
+	public void setExamId(Long examId) {
+		this.examId = examId;
+	}
+
+}

+ 20 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SaveExamStudentResp.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+import cn.com.qmth.examcloud.examwork.api.bean.ExamStudentBean;
+
+public class SaveExamStudentResp extends BaseResponse {
+
+	private static final long serialVersionUID = 5003024673163742249L;
+
+	private ExamStudentBean examStudentBean;
+
+	public ExamStudentBean getExamStudentBean() {
+		return examStudentBean;
+	}
+
+	public void setExamStudentBean(ExamStudentBean examStudentBean) {
+		this.examStudentBean = examStudentBean;
+	}
+
+}

+ 19 - 0
examcloud-core-examwork-api/src/main/java/cn/com/qmth/examcloud/examwork/api/response/SetExamPropertyResp.java

@@ -0,0 +1,19 @@
+package cn.com.qmth.examcloud.examwork.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SetExamPropertyResp extends BaseResponse {
+
+	private static final long serialVersionUID = -6110239383657424338L;
+
+	private Long propertyId;
+
+	public Long getPropertyId() {
+		return propertyId;
+	}
+
+	public void setPropertyId(Long propertyId) {
+		this.propertyId = propertyId;
+	}
+
+}

+ 18 - 0
examcloud-exchange-inner-api-client/pom.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-exchange-inner-api-client</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-exchange-inner-api</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

+ 16 - 0
examcloud-exchange-inner-api-client/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/client/ExchangeCloudClientSupport.java

@@ -0,0 +1,16 @@
+package cn.com.qmth.examcloud.exchange.inner.api.client;
+
+import cn.com.qmth.examcloud.commons.web.support.CloudClientSupport;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public abstract class ExchangeCloudClientSupport extends CloudClientSupport {
+
+	@Override
+	public String getUrlPrefix() {
+		return "http://EXAMCLOUD-SERVICE-OUTLET/api/exchange/inner";
+	}
+
+}

+ 52 - 0
examcloud-exchange-inner-api-client/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/client/SendSmsServiceClient.java

@@ -0,0 +1,52 @@
+package cn.com.qmth.examcloud.exchange.inner.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.exchange.inner.api.SendSmsCloudService;
+import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
+import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
+import cn.com.qmth.examcloud.exchange.inner.api.response.SendSmsResp;
+
+/**
+ * 
+ * @author chenken
+ * @date 2018年7月3日 下午4:01:56
+ * @company QMTH
+ * @description SendSmsServiceClient.java
+ */
+@Service
+public class SendSmsServiceClient extends ExchangeCloudClientSupport implements SendSmsCloudService {
+
+	private static final long serialVersionUID = -2880611326177571371L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SendSmsResp sendIdentifyingCode(SendSmsReq sendSmsReq) {
+		return post("/sendSms/sendIdentifyingCode", sendSmsReq, SendSmsResp.class);
+	}
+
+	@Override
+	public CheckIdentifyingCodeResp checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq) {
+		return post("/sendSms/checkIdentifyingCode", checkSmsCodeReq,
+				CheckIdentifyingCodeResp.class);
+	}
+}

+ 18 - 0
examcloud-exchange-inner-api/pom.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-exchange-inner-api</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-web</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

+ 30 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/SendSmsCloudService.java

@@ -0,0 +1,30 @@
+package cn.com.qmth.examcloud.exchange.inner.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.exchange.inner.api.request.CheckSmsCodeReq;
+import cn.com.qmth.examcloud.exchange.inner.api.request.SendSmsReq;
+import cn.com.qmth.examcloud.exchange.inner.api.response.CheckIdentifyingCodeResp;
+import cn.com.qmth.examcloud.exchange.inner.api.response.SendSmsResp;
+
+/**
+ * 短信发送
+ * @author  	chenken
+ * @date    	2018年7月3日 下午3:32:52
+ * @company 	QMTH
+ * @description SendSmsCloudService.java
+ */
+public interface SendSmsCloudService extends CloudService{
+	
+	/**
+	 * 发送验证码
+	 */
+	public SendSmsResp sendIdentifyingCode(SendSmsReq sendSmsReq);
+	
+	/**
+	 * 校验验证码
+	 * @param phone
+	 * @param code
+	 */
+	public CheckIdentifyingCodeResp checkIdentifyingCode(CheckSmsCodeReq checkSmsCodeReq);
+	
+}

+ 31 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/request/CheckSmsCodeReq.java

@@ -0,0 +1,31 @@
+package cn.com.qmth.examcloud.exchange.inner.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class CheckSmsCodeReq  extends BaseRequest{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -5177345026766086276L;
+
+	private String phone;
+	
+	private String code;
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+}

+ 85 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/request/SendSmsReq.java

@@ -0,0 +1,85 @@
+package cn.com.qmth.examcloud.exchange.inner.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SendSmsReq extends BaseRequest{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 8002846980120664036L;
+	
+	/**
+	 * 手机号码 
+	 */
+	private String phone;
+	/**
+	 * 验证码
+	 */
+	private String code;
+	/**
+	 * 签名
+	 */
+	private String sign;
+	/**
+	 * 模板code
+	 */
+	private String templateCode;
+	/**
+	 * 允许请求的间隔时间
+	 */
+	private Integer intervalSeconds;
+	/**
+	 * 验证码有效时间   秒
+	 */
+	private Integer effectiveTime;
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getTemplateCode() {
+		return templateCode;
+	}
+
+	public void setTemplateCode(String templateCode) {
+		this.templateCode = templateCode;
+	}
+
+	public String getSign() {
+		return sign;
+	}
+
+	public void setSign(String sign) {
+		this.sign = sign;
+	}
+
+	public Integer getEffectiveTime() {
+		return effectiveTime;
+	}
+
+	public void setEffectiveTime(Integer effectiveTime) {
+		this.effectiveTime = effectiveTime;
+	}
+
+	public Integer getIntervalSeconds() {
+		return intervalSeconds;
+	}
+
+	public void setIntervalSeconds(Integer intervalSeconds) {
+		this.intervalSeconds = intervalSeconds;
+	}
+	
+}

+ 32 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/response/CheckIdentifyingCodeResp.java

@@ -0,0 +1,32 @@
+package cn.com.qmth.examcloud.exchange.inner.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class CheckIdentifyingCodeResp extends BaseResponse{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4183375914566275064L;
+
+	private String returnMsg;
+	
+	private Boolean success;
+
+	public String getReturnMsg() {
+		return returnMsg;
+	}
+
+	public void setReturnMsg(String returnMsg) {
+		this.returnMsg = returnMsg;
+	}
+
+	public Boolean getSuccess() {
+		return success;
+	}
+
+	public void setSuccess(Boolean success) {
+		this.success = success;
+	}
+	
+}

+ 32 - 0
examcloud-exchange-inner-api/src/main/java/cn/com/qmth/examcloud/exchange/inner/api/response/SendSmsResp.java

@@ -0,0 +1,32 @@
+package cn.com.qmth.examcloud.exchange.inner.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SendSmsResp extends BaseResponse{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7527034551594325879L;
+
+	private boolean success;
+	
+	private String returnMsg;
+	
+	public boolean isSuccess() {
+		return success;
+	}
+
+	public void setSuccess(boolean success) {
+		this.success = success;
+	}
+
+	public String getReturnMsg() {
+		return returnMsg;
+	}
+
+	public void setReturnMsg(String returnMsg) {
+		this.returnMsg = returnMsg;
+	}
+
+}

+ 18 - 0
examcloud-task-api-client/pom.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-task-api-client</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-task-api</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

+ 75 - 0
examcloud-task-api-client/src/main/java/cn/com/qmth/examcloud/task/api/client/DataSyncCloudServiceClient.java

@@ -0,0 +1,75 @@
+package cn.com.qmth.examcloud.task.api.client;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import cn.com.qmth.examcloud.commons.web.redis.RedisClient;
+import cn.com.qmth.examcloud.task.api.DataSyncCloudService;
+import cn.com.qmth.examcloud.task.api.request.SyncCourseReq;
+import cn.com.qmth.examcloud.task.api.request.SyncExamReq;
+import cn.com.qmth.examcloud.task.api.request.SyncOrgReq;
+import cn.com.qmth.examcloud.task.api.request.SyncSpecialtyReq;
+import cn.com.qmth.examcloud.task.api.request.SyncStudentReq;
+import cn.com.qmth.examcloud.task.api.response.SyncCourseResp;
+import cn.com.qmth.examcloud.task.api.response.SyncExamResp;
+import cn.com.qmth.examcloud.task.api.response.SyncOrgResp;
+import cn.com.qmth.examcloud.task.api.response.SyncSpecialtyResp;
+import cn.com.qmth.examcloud.task.api.response.SyncStudentResp;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月2日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+@Service
+public class DataSyncCloudServiceClient extends TaskCloudClientSupport
+		implements
+			DataSyncCloudService {
+
+	private static final long serialVersionUID = -2880611326177571371L;
+
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Autowired
+	private RedisClient redisClient;
+
+	@Override
+	protected RedisClient getRedisClient() {
+		return redisClient;
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	@Override
+	public SyncCourseResp syncCourse(SyncCourseReq req) {
+		return post("dataSync/syncCourse", req, SyncCourseResp.class);
+	}
+
+	@Override
+	public SyncOrgResp syncOrg(SyncOrgReq req) {
+		return post("dataSync/syncOrg", req, SyncOrgResp.class);
+	}
+
+	@Override
+	public SyncStudentResp syncStudent(SyncStudentReq req) {
+		return post("dataSync/syncStudent", req, SyncStudentResp.class);
+	}
+
+	@Override
+	public SyncSpecialtyResp syncSpecialty(SyncSpecialtyReq req) {
+		return post("dataSync/syncSpecialty", req, SyncSpecialtyResp.class);
+	}
+
+	@Override
+	public SyncExamResp syncExam(SyncExamReq req) {
+		return post("dataSync/syncExam", req, SyncExamResp.class);
+	}
+
+}

+ 16 - 0
examcloud-task-api-client/src/main/java/cn/com/qmth/examcloud/task/api/client/TaskCloudClientSupport.java

@@ -0,0 +1,16 @@
+package cn.com.qmth.examcloud.task.api.client;
+
+import cn.com.qmth.examcloud.commons.web.support.CloudClientSupport;
+
+/**
+ * @author WANGWEI
+ *
+ */
+public abstract class TaskCloudClientSupport extends CloudClientSupport {
+
+	@Override
+	public String getUrlPrefix() {
+		return "http://EXAMCLOUD-TASK/api/cloud/task";
+	}
+
+}

+ 18 - 0
examcloud-task-api/pom.xml

@@ -0,0 +1,18 @@
+<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>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.rmi</groupId>
+		<artifactId>examcloud-rmi</artifactId>
+		<version>2.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>examcloud-task-api</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-web</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+</project>

+ 69 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/DataSyncCloudService.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.task.api;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.CloudService;
+import cn.com.qmth.examcloud.task.api.request.SyncCourseReq;
+import cn.com.qmth.examcloud.task.api.request.SyncExamReq;
+import cn.com.qmth.examcloud.task.api.request.SyncOrgReq;
+import cn.com.qmth.examcloud.task.api.request.SyncSpecialtyReq;
+import cn.com.qmth.examcloud.task.api.request.SyncStudentReq;
+import cn.com.qmth.examcloud.task.api.response.SyncCourseResp;
+import cn.com.qmth.examcloud.task.api.response.SyncExamResp;
+import cn.com.qmth.examcloud.task.api.response.SyncOrgResp;
+import cn.com.qmth.examcloud.task.api.response.SyncSpecialtyResp;
+import cn.com.qmth.examcloud.task.api.response.SyncStudentResp;
+
+/**
+ * 数据同步接口
+ *
+ * @author WANGWEI
+ * @date 2018年8月2日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public interface DataSyncCloudService extends CloudService {
+
+	/**
+	 * 同步课程
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SyncCourseResp syncCourse(SyncCourseReq req);
+
+	/**
+	 * 同步机构
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SyncOrgResp syncOrg(SyncOrgReq req);
+
+	/**
+	 * 同步学生
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SyncStudentResp syncStudent(SyncStudentReq req);
+
+	/**
+	 * 同步专业
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SyncSpecialtyResp syncSpecialty(SyncSpecialtyReq req);
+
+	/**
+	 * 同步考试
+	 *
+	 * @author WANGWEI
+	 * @param req
+	 * @return
+	 */
+	SyncExamResp syncExam(SyncExamReq req);
+
+}

+ 69 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncCourseReq.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.task.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SyncCourseReq extends BaseRequest {
+
+	private static final long serialVersionUID = -1031140605770551820L;
+
+	private Long id;
+
+	private String code;
+
+	private String name;
+
+	private Long rootOrgId;
+
+	private String level;
+
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	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 String getLevel() {
+		return level;
+	}
+
+	public void setLevel(String level) {
+		this.level = level;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 8 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncExamReq.java

@@ -0,0 +1,8 @@
+package cn.com.qmth.examcloud.task.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SyncExamReq extends BaseRequest {
+	private static final long serialVersionUID = -1174285249211340119L;
+
+}

+ 69 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncOrgReq.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.task.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SyncOrgReq extends BaseRequest {
+
+	private static final long serialVersionUID = -2104134978729044084L;
+
+	private Long id;
+
+	private Long rootId;
+
+	private Long parentId;
+
+	private Integer level;
+
+	private String name;
+
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getRootId() {
+		return rootId;
+	}
+
+	public void setRootId(Long rootId) {
+		this.rootId = rootId;
+	}
+
+	public Long getParentId() {
+		return parentId;
+	}
+
+	public void setParentId(Long parentId) {
+		this.parentId = parentId;
+	}
+
+	public Integer getLevel() {
+		return level;
+	}
+
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 59 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncSpecialtyReq.java

@@ -0,0 +1,59 @@
+package cn.com.qmth.examcloud.task.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SyncSpecialtyReq extends BaseRequest {
+
+	private static final long serialVersionUID = 1668418232494824050L;
+
+	private Long id;
+
+	private String code;
+
+	private String name;
+
+	private Long rootOrgId;
+
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	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 Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+}

+ 165 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/request/SyncStudentReq.java

@@ -0,0 +1,165 @@
+package cn.com.qmth.examcloud.task.api.request;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseRequest;
+
+public class SyncStudentReq extends BaseRequest {
+
+	private static final long serialVersionUID = -8613202479412809385L;
+
+	/**
+	 * 学生ID
+	 */
+	private Long id;
+
+	/**
+	 * 学生姓名
+	 */
+	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 photoPath;
+
+	/**
+	 * 手机号码
+	 */
+	private String phoneNumber;
+
+	/**
+	 * 是否可用
+	 */
+	private Boolean enable;
+
+	/**
+	 * 安全手机号码(用于登录)
+	 */
+	private String securityPhone;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	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 getPhotoPath() {
+		return photoPath;
+	}
+
+	public void setPhotoPath(String photoPath) {
+		this.photoPath = photoPath;
+	}
+
+	public String getPhoneNumber() {
+		return phoneNumber;
+	}
+
+	public void setPhoneNumber(String phoneNumber) {
+		this.phoneNumber = phoneNumber;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+
+	public String getSecurityPhone() {
+		return securityPhone;
+	}
+
+	public void setSecurityPhone(String securityPhone) {
+		this.securityPhone = securityPhone;
+	}
+
+}

+ 9 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncCourseResp.java

@@ -0,0 +1,9 @@
+package cn.com.qmth.examcloud.task.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SyncCourseResp extends BaseResponse {
+
+	private static final long serialVersionUID = 7936504812326252001L;
+
+}

+ 9 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncExamResp.java

@@ -0,0 +1,9 @@
+package cn.com.qmth.examcloud.task.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SyncExamResp extends BaseResponse {
+
+	private static final long serialVersionUID = -2525511284759482508L;
+
+}

+ 9 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncOrgResp.java

@@ -0,0 +1,9 @@
+package cn.com.qmth.examcloud.task.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SyncOrgResp extends BaseResponse {
+
+	private static final long serialVersionUID = -805572917696214078L;
+
+}

+ 9 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncSpecialtyResp.java

@@ -0,0 +1,9 @@
+package cn.com.qmth.examcloud.task.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SyncSpecialtyResp extends BaseResponse {
+
+	private static final long serialVersionUID = 3408737667742502112L;
+
+}

+ 9 - 0
examcloud-task-api/src/main/java/cn/com/qmth/examcloud/task/api/response/SyncStudentResp.java

@@ -0,0 +1,9 @@
+package cn.com.qmth.examcloud.task.api.response;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.BaseResponse;
+
+public class SyncStudentResp extends BaseResponse {
+
+	private static final long serialVersionUID = -7642849789026746525L;
+
+}

+ 13 - 8
pom.xml

@@ -4,20 +4,25 @@
 	<parent>
 		<groupId>cn.com.qmth.examcloud</groupId>
 		<artifactId>examcloud-parent</artifactId>
-		<version>2.1-SNAPSHOT</version>
+		<version>2.0-SNAPSHOT</version>
 	</parent>
-	<groupId>cn.com.qmth.examcloud.core.basic</groupId>
-	<artifactId>examcloud-core-basic</artifactId>
+	<groupId>cn.com.qmth.examcloud.rmi</groupId>
+	<artifactId>examcloud-rmi</artifactId>
 	<packaging>pom</packaging>
 
 	<modules>
-		<module>examcloud-core-basic-base</module>
 		<module>examcloud-core-basic-api</module>
 		<module>examcloud-core-basic-api-client</module>
-		<module>examcloud-core-basic-api-provider</module>
-		<module>examcloud-core-basic-service</module>
-		<module>examcloud-core-basic-dao</module>
-		<module>examcloud-core-basic-starter</module>
+
+		<module>examcloud-core-examwork-api</module>
+		<module>examcloud-core-examwork-api-client</module>
+
+		<module>examcloud-exchange-inner-api</module>
+		<module>examcloud-exchange-inner-api-client</module>
+
+		<module>examcloud-task-api</module>
+		<module>examcloud-task-api-client</module>
+
 	</modules>
 
 </project>