Jelajahi Sumber

fix getFinalScoreData

deason 2 bulan lalu
induk
melakukan
b83ebeb1b4

+ 6 - 3
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamScoreDataCloudServiceProvider.java

@@ -588,18 +588,21 @@ public class ExamScoreDataCloudServiceProvider extends ControllerSupport impleme
             return resp;
             return resp;
         }
         }
 
 
-        //如果查不到有效的分数集合,则将所有的考试分数集合均返回
-        resp.setAbsent(false);
+        //如果查不到最终成绩,再查考试记录的有效的分数集合
         List<ExamScoreEntity> allExamScoreList = examScoreService.getAllExamScoreList(req.getExamId(), identityNumber, courseId);
         List<ExamScoreEntity> allExamScoreList = examScoreService.getAllExamScoreList(req.getExamId(), identityNumber, courseId);
-        if (allExamScoreList == null) {
+        if (allExamScoreList == null || allExamScoreList.isEmpty()) {
+            resp.setAbsent(true);// 若一条记录都没有,算缺考
             return resp;
             return resp;
         }
         }
 
 
+        //否则不算缺考,将所有的考试分数集合均返回
+        resp.setAbsent(false);
         List<ScoreDataBean> scoreDataBeanList = new ArrayList<>();
         List<ScoreDataBean> scoreDataBeanList = new ArrayList<>();
         for (ExamScoreEntity scoreEntity : allExamScoreList) {
         for (ExamScoreEntity scoreEntity : allExamScoreList) {
             scoreDataBeanList.add(buildScoreDataBean(identityNumber, courseBean, scoreEntity.getTotalScore(), scoreEntity.getExamRecordDataId()));
             scoreDataBeanList.add(buildScoreDataBean(identityNumber, courseBean, scoreEntity.getTotalScore(), scoreEntity.getExamRecordDataId()));
         }
         }
         resp.setAllScoreDataBeanList(scoreDataBeanList);
         resp.setAllScoreDataBeanList(scoreDataBeanList);
+
         resp.setAudit(scoreDataBeanList.stream().anyMatch(p -> p.getIsAudit() == null || !p.getIsAudit()));
         resp.setAudit(scoreDataBeanList.stream().anyMatch(p -> p.getIsAudit() == null || !p.getIsAudit()));
         resp.setIllegality(scoreDataBeanList.stream().anyMatch(p -> p.getIsIllegality() != null && p.getIsIllegality()));
         resp.setIllegality(scoreDataBeanList.stream().anyMatch(p -> p.getIsIllegality() != null && p.getIsIllegality()));
         return resp;
         return resp;