1
0
Эх сурвалжийг харах

修复仲裁回评排序检索问题

ting.yin 5 жил өмнө
parent
commit
d86b556b14

+ 29 - 6
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/ArbitrateController.java

@@ -10,10 +10,14 @@ import java.util.Set;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
+import net.sf.json.JSONObject;
+
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
 import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -42,7 +46,6 @@ import cn.com.qmth.stmms.common.enums.HistoryStatus;
 import cn.com.qmth.stmms.common.enums.LockType;
 import cn.com.qmth.stmms.common.enums.LockType;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.enums.Role;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
 import cn.com.qmth.stmms.common.utils.RequestUtils;
-import net.sf.json.JSONObject;
 
 
 @Controller("arbitrateController")
 @Controller("arbitrateController")
 @RequestMapping("/admin/exam/arbitrate")
 @RequestMapping("/admin/exam/arbitrate")
@@ -70,7 +73,7 @@ public class ArbitrateController extends BaseExamController {
 
 
     @Autowired
     @Autowired
     private LockService lockService;
     private LockService lockService;
-    
+
     @Autowired
     @Autowired
     private ExamQuestionService questionService;
     private ExamQuestionService questionService;
 
 
@@ -197,9 +200,23 @@ public class ArbitrateController extends BaseExamController {
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     public List<Task> getHistory(HttpServletRequest request, @PathVariable String subjectCode,
     public List<Task> getHistory(HttpServletRequest request, @PathVariable String subjectCode,
             @PathVariable Integer groupNumber, @RequestParam(required = false) Integer pageNumber,
             @PathVariable Integer groupNumber, @RequestParam(required = false) Integer pageNumber,
-            @RequestParam(required = false) Integer pageSize) {
+            @RequestParam(required = false) Integer pageSize, @RequestParam String order, @RequestParam String sort,
+            @RequestParam(required = false, defaultValue = "false") Boolean isTag,
+            @RequestParam(required = false) Integer studentId) {
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
         WebUser wu = RequestUtils.getWebUser(request);
         WebUser wu = RequestUtils.getWebUser(request);
+        Direction d = Direction.DESC;
+        Sort querySort = null;
+        if (sort.equals("asc")) {
+            d = Direction.ASC;
+        }
+        if (order.equals("time")) {
+            querySort = new Sort(d, "updateTime");
+        } else if (order.equals("studentId")) {
+            querySort = new Sort(d, "studentId");
+        } else if (order.equals("score")) {
+            querySort = new Sort(d, "totalScore");
+        }
         MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
         MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
         List<Task> list = new LinkedList<Task>();
         List<Task> list = new LinkedList<Task>();
         if (subjectCheck(subjectCode, wu) && group != null) {
         if (subjectCheck(subjectCode, wu) && group != null) {
@@ -211,7 +228,14 @@ public class ArbitrateController extends BaseExamController {
             query.setUserId(wu.getUser().getId());
             query.setUserId(wu.getUser().getId());
             query.setPageNumber(pageNumber);
             query.setPageNumber(pageNumber);
             query.setPageSize(pageSize);
             query.setPageSize(pageSize);
-            query.orderByUpdateTimeDesc();
+            if (querySort != null) {
+                query.setSort(querySort);
+            } else {
+                query.orderByUpdateTimeDesc();
+            }
+            if (studentId != null) {
+                query.setStudentId(studentId);
+            }
             query = arbitrateService.findByQuery(query);
             query = arbitrateService.findByQuery(query);
             for (ArbitrateHistory history : query.getResult()) {
             for (ArbitrateHistory history : query.getResult()) {
                 list.add(taskService.build(history, group));
                 list.add(taskService.build(history, group));
@@ -240,8 +264,7 @@ public class ArbitrateController extends BaseExamController {
     @RequestMapping("/getTask")
     @RequestMapping("/getTask")
     @ResponseBody
     @ResponseBody
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER })
-    public Task getTask(HttpServletRequest request, @RequestParam String subjectCode,
-            @RequestParam Integer groupNumber) {
+    public Task getTask(HttpServletRequest request, @RequestParam String subjectCode, @RequestParam Integer groupNumber) {
         int examId = getSessionExamId(request);
         int examId = getSessionExamId(request);
         WebUser wu = RequestUtils.getWebUser(request);
         WebUser wu = RequestUtils.getWebUser(request);
         MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);
         MarkGroup group = groupService.findOne(examId, subjectCode, groupNumber);