浏览代码

提交代码

chenken 7 年之前
父节点
当前提交
9770890ddd
共有 15 个文件被更改,包括 506 次插入1 次删除
  1. 26 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/CourseCloudServiceClient.java
  2. 34 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/OrgCloudServiceClient.java
  3. 28 0
      examcloud-core-basic-api-client/src/main/java/cn/com/qmth/examcloud/core/basic/api/client/StudentCloudServiceClient.java
  4. 55 0
      examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/CourseCloudServiceProvider.java
  5. 44 0
      examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/OrgCloudServiceProvider.java
  6. 45 0
      examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/StudentCloudServiceProvider.java
  7. 20 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/CourseCloudService.java
  8. 17 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/OrgCloudService.java
  9. 16 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/StudentCloudService.java
  10. 55 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/CourseReq.java
  11. 41 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/OrgReq.java
  12. 83 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/request/StudentReq.java
  13. 25 0
      examcloud-core-basic-api/src/main/java/cn/com/qmth/examcloud/core/basic/api/response/OrgResp.java
  14. 11 0
      examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/CourseService.java
  15. 6 1
      examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/OrgService.java

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

@@ -0,0 +1,26 @@
+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.core.basic.api.CourseCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.CourseReq;
+
+@Service
+public class CourseCloudServiceClient extends BasicCloudClientSupport implements CourseCloudService {
+
+	@Autowired
+	private RestTemplate restTemplate;
+	
+	@Override
+	public void saveCourse(CourseReq courseReq) {
+		post("course", courseReq, CourseReq.class);
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+}

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

@@ -0,0 +1,34 @@
+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.core.basic.api.OrgCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.OrgReq;
+import cn.com.qmth.examcloud.core.basic.api.response.OrgResp;
+
+/**
+ * 机构服务客户端
+ * @author  	chenken
+ * @date    	2018年5月4日 下午3:28:53
+ * @company 	QMTH
+ * @description OrgCloudServiceClient.java
+ */
+@Service
+public class OrgCloudServiceClient extends BasicCloudClientSupport implements OrgCloudService{
+	
+	@Autowired
+	RestTemplate restTemplate;
+
+	@Override
+	public OrgResp saveOrg(OrgReq orgReq) {
+		return post("org", orgReq, OrgResp.class);
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+	
+}

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

@@ -0,0 +1,28 @@
+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.core.basic.api.StudentCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.StudentReq;
+
+@Service
+public class StudentCloudServiceClient extends BasicCloudClientSupport implements StudentCloudService{
+
+	@Autowired
+	private RestTemplate restTemplate;
+	
+	@Override
+	public void saveStudent(StudentReq studentReq) {
+		post("student", studentReq, StudentReq.class);
+	}
+
+	@Override
+	protected RestTemplate getRestTemplate() {
+		return restTemplate;
+	}
+
+	
+	
+}

+ 55 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/CourseCloudServiceProvider.java

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.core.basic.api.provider;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.common.dto.core.enums.CourseLevel;
+import cn.com.qmth.examcloud.common.support.exception.StatusException;
+import cn.com.qmth.examcloud.core.basic.api.CourseCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.CourseReq;
+import cn.com.qmth.examcloud.core.basic.dao.entity.Course;
+import cn.com.qmth.examcloud.core.basic.service.impl.CourseService;
+
+@RestController
+@RequestMapping("${url.prefix}/course")
+public class CourseCloudServiceProvider implements CourseCloudService {
+	
+	@Autowired
+	CourseService courseService;
+
+	@ApiOperation(value = "保存课程", notes = "保存课程")
+	@PostMapping
+	@Override
+	public void saveCourse(CourseReq courseReq) throws Exception {
+		Course course = courseService.findByOrgIdAndCode(courseReq.getOrgId(), courseReq.getCourseCode());
+		if(course == null){
+			course = new Course();
+            course.setOrgId(courseReq.getOrgId());
+            course.setName(courseReq.getCourseName());
+            course.setCode(courseReq.getCourseCode());
+            course.setLevel(getCourseLevelByCName(courseReq.getCourseLevel()));
+            courseService.save(course);
+		}
+	}
+	
+	private CourseLevel getCourseLevelByCName(String cname){
+    	CourseLevel courseLevel = null;
+        for(CourseLevel level:CourseLevel.values()){
+        	if(cname.equals(level.getName())){
+        		courseLevel = level;
+        	}
+        }
+        if(courseLevel==null){
+        	throw new StatusException("CORE-BASIC-courseLevel not exists","课程层次不存在");
+        }else{
+        	return courseLevel;
+        }
+    }
+
+}

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

@@ -0,0 +1,44 @@
+package cn.com.qmth.examcloud.core.basic.api.provider;
+
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.common.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.basic.api.OrgCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.OrgReq;
+import cn.com.qmth.examcloud.core.basic.api.response.OrgResp;
+import cn.com.qmth.examcloud.core.basic.dao.entity.Org;
+import cn.com.qmth.examcloud.core.basic.service.impl.OrgService;
+
+
+@RestController
+@RequestMapping("${url.prefix}/org")
+public class OrgCloudServiceProvider  extends ControllerSupport implements OrgCloudService{
+
+	@Autowired
+	private OrgService orgService;
+	
+	@ApiOperation(value = "保存机构", notes = "保存机构")
+	@PostMapping
+	@Override
+	public OrgResp saveOrg(OrgReq orgReq) throws Exception {
+		OrgResp orgResp = new OrgResp();
+		Org org = orgService.findFirstByParentIdAndCode(orgReq.getRootOrgId(),orgReq.getOrgCode());
+		if(org == null){
+			org = new Org();
+			org.setName(orgReq.getOrgName());
+            org.setCode(orgReq.getOrgCode());
+            org.setParentId(orgReq.getRootOrgId());
+            org.setRootId(orgReq.getRootOrgId());
+            org.setEnable(true);
+            org = orgService.save(org);
+		}
+		orgResp.setId(org.getId());
+		orgResp.setName(org.getName());
+		return orgResp;
+	}
+}

+ 45 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/provider/StudentCloudServiceProvider.java

@@ -0,0 +1,45 @@
+package cn.com.qmth.examcloud.core.basic.api.provider;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.common.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.basic.api.StudentCloudService;
+import cn.com.qmth.examcloud.core.basic.api.request.StudentReq;
+import cn.com.qmth.examcloud.core.basic.dao.StudentRepo;
+import cn.com.qmth.examcloud.core.basic.dao.UserRepo;
+import cn.com.qmth.examcloud.core.basic.dao.entity.Student;
+import cn.com.qmth.examcloud.core.basic.service.impl.StudentService;
+
+@RestController
+@RequestMapping("${url.prefix}/student")
+public class StudentCloudServiceProvider extends ControllerSupport implements StudentCloudService{
+
+	@Autowired
+	private UserRepo userRepo;
+	
+	@Autowired
+	private StudentService studentService;
+	
+	@Autowired
+	private StudentRepo studentRepo;
+	
+	@Override
+	public void saveStudent(StudentReq studentReq) {
+		Student oldStudent = studentRepo.findByIdentityNumber(studentReq.getIdentityNumber());
+		if(oldStudent == null){
+			Student student = new Student();
+			student.setName(studentReq.getName());
+			student.setIdentityNumber(studentReq.getIdentityNumber());
+			student.setStudentCode(studentReq.getStudentCode());
+			student.setOrgId(studentReq.getOrgId());
+			studentRepo.save(student);
+		}else{
+			oldStudent.setOrgId(studentReq.getOrgId());
+			oldStudent.setRootOrgId(studentReq.getRootOrgId());
+			studentRepo.save(oldStudent);
+		}
+	}
+	
+}

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

@@ -0,0 +1,20 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.core.basic.api.request.CourseReq;
+
+/**
+ * 课程服务
+ * @author  	chenken
+ * @date    	2018年5月4日 下午4:01:09
+ * @company 	QMTH
+ * @description CourseCloudService.java
+ */
+public interface CourseCloudService {
+
+	/**
+	 * 保存课程
+	 * @param courseReq
+	 */
+	public void saveCourse(CourseReq courseReq) throws Exception ;
+	
+}

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

@@ -0,0 +1,17 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.core.basic.api.request.OrgReq;
+import cn.com.qmth.examcloud.core.basic.api.response.OrgResp;
+
+/**
+ * 机构服务
+ * @author  	chenken
+ * @date    	2018年5月4日 下午3:27:55
+ * @company 	QMTH
+ * @description OrgCloudService.java
+ */
+public interface OrgCloudService {
+
+	public OrgResp saveOrg(OrgReq orgReq) throws Exception;
+	
+}

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

@@ -0,0 +1,16 @@
+package cn.com.qmth.examcloud.core.basic.api;
+
+import cn.com.qmth.examcloud.core.basic.api.request.StudentReq;
+
+/**
+ * 学生接口服务
+ * @author  	chenken
+ * @date    	2018年5月4日 下午5:10:40
+ * @company 	QMTH
+ * @description StudentCloudService.java
+ */
+public interface StudentCloudService {
+
+	public void saveStudent(StudentReq studentReq);
+	
+}

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

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.common.support.BaseRequest;
+
+public class CourseReq  extends BaseRequest {
+	
+	private static final long serialVersionUID = -814368725579588751L;
+	/**
+	 * 课程code
+	 */
+	private String courseCode;
+	/**
+	 * 课程name
+	 */
+	private String courseName;
+	/**
+	 * 课程level
+	 */
+	private String courseLevel;
+	
+	private Long orgId;
+
+	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 Long getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(Long orgId) {
+		this.orgId = orgId;
+	}
+	
+}

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

@@ -0,0 +1,41 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.common.support.BaseRequest;
+
+public class OrgReq  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;
+	}
+}

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

