فهرست منبع

修复试评回评排序检索问题

ting.yin 5 سال پیش
والد
کامیت
2407ff8bee

+ 3 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/dao/TrialHistoryDao.java

@@ -41,4 +41,7 @@ public interface TrialHistoryDao extends JpaRepository<TrialHistory, Integer>, J
     @Query("delete TrialHistory m where m.pk.markerId=?1")
     void deleteByMarkerId(Integer markerId);
 
+    List<TrialHistory> findByExamIdAndSubjectCodeAndGroupNumberAndPkMarkerIdAndStudentId(Integer examId,
+            String subjectCode, Integer groupNumber, Integer markerId, Integer studentId, Pageable query);
+
 }

+ 22 - 4
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/TrialServiceImpl.java

@@ -74,11 +74,15 @@ public class TrialServiceImpl extends BaseQueryService<TrialLibrary> implements
 
     @Override
     public List<TrialHistory> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
-            int pageNumber, int pageSize) {
+            int pageNumber, int pageSize, Sort sort) {
         BaseQuery<TrialHistory> query = new BaseQuery<>();
         query.setPageNumber(pageNumber);
         query.setPageSize(pageSize);
-        query.setSort(new Sort(Direction.DESC, "markerTime"));
+        if (sort != null) {
+            query.setSort(sort);
+        } else {
+            query.setSort(new Sort(Direction.DESC, "markerTime"));
+        }
         return historyDao.findByExamIdAndSubjectCodeAndGroupNumberAndPkMarkerId(examId, subjectCode, groupNumber,
                 markerId, query);
     }
@@ -134,10 +138,24 @@ public class TrialServiceImpl extends BaseQueryService<TrialLibrary> implements
                 if (query.getStudentId() != null) {
                     predicates.add(cb.equal(root.get("studentId"), query.getStudentId()));
                 }
-                return predicates.isEmpty() ? cb.conjunction()
-                        : cb.and(predicates.toArray(new Predicate[predicates.size()]));
+                return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
+                        .size()]));
             }
         };
     }
 
+    @Override
+    public List<TrialHistory> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
+            Integer studentId, int pageNumber, int pageSize, Sort sort) {
+        BaseQuery<TrialHistory> query = new BaseQuery<>();
+        query.setPageNumber(pageNumber);
+        query.setPageSize(pageSize);
+        if (sort != null) {
+            query.setSort(sort);
+        } else {
+            query.setSort(new Sort(Direction.DESC, "markerTime"));
+        }
+        return historyDao.findByExamIdAndSubjectCodeAndGroupNumberAndPkMarkerIdAndStudentId(examId, subjectCode, groupNumber,
+                markerId, studentId,query);
+    }
 }

+ 6 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/TrialService.java

@@ -2,6 +2,8 @@ package cn.com.qmth.stmms.biz.mark.service;
 
 import java.util.List;
 
+import org.springframework.data.domain.Sort;
+
 import cn.com.qmth.stmms.biz.mark.model.TrialHistory;
 import cn.com.qmth.stmms.biz.mark.model.TrialLibrary;
 import cn.com.qmth.stmms.biz.mark.model.TrialTag;
@@ -28,10 +30,13 @@ public interface TrialService {
     long countMarkerHistory(Integer markerId);
 
     List<TrialHistory> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
-            int pageNumber, int pageSize);
+            int pageNumber, int pageSize, Sort sort);
 
     List<TrialTrack> findTrack(Integer libraryId, Integer markerId);
 
     List<TrialTag> findTag(Integer libraryId, Integer markerId);
 
+    List<TrialHistory> findHistory(Integer examId, String subjectCode, Integer groupNumber, Integer markerId,
+            Integer studentId, int pageNumber, int pageSize, Sort querySort);
+
 }

+ 24 - 14
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -360,6 +360,18 @@ public class MarkController extends BaseController {
             @RequestParam(required = false) Integer studentId) throws Exception {
         Marker marker = RequestUtils.getWebUser(request).getMarker();
         List<Task> list = new ArrayList<>();
+        Direction d = Direction.DESC;
+        Sort querySort = null;
+        if (sort.equals("asc")) {
+            d = Direction.ASC;
+        }
+        if (order.equals("time")) {
+            querySort = new Sort(d, "markerTime");
+        } else if (order.equals("studentId")) {
+            querySort = new Sort(d, "studentId");
+        } else if (order.equals("score")) {
+            querySort = new Sort(d, "markerScore");
+        }
         MarkGroup group = groupService.findOne(marker.getExamId(), marker.getSubjectCode(), marker.getGroupNumber());
         if (group != null && group.getStatus() == MarkStatus.FORMAL) {
             // 正评查找已给分的评卷任务
@@ -372,16 +384,8 @@ public class MarkController extends BaseController {
             query.setTagNotNull(isTag);
             query.setPageNumber(pageNumber);
             query.setPageSize(pageSize);
-            Direction d = Direction.DESC;
-            if (sort.equals("asc")) {
-                d = Direction.ASC;
-            }
-            if (order.equals("time")) {
-                query.setSort(new Sort(d, "markerTime"));
-            } else if (order.equals("studentId")) {
-                query.setSort(new Sort(d, "studentId"));
-            } else if (order.equals("score")) {
-                query.setSort(new Sort(d, "markerScore"));
+            if (querySort != null) {
+                query.setSort(querySort);
             } else {
                 query.orderByMarkerTimeDesc();
             }
@@ -394,8 +398,14 @@ public class MarkController extends BaseController {
             }
         } else if (group != null && group.getStatus() == MarkStatus.TRIAL) {
             // 试评查找给分历史记录
-            List<TrialHistory> historyList = trialService.findHistory(marker.getExamId(), marker.getSubjectCode(),
-                    marker.getGroupNumber(), marker.getId(), pageNumber, pageSize);
+            List<TrialHistory> historyList = new ArrayList<TrialHistory>();
+            if (studentId != null) {
+                historyList = trialService.findHistory(marker.getExamId(), marker.getSubjectCode(),
+                        marker.getGroupNumber(), marker.getId(), studentId, pageNumber, pageSize, querySort);
+            } else {
+                historyList = trialService.findHistory(marker.getExamId(), marker.getSubjectCode(),
+                        marker.getGroupNumber(), marker.getId(), pageNumber, pageSize, querySort);
+            }
             for (TrialHistory history : historyList) {
                 TrialLibrary library = trialService.findLibrary(history.getLibraryId());
                 if (library != null) {
@@ -431,8 +441,8 @@ public class MarkController extends BaseController {
     public JSONObject updateSetting(HttpServletRequest request, @RequestParam String setting) {
         Marker marker = RequestUtils.getWebUser(request).getMarker();
         JSONObject result = new JSONObject();
-        markerService.updateMarkSetting(marker.getId(),
-                StringEscapeUtils.unescapeHtml(StringUtils.trimToNull(setting)));
+        markerService
+                .updateMarkSetting(marker.getId(), StringEscapeUtils.unescapeHtml(StringUtils.trimToNull(setting)));
         result.accumulate("success", true);
         return result;
     }