浏览代码

。。。

wangwei 7 年之前
父节点
当前提交
7dc3beb413

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

@@ -22,6 +22,7 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -36,11 +37,14 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
+import com.google.common.collect.Lists;
+
 import cn.com.qmth.examcloud.common.dto.core.Course;
 import cn.com.qmth.examcloud.common.dto.examwork.CommonExamStudent;
 import cn.com.qmth.examcloud.commons.base.util.ErrorMsg;
 import cn.com.qmth.examcloud.commons.base.util.excel.ExcelError;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.examwork.api.controller.bean.ExamStudentDomain;
 import cn.com.qmth.examcloud.core.examwork.base.util.ExportUtils;
 import cn.com.qmth.examcloud.core.examwork.base.util.ImportUtils;
 import cn.com.qmth.examcloud.core.examwork.dao.ExamRepo;
@@ -91,26 +95,86 @@ public class ExamStudentController extends ControllerSupport {
 		});
 	}
 
+	/**
+	 * 重构
+	 *
+	 * @author WANGWEI
+	 * @param examCriteria
+	 * @param curPage
+	 * @param pageSize
+	 * @return
+	 */
 	@ApiOperation(value = "查询考试学生带条件和分页", notes = "带条件带分页")
 	@GetMapping("/all/{curPage}/{pageSize}")