@@ -0,0 +1,83 @@
+package cn.com.qmth.examcloud.core.basic.api.request;
+
+import cn.com.qmth.examcloud.common.support.BaseRequest;
+
+public class StudentReq extends BaseRequest{
+
+	private static final long serialVersionUID = 9066273303019460160L;
+	
+	/**
+	 * 学生姓名
+	 */
+	private String name;
+	/**
+	 * 顶级机构ID
+	 */
+	private Long rootOrgId;
+	/**
+	 * 机构ID
+	 */
+	private Long orgId;
+	/**
+	 * 学生code
+	 */
+	private String studentCode;
+	/**
+	 * 身份证号码
+	 */
+	private String identityNumber;
+	/**
+	 * 创建用户ID
+	 */
+	private  Long userId;
+
+	
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(Long orgId) {
+		this.orgId = orgId;
+	}
+
+	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 Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+	
+}

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

@@ -0,0 +1,25 @@
+package cn.com.qmth.examcloud.core.basic.api.response;
+
+public class OrgResp {
+
+	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;
+	}
+	
+}

+ 11 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/CourseService.java

@@ -199,4 +199,15 @@ public class CourseService {
 		return reCourse;
 	}
 
+	public Course findByOrgIdAndCode(Long orgId,String code){
+		return courseRepo.findByOrgIdAndCode(orgId, code);
+	}
+	
+	public Course saveCourse(Course course) throws Exception{
+		course.setEnable(true);
+		course.setCreateTime(new Date());
+		Course reCourse = courseRepo.saveAndFlush(course);
+		dataSendService.sendCourse(reCourse);
+		return reCourse;
+	}
 }

+ 6 - 1
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/OrgService.java

@@ -19,6 +19,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import cn.com.qmth.examcloud.common.util.excel.ExcelError;
 import cn.com.qmth.examcloud.common.util.excel.ExcelReader;
@@ -274,5 +275,9 @@ public class OrgService {
 			return org;
 		}
 	}
-
+	
+	public Org findFirstByParentIdAndCode(Long parentId,String code){
+		return orgRepo.findFirstByParentIdAndCode(parentId, code);
+	}
+	
 }