wangwei 6 éve
szülő
commit
8ea655a561

+ 65 - 0
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/ExamStudentController.java

@@ -6,6 +6,8 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
 import javax.persistence.criteria.Predicate;
 import javax.servlet.http.HttpServletResponse;
 
@@ -48,6 +50,7 @@ import cn.com.qmth.examcloud.core.basic.api.response.GetCourseResp;
 import cn.com.qmth.examcloud.core.basic.api.response.GetOrgResp;
 import cn.com.qmth.examcloud.core.basic.api.response.GetStudentResp;
 import cn.com.qmth.examcloud.core.basic.api.response.SaveStudentResp;
+import cn.com.qmth.examcloud.core.examwork.api.controller.bean.CourseDomain;
 import cn.com.qmth.examcloud.core.examwork.api.controller.bean.ExamStudentDomain;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamRepo;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamStudentRepo;
@@ -68,6 +71,9 @@ import io.swagger.annotations.ApiOperation;
 @RequestMapping("${$rmp.ctr.examwork}/exam_student")
 public class ExamStudentController extends ControllerSupport {
 
+	@Autowired
+	private EntityManager em;
+
 	@Autowired
 	ExamStudentRepo examStudentRepo;
 
@@ -89,6 +95,65 @@ public class ExamStudentController extends ControllerSupport {
 	@Autowired
 	ExamRecordCloudService examRecordCloudService;
 
+	@ApiOperation(value = "查询考试的课程分页")
+	@GetMapping("examCoursePage/{curPage}/{pageSize}")
+	public PageInfo<CourseDomain> getExamCoursePage(@PathVariable Integer curPage,
+			@PathVariable Integer pageSize, @RequestParam(required = true) Long examId,
+			@RequestParam(required = false) Long courseId,
+			@RequestParam(required = false) String courseLevel) {
+
+		User accessUser = getAccessUser();
+		Long rootOrgId = accessUser.getRootOrgId();
+
+		StringBuilder sql = new StringBuilder(
+				"SELECT t.exam_id from ec_e_exam_student t where t.exam_id=?");
+		if (null != courseId) {
+			sql.append(" and t.course_id=?");
+		}
+		if (StringUtils.isNotBlank(courseLevel)) {
+			sql.append(" and t.course_level=?");
+		}
+
+		sql.append(" group by t.exam_id,t.course_id");
+		sql.append("  limit ").append(curPage).append(",").append("pageSize");
+
+		Query query = em.createNativeQuery(
+				"SELECT t.exam_id from ec_e_exam_student t where t.exam_id=1 group by t.exam_id,t.course_id");
+		query.setParameter(1, examId);
+		if (null != courseId) {
+			query.setParameter(2, courseId);
+		}
+		if (StringUtils.isNotBlank(courseLevel)) {
+			query.setParameter(3, courseLevel);
+		}
+
+		List<?> resultList = query.getResultList();
+
+		List<CourseDomain> list = Lists.newArrayList();
+		for (Object cur : resultList) {
+			GetCourseReq req = new GetCourseReq();
+			req.setId((Long) cur);
+			req.setRootOrgId(rootOrgId);
+			GetCourseResp getCourseResp = courseCloudService.getCourse(req);
+			CourseBean courseBean = getCourseResp.getCourseBean();
+
+			CourseDomain d = new CourseDomain();
+			d.setCode(courseBean.getCode());
+			d.setLevel(courseBean.getLevel());
+			d.setName(courseBean.getName());
+			d.setId(courseBean.getId());
+
+			list.add(d);
+		}
+
+		em.close();
+
+		PageInfo<CourseDomain> page = new PageInfo<CourseDomain>();
+		page.setList(list);
+
+		return page;
+	}
+
 	/**
 	 * 方法注释
 	 *

+ 76 - 0
examcloud-core-examwork-api-provider/src/main/java/cn/com/qmth/examcloud/core/examwork/api/controller/bean/CourseDomain.java

@@ -0,0 +1,76 @@
+package cn.com.qmth.examcloud.core.examwork.api.controller.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年8月27日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class CourseDomain implements JsonSerializable {
+
+	private static final long serialVersionUID = -6261302618070108336L;
+
+	private Long id;
+
+	private Long rootOrgId;
+
+	private String code;
+
+	private String name;
+
+	private String level;
+
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
+
+	public String 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;
+	}
+
+}

+ 1 - 0
examcloud-core-examwork-starter/src/main/resources/security-exclusions.conf

@@ -11,5 +11,6 @@ regexp:.*webjars.*
 [${$rmp.ctr.examwork}/exam_course][][GET]
 [${$rmp.ctr.examwork}/exam_course][/marking][GET]
 [${$rmp.ctr.examwork}/exam_student][/download][GET]
+[${$rmp.ctr.examwork}/exam_student][examCoursePage/{curPage}/{pageSize}][GET]