-	public ResponseEntity getAllExamStudent(HttpServletRequest request,
-			@ModelAttribute ExamStudentDTO examStudent, @PathVariable Integer curPage,
+	public List<ExamStudentDomain> getExamStudentList(
+			@ModelAttribute ExamStudentDomain examCriteria, @PathVariable Integer curPage,
 			@PathVariable Integer pageSize) {
-		cn.com.qmth.examcloud.commons.web.security.bean.User accessUser = getAccessUser();
-		if (accessUser != null) {
-			if (accessUser.getRootOrgId().longValue() == accessUser.getOrgId().longValue()
-					|| examStudent.getStudentId() != null) {
-				examStudent.setRootOrgId(accessUser.getRootOrgId());
-			} else {
-				examStudent.setOrgId(accessUser.getOrgId());
+		Specification<ExamStudent> specification = (root, query, cb) -> {
+			List<Predicate> predicates = new ArrayList<>();
+			predicates.add(cb.equal(root.get("rootOrgId"), examCriteria.getRootOrgId()));
+
+			if (null != examCriteria.getOrgId()) {
+				predicates.add(cb.equal(root.get("orgId"), examCriteria.getOrgId()));
+			}
+
+			if (null != examCriteria.getExamId()) {
+				predicates.add(cb.equal(root.get("exam").get("id"), examCriteria.getExamId()));
 			}
-		} else {
-			return new ResponseEntity(new ErrorMsg("无访问权限"), HttpStatus.INTERNAL_SERVER_ERROR);
+			if (StringUtils.isNotEmpty(examCriteria.getName())) {
+				predicates
+						.add(cb.like(root.get("name"), toSqlSearchPattern(examCriteria.getName())));
+			}
+			if (StringUtils.isNotEmpty(examCriteria.getStudentCode())) {
+				predicates.add(cb.like(root.get("studentCode"),
+						toSqlSearchPattern(examCriteria.getStudentCode())));
+			}
+			if (StringUtils.isNotEmpty(examCriteria.getCourseCode())) {
+				predicates.add(cb.equal(root.get("courseCode"), examCriteria.getCourseCode()));
+			}
+			if (StringUtils.isNotEmpty(examCriteria.getCourseLevel())) {
+				predicates.add(cb.equal(root.get("courseLevel"), examCriteria.getCourseLevel()));
+			}
+			if (StringUtils.isNotEmpty(examCriteria.getCourseName())) {
+				predicates.add(cb.like(root.get("courseName"),
+						toSqlSearchPattern(examCriteria.getCourseName())));
+			}
+
+			if (!StringUtils.isEmpty(examCriteria.getExamSite())) {
+				predicates.add(cb.like(root.get("examSite"),
+						toSqlSearchPattern(examCriteria.getExamSite())));
+			}
+			if (StringUtils.isNotEmpty(examCriteria.getIdentityNumber())) {
+				predicates.add(cb.like(root.get("identityNumber"),
+						toSqlSearchPattern(examCriteria.getIdentityNumber())));
+			}
+			if (!StringUtils.isEmpty(examCriteria.getSpecialtyName())) {
+				predicates.add(cb.like(root.get("specialtyName"),
+						"%" + examCriteria.getSpecialtyName() + "%"));
+			}
+
+			return cb.and(predicates.toArray(new Predicate[predicates.size()]));
+		};
+
+		PageRequest pageRequest = new PageRequest(curPage, pageSize,
+				new Sort(Direction.DESC, "id"));
+
+		Page<ExamStudent> examStudents = examStudentRepo.findAll(specification, pageRequest);
+
+		List<ExamStudentDomain> ret = Lists.newArrayList();
+
+		for (ExamStudent cur : examStudents) {
+			ExamStudentDomain bean = new ExamStudentDomain();
+			bean.setId(cur.getId());
+			bean.setName(cur.getName());
+			bean.setStudentCode(cur.getStudentCode());
+			bean.setIdentityNumber(cur.getIdentityNumber());
+			bean.setCourseCode(cur.getCourseCode());
+			bean.setCourseName(cur.getCourseName());
+			bean.setInfoCollector(cur.getInfoCollector());
+
+			ret.add(bean);
 		}
-		return new ResponseEntity(
-				examStudentService.getAllExamStudent(examStudent,
-						new PageRequest(curPage, pageSize, new Sort(Direction.DESC, "id"))),
-				HttpStatus.OK);
+		return ret;
 	}
 
 	/**

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

@@ -0,0 +1,213 @@
+package cn.com.qmth.examcloud.core.examwork.api.controller.bean;
+
+import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
+import cn.com.qmth.examcloud.core.examwork.dao.entity.Exam;
+
+/**
+ * 类注释
+ *
+ * @author WANGWEI
+ * @date 2018年7月9日
+ * @Copyright (c) 2018-? http://qmth.com.cn All Rights Reserved.
+ */
+public class ExamStudentDomain implements JsonSerializable {
+
+	private static final long serialVersionUID = 757982847766860857L;
+
+	private Long id;
+
+	private String name;
+
+	private Exam exam;
+
+	private Long examId;
+
+	private Long rootOrgId;
+
+	private Long orgId;
+
+	private String studentCode;
+
+	private String identityNumber;
+
+	private String orgCode;
+
+	private String orgName;
+
+	private String examNumber;
+
+	private String courseCode;
+
+	private String courseName;
+
+	private String courseLevel;
+
+	private String paperType;
+
+	private String specialtyCode;
+
+	private String specialtyName;
+
+	/**
+	 * 考点
+	 */
+	private String examSite;
+
+	/**
+	 * 信息采集人
+	 */
+	private String infoCollector;
+
+	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 Exam getExam() {
+		return exam;
+	}
+
+	public void setExam(Exam exam) {
+		this.exam = exam;
+	}
+
+	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 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 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 getExamNumber() {
+		return examNumber;
+	}
+
+	public void setExamNumber(String examNumber) {
+		this.examNumber = examNumber;
+	}
+
+	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 String getPaperType() {
+		return paperType;
+	}
+
+	public void setPaperType(String paperType) {
+		this.paperType = paperType;
+	}
+
+	public String getSpecialtyCode() {
+		return specialtyCode;
+	}
+
+	public void setSpecialtyCode(String specialtyCode) {
+		this.specialtyCode = specialtyCode;
+	}
+
+	public String getSpecialtyName() {
+		return specialtyName;
+	}
+
+	public void setSpecialtyName(String specialtyName) {
+		this.specialtyName = specialtyName;
+	}
+
+	public String getExamSite() {
+		return examSite;
+	}
+
+	public void setExamSite(String examSite) {
+		this.examSite = examSite;
+	}
+
+	public String getInfoCollector() {
+		return infoCollector;
+	}
+
+	public void setInfoCollector(String infoCollector) {
+		this.infoCollector = infoCollector;
+	}
+
+}