Explorar o código

考试结束 获取分数相关信息接口bug fix

lideyin %!s(int64=5) %!d(string=hai) anos
pai
achega
3b30a47cbd

+ 14 - 7
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/ExamControlServiceImpl.java

@@ -518,16 +518,23 @@ public class ExamControlServiceImpl implements ExamControlService {
     public EndExamInfo getEndExamInfo(Long examRecordDataId) {
         ExamRecordData examRecordData = examRecordDataService.getExamRecordDataCache(examRecordDataId);
         // 如果考试没有最终结束,则返回空值
-        if (null==examRecordData || (examRecordData.getExamRecordStatus() != ExamRecordStatus.EXAM_END
+        if (null == examRecordData || (examRecordData.getExamRecordStatus() != ExamRecordStatus.EXAM_END
                 && examRecordData.getExamRecordStatus() != ExamRecordStatus.EXAM_OVERDUE)) {
             return null;
         }
-        EndExamInfo endExamInfo = new EndExamInfo();
-        endExamInfo.setExamRecordDataId(examRecordDataId);
-        endExamInfo.setIsWarn(examRecordData.getIsWarn());// 是否异常数据
-        endExamInfo.setObjectiveScore(examRecordData.getObjectiveScore());// 客观题总分
-        endExamInfo.setObjectiveAccuracy(examRecordData.getObjectiveAccuracy());// 客观点答对比率
-        return endExamInfo;
+
+        //只有考试已结束 的才能返回最终结果
+        if (ExamRecordStatus.EXAM_END == examRecordData.getExamRecordStatus()
+                || ExamRecordStatus.EXAM_OVERDUE == examRecordData.getExamRecordStatus()) {
+            EndExamInfo endExamInfo = new EndExamInfo();
+            endExamInfo.setExamRecordDataId(examRecordDataId);
+            endExamInfo.setIsWarn(examRecordData.getIsWarn());// 是否异常数据
+            endExamInfo.setObjectiveScore(examRecordData.getObjectiveScore());// 客观题总分
+            endExamInfo.setObjectiveAccuracy(examRecordData.getObjectiveAccuracy());// 客观点答对比率
+            return endExamInfo;
+        }
+
+        return null;
     }
 
     @Override