Browse Source

接口优化:
1.接口查询有风险,最好加上默认分页,请求参数也可以自带分页;
2.云阅卷现在版本暴露出来的考生查询API,有个接口有bug,会报500错误

nikang 6 years ago
parent
commit
15adbb9ab2

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/ExamStudentService.java

@@ -83,4 +83,6 @@ public interface ExamStudentService {
 	
 	public String findIdsByMarkName(String markName);
 
+    List<ExamStudent> findByExamId(int examId,int pageNumber,int pageSize);
+
 }

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamStudentServiceImpl.java

@@ -19,6 +19,8 @@ import javax.persistence.criteria.Expression;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -257,6 +259,14 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
         return studentDao.findByExamId(examId, null);
     }
 
+    @Override
+    public List<ExamStudent> findByExamId(int examId,int pageNumber, int pageSize) {
+        ExamStudentSearchQuery query = new ExamStudentSearchQuery();
+        query.setPageNumber(pageNumber);
+        query.setPageSize(pageSize);
+        return studentDao.findByExamId(examId, query);
+    }
+
     @Override
     public List<ExamStudent> findByExamIdAndUploadAndAbsent(int examId, boolean upload, boolean absent, int pageNumber,
             int pageSize) {

+ 12 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/ExamStudentController.java

@@ -100,12 +100,17 @@ public class ExamStudentController {
     @AuthValidate("adminUser")
     @RequestMapping(value = "/exam/students/{examId}", method = RequestMethod.GET)
     @ResponseBody
-    public JSONArray getExamStudents(HttpServletRequest request, @PathVariable Integer examId) {
+    public JSONArray getExamStudents(HttpServletRequest request, @PathVariable Integer examId,
+                                     @RequestParam(required = false) Integer pageNumber, @RequestParam(required = false) Integer pageSize) {
         JSONArray array = new JSONArray();
         List<ExamStudent> esList = new LinkedList<ExamStudent>();
         Exam exam = examService.findById(examId);
+        if (pageNumber == null && pageSize == null) {
+            pageNumber = 1;
+            pageSize = Integer.MAX_VALUE;
+        }
         if (exam != null) {
-            esList = examStudentService.findByExamId(examId);
+            esList = examStudentService.findByExamId(examId,pageNumber,pageSize);
         }
         for (ExamStudent student : esList) {
             JSONObject obj = new JSONObject();
@@ -115,6 +120,8 @@ public class ExamStudentController {
             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());
@@ -174,6 +181,9 @@ public class ExamStudentController {
         // if (user.getSchoolId() != null) {
         // List<Exam> exams = examService.findBySchoolId(user.getSchoolId());
         // }
+        if(query.getExamId() == null){
+            return array;
+        }
         Exam exam = examService.findById(query.getExamId());
         if (exam == null) {
             return array;