|
@@ -1,10 +1,12 @@
|
|
|
package cn.com.qmth.stmms.api.controller;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
|
import cn.com.qmth.stmms.api.utils.AESUtil;
|
|
|
import cn.com.qmth.stmms.biz.api.auth.annotation.AuthValidate;
|
|
|
+import cn.com.qmth.stmms.biz.api.auth.exception.ApiException;
|
|
|
import cn.com.qmth.stmms.biz.campus.model.Campus;
|
|
|
import cn.com.qmth.stmms.biz.campus.service.CampusService;
|
|
|
import cn.com.qmth.stmms.biz.exam.model.Exam;
|
|
@@ -33,7 +36,9 @@ import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
|
|
|
import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
|
|
|
import cn.com.qmth.stmms.biz.mark.model.MarkLibrary;
|
|
|
import cn.com.qmth.stmms.biz.mark.service.MarkLibraryService;
|
|
|
+import cn.com.qmth.stmms.biz.user.model.User;
|
|
|
import cn.com.qmth.stmms.common.enums.LibraryStatus;
|
|
|
+import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
|
import net.sf.json.JSONArray;
|
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
@@ -64,18 +69,21 @@ public class ExamStudentController {
|
|
|
@AuthValidate("adminUser")
|
|
|
@RequestMapping(value = "/package/{examId}", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
- public JSONArray getPackageCode(HttpServletRequest request, @PathVariable Integer examId) {
|
|
|
+ public JSONArray getPackageCode(HttpServletRequest request, HttpServletResponse response,
|
|
|
+ @PathVariable Integer examId) throws IOException {
|
|
|
+ User user = RequestUtils.getApiUser(request);
|
|
|
JSONArray array = new JSONArray();
|
|
|
Exam exam = examService.findById(examId);
|
|
|
- if (exam == null) {
|
|
|
- return array;
|
|
|
- }
|
|
|
-
|
|
|
- List<String> list = examStudentService.findDistinctPackageCode(examId);
|
|
|
- if (list != null) {
|
|
|
- for (String code : list) {
|
|
|
- array.add(code);
|
|
|
+ if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
+ List<String> list = examStudentService.findDistinctPackageCode(examId);
|
|
|
+ if (list != null) {
|
|
|
+ for (String code : list) {
|
|
|
+ array.add(code);
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ response.sendError(ApiException.EXAM_NOT_ACCESSIBLE.getCode(),
|
|
|
+ ApiException.EXAM_NOT_ACCESSIBLE.getMessage());
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
@@ -83,16 +91,20 @@ public class ExamStudentController {
|
|
|
@AuthValidate("adminUser")
|
|
|
@RequestMapping(value = "/package/{examId}", method = RequestMethod.POST)
|
|
|
@ResponseBody
|
|
|
- public int updatePackage(HttpServletRequest request, @PathVariable Integer examId,
|
|
|
- @RequestBody ExamPackage examPackage) {
|
|
|
+ public int updatePackage(HttpServletRequest request, HttpServletResponse response, @PathVariable Integer examId,
|
|
|
+ @RequestBody ExamPackage examPackage) throws IOException {
|
|
|
+ User user = RequestUtils.getApiUser(request);
|
|
|
Exam exam = examService.findById(examId);
|
|
|
- if (exam != null) {
|
|
|
+ if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
ExamPackage obj = packageService.find(examId, examPackage.getCode());
|
|
|
if (obj != null && examPackage.getPicCount() != null) {
|
|
|
obj.setPicCount(examPackage.getPicCount());
|
|
|
obj = packageService.save(obj);
|
|
|
return obj.getPicCount();
|
|
|
}
|
|
|
+ } else {
|
|
|
+ response.sendError(ApiException.EXAM_NOT_ACCESSIBLE.getCode(),
|
|
|
+ ApiException.EXAM_NOT_ACCESSIBLE.getMessage());
|
|
|
}
|
|
|
return -1;
|
|
|
}
|
|
@@ -101,32 +113,35 @@ public class ExamStudentController {
|
|
|
@RequestMapping(value = "/exam/students/{examId}", method = RequestMethod.GET)
|
|
|
@ResponseBody
|
|
|
public JSONArray getExamStudents(HttpServletRequest request, @PathVariable Integer examId,
|
|
|
- @RequestParam(required = false) Integer pageNumber, @RequestParam(required = false) Integer pageSize) {
|
|
|
+ @RequestParam(required = false) Integer pageNumber, @RequestParam(required = false) Integer pageSize) {
|
|
|
+ User user = RequestUtils.getApiUser(request);
|
|
|
JSONArray array = new JSONArray();
|
|
|
- List<ExamStudent> esList = new LinkedList<ExamStudent>();
|
|
|
Exam exam = examService.findById(examId);
|
|
|
- if ( pageNumber ==null || pageSize ==null || pageNumber == 0 || pageSize == 0 ) {
|
|
|
+ if (pageNumber == null || pageNumber < 1) {
|
|
|
pageNumber = 1;
|
|
|
- pageSize = Integer.MAX_VALUE;
|
|
|
}
|
|
|
- if (exam != null) {
|
|
|
- esList = examStudentService.findByExamId(examId,pageNumber,pageSize);
|
|
|
+ if (pageSize == null || pageSize < 1 || pageSize > 1000) {
|
|
|
+ pageSize = 1000;
|
|
|
}
|
|
|
- for (ExamStudent student : esList) {
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- obj.accumulate("examNumber", student.getExamNumber());
|
|
|
- obj.accumulate("campusName", student.getCampusName());
|
|
|
- obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
- obj.accumulate("subjectName", student.getSubjectName());
|
|
|
- obj.accumulate("name", student.getName());
|
|
|
- obj.accumulate("studentId", String.valueOf(student.getId()));
|
|
|
- obj.accumulate("studentCode",student.getStudentCode());
|
|
|
- obj.accumulate("packageCode",student.getPackageCode());
|
|
|
- obj.accumulate("barcode", student.getExamNumber());
|
|
|
|
|
|
- Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
- obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
- array.add(obj);
|
|
|
+ if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
+ List<ExamStudent> esList = examStudentService.findByExamId(examId, pageNumber, pageSize);
|
|
|
+ for (ExamStudent student : esList) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.accumulate("examNumber", student.getExamNumber());
|
|
|
+ obj.accumulate("campusName", student.getCampusName());
|
|
|
+ obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
+ obj.accumulate("subjectName", student.getSubjectName());
|
|
|
+ obj.accumulate("name", student.getName());
|
|
|
+ obj.accumulate("studentId", String.valueOf(student.getId()));
|
|
|
+ obj.accumulate("studentCode", student.getStudentCode());
|
|
|
+ obj.accumulate("packageCode", student.getPackageCode());
|
|
|
+ obj.accumulate("barcode", student.getExamNumber());
|
|
|
+
|
|
|
+ Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
+ obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
+ array.add(obj);
|
|
|
+ }
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
@@ -137,37 +152,31 @@ public class ExamStudentController {
|
|
|
public JSONArray getStudent(HttpServletRequest request, @PathVariable Integer examId,
|
|
|
@RequestParam(required = false) Boolean upload, @RequestParam(required = false) Boolean absent,
|
|
|
@RequestParam(required = false) Integer pageNumber, @RequestParam(required = false) Integer pageSize) {
|
|
|
+ User user = RequestUtils.getApiUser(request);
|
|
|
JSONArray array = new JSONArray();
|
|
|
Exam exam = examService.findById(examId);
|
|
|
- if (exam == null) {
|
|
|
- return array;
|
|
|
- }
|
|
|
-
|
|
|
- ExamStudentSearchQuery query = new ExamStudentSearchQuery();
|
|
|
- query.setExamId(examId);
|
|
|
- query.setUpload(upload);
|
|
|
- query.setAbsent(absent);
|
|
|
- if (pageNumber != null && pageSize != null) {
|
|
|
+ if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
+ ExamStudentSearchQuery query = new ExamStudentSearchQuery();
|
|
|
+ query.setExamId(examId);
|
|
|
+ query.setUpload(upload);
|
|
|
+ query.setAbsent(absent);
|
|
|
query.setPageNumber(pageNumber);
|
|
|
query.setPageSize(pageSize);
|
|
|
- } else {
|
|
|
- query.setPageNumber(1);
|
|
|
- query.setPageSize(Integer.MAX_VALUE);
|
|
|
- }
|
|
|
- examStudentService.findByQuery(query);
|
|
|
- for (ExamStudent student : query.getResult()) {
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- obj.accumulate("id", student.getId());
|
|
|
- obj.accumulate("examNumber", student.getExamNumber());
|
|
|
- obj.accumulate("campusName", student.getCampusName());
|
|
|
- obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
- obj.accumulate("subjectName", student.getSubjectName());
|
|
|
- obj.accumulate("name", student.getName());
|
|
|
- obj.accumulate("studentCode", student.getStudentCode());
|
|
|
+ examStudentService.findByQuery(query);
|
|
|
+ for (ExamStudent student : query.getResult()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.accumulate("id", student.getId());
|
|
|
+ obj.accumulate("examNumber", student.getExamNumber());
|
|
|
+ obj.accumulate("campusName", student.getCampusName());
|
|
|
+ obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
+ obj.accumulate("subjectName", student.getSubjectName());
|
|
|
+ obj.accumulate("name", student.getName());
|
|
|
+ obj.accumulate("studentCode", student.getStudentCode());
|
|
|
|
|
|
- Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
- obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
- array.add(obj);
|
|
|
+ Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
+ obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
+ array.add(obj);
|
|
|
+ }
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
@@ -176,44 +185,38 @@ public class ExamStudentController {
|
|
|
@RequestMapping(value = "/exam/students")
|
|
|
@ResponseBody
|
|
|
public JSONArray getStudent(HttpServletRequest request, ExamStudentSearchQuery query) {
|
|
|
+ User user = RequestUtils.getApiUser(request);
|
|
|
JSONArray array = new JSONArray();
|
|
|
- // User user = RequestUtils.getApiUser(request);
|
|
|
- // if (user.getSchoolId() != null) {
|
|
|
- // List<Exam> exams = examService.findBySchoolId(user.getSchoolId());
|
|
|
- // }
|
|
|
- if(query.getExamId() == null){
|
|
|
+ if (query.getExamId() == null) {
|
|
|
return array;
|
|
|
}
|
|
|
Exam exam = examService.findById(query.getExamId());
|
|
|
- if (exam == null) {
|
|
|
- return array;
|
|
|
- }
|
|
|
- if (query.getPageNumber() == 0 || query.getPageSize() == 0) {
|
|
|
- query.setPageNumber(1);
|
|
|
- query.setPageSize(Integer.MAX_VALUE);
|
|
|
- }
|
|
|
- examStudentService.findByQuery(query);
|
|
|
- for (ExamStudent student : query.getResult()) {
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- obj.accumulate("id", student.getId());
|
|
|
- obj.accumulate("examNumber", student.getExamNumber());
|
|
|
- obj.accumulate("campusName", student.getCampusName());
|
|
|
- obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
- obj.accumulate("subjectName", student.getSubjectName());
|
|
|
- obj.accumulate("name", student.getName());
|
|
|
- obj.accumulate("studentCode", student.getStudentCode());
|
|
|
- obj.accumulate("packageCode", student.getPackageCode());
|
|
|
- obj.accumulate("batchCode", student.getBatchCode() == null ? "" : student.getBatchCode());
|
|
|
- obj.accumulate("sheetCount", student.getSheetCount());
|
|
|
- obj.accumulate("sliceCount", student.getSliceCount());
|
|
|
- obj.accumulate("answers", student.getAnswers() == null ? "" : student.getAnswers());
|
|
|
- obj.accumulate("upload", student.isUpload());
|
|
|
- obj.accumulate("absent", student.isAbsent());
|
|
|
- obj.accumulate("objectiveScore", student.getObjectiveScore()==null?"":student.getObjectiveScore());
|
|
|
- obj.accumulate("subjectiveScore", student.getSubjectiveScore()==null?"":student.getSubjectiveScore());
|
|
|
- Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
- obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
- array.add(obj);
|
|
|
+ if (exam != null && exam.getSchoolId().equals(user.getSchoolId())) {
|
|
|
+ examStudentService.findByQuery(query);
|
|
|
+ for (ExamStudent student : query.getResult()) {
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.accumulate("id", student.getId());
|
|
|
+ obj.accumulate("examNumber", student.getExamNumber());
|
|
|
+ obj.accumulate("campusName", student.getCampusName());
|
|
|
+ obj.accumulate("subjectCode", student.getSubjectCode());
|
|
|
+ obj.accumulate("subjectName", student.getSubjectName());
|
|
|
+ obj.accumulate("name", student.getName());
|
|
|
+ obj.accumulate("studentCode", student.getStudentCode());
|
|
|
+ obj.accumulate("packageCode", student.getPackageCode());
|
|
|
+ obj.accumulate("batchCode", student.getBatchCode() == null ? "" : student.getBatchCode());
|
|
|
+ obj.accumulate("sheetCount", student.getSheetCount());
|
|
|
+ obj.accumulate("sliceCount", student.getSliceCount());
|
|
|
+ obj.accumulate("answers", student.getAnswers() == null ? "" : student.getAnswers());
|
|
|
+ obj.accumulate("upload", student.isUpload());
|
|
|
+ obj.accumulate("absent", student.isAbsent());
|
|
|
+ obj.accumulate("objectiveScore",
|
|
|
+ student.getObjectiveScore() == null ? "" : student.getObjectiveScore());
|
|
|
+ obj.accumulate("subjectiveScore",
|
|
|
+ student.getSubjectiveScore() == null ? "" : student.getSubjectiveScore());
|
|
|
+ Campus campus = campusService.findBySchoolAndName(exam.getSchoolId(), student.getCampusName());
|
|
|
+ obj.accumulate("campusCode", campus != null ? campus.getId().toString() : "");
|
|
|
+ array.add(obj);
|
|
|
+ }
|
|
|
}
|
|
|
return array;
|
|
|
}
|
|
@@ -346,12 +349,12 @@ public class ExamStudentController {
|
|
|
} else {
|
|
|
absentSetObj(detail, obj);
|
|
|
}
|
|
|
- obj.accumulate("absent",student.isAbsent());
|
|
|
+ obj.accumulate("absent", student.isAbsent());
|
|
|
} else {
|
|
|
obj.accumulate("exist", false);
|
|
|
obj.accumulate("examId", "");
|
|
|
obj.accumulate("upload", false);
|
|
|
- obj.accumulate("absent",true);
|
|
|
+ obj.accumulate("absent", true);
|
|
|
absentSetObj(detail, obj);
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(examSeqCode)) {
|