Преглед на файлове

获取学生成绩接口需求变更

lideyin преди 5 години
родител
ревизия
f10f8b928a

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

@@ -350,20 +350,32 @@ public class ExamScoreDataCloudServiceProvider extends ControllerSupport impleme
         }
 
         GetFinalScoreDataResp resp = new GetFinalScoreDataResp();
+        //如果该学生缺考,直接返回
+        ExamStudentEntity examStudent = examStudentRepo.findByIdentityNumberAndExamIdAndCourseId(
+                identityNumber, req.getExamId(), courseId);
+        Boolean isAbsent = examStudent.getFinished() == null || !examStudent.getFinished();
+        if (isAbsent) {
+            resp.setAbsent(true);
+            return resp;
+        }
+
         //最终生效的考试分数对象
         ExamScoreEntity finalExamScore =
                 examScoreService.getFinalEffectiveExamScore(req.getExamId(), identityNumber, courseId);
 
         //如果查到最终有分数数据,则直接返回
         if (finalExamScore != null) {
-            resp.setPresent(true);
-            resp.setScoreDataBean(buildScoreDataBean(identityNumber, courseBean,
-                    finalExamScore.getTotalScore(), finalExamScore.getExamRecordDataId()));
+            ScoreDataBean scoreDataBean = buildScoreDataBean(identityNumber, courseBean,
+                    finalExamScore.getTotalScore(), finalExamScore.getExamRecordDataId());
+            resp.setScoreDataBean(scoreDataBean);
+            resp.setAbsent(false);
+            resp.setIllegality(false);
+            resp.setAudit(scoreDataBean.getIsAudit());
             return resp;
         }
 
         //如果查不到有效的分数集合,则将所有的考试分数集合均返回
-        resp.setPresent(false);
+        resp.setAbsent(false);
         List<ExamScoreEntity> allExamScoreList =
                 examScoreService.getAllExamScoreList(req.getExamId(), identityNumber, courseId);
         if (allExamScoreList == null) {
@@ -376,6 +388,8 @@ public class ExamScoreDataCloudServiceProvider extends ControllerSupport impleme
                     courseBean, scoreEntity.getTotalScore(), scoreEntity.getExamRecordDataId()));
         }
         resp.setAllScoreDataBeanList(scoreDataBeanList);
+        resp.setAudit(scoreDataBeanList.stream().anyMatch(p -> p.getIsAudit() == null || !p.getIsAudit()));
+        resp.setIllegality(scoreDataBeanList.stream().anyMatch(p -> p.getIsIllegality() != null && p.getIsIllegality()));
         return resp;
 
     }