ソースを参照

全客观题bug fix

lideyin 5 年 前
コミット
a881ba15b7

+ 7 - 11
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/ExamRecordDataService.java

@@ -23,20 +23,16 @@ import cn.com.qmth.examcloud.support.examing.ExamingSession;
 public interface ExamRecordDataService {
 
     /**
-     * 创建ExamRecordDataEntity
-     * 
-     * @param examedTimes
-     *            已考次数
-     * @param canExamTimes
-     *            可考次数
-     * @param isReExamine
-     *            本次考试是否为重考
-     * @param isFullyObjetive
-     *            是否全客观题
+     *
+     * @param examingSession
+     * @param examBean
+     * @param courseBean
+     * @param basePaperId
+     * @param isFullyObjective
      * @return
      */
     ExamRecordData createExamRecordData(ExamingSession examingSession, ExamSettingsCacheBean examBean, CourseCacheBean courseBean,
-                                        String basePaperId);
+                                        String basePaperId,boolean isFullyObjective);
 
     /**
      *

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

@@ -197,10 +197,17 @@ public class ExamControlServiceImpl implements ExamControlService {
             throw new StatusException("1007", "获取试卷失败");
         }
 
+        // 生成试卷结构
+        ExtractConfigPaperCacheBean extractConfigPaper = CacheHelper.getExtractConfigPaper(examingSession.getExamId(),
+                courseBean.getCode(), examingSession.getPaperType(), paperId);
+        if (log.isDebugEnabled()) {
+            log.debug("5 获取题库试卷结构耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+        }
+
         // 生成考试记录
         startTime = System.currentTimeMillis();
         ExamRecordData examRecordData = examRecordDataService.createExamRecordData(examingSession, examBean, courseBean,
-                paperId);
+                paperId, extractConfigPaper.getDefaultPaper().getFullyObjective());
 
         // 如果开启人脸比对,将同步人脸比对结果存储到抓后结果表中
         Long rootOrgId = examRecordData.getRootOrgId();
@@ -216,12 +223,6 @@ public class ExamControlServiceImpl implements ExamControlService {
             log.debug("4 生成考试记录耗时:" + (System.currentTimeMillis() - startTime) + " ms");
         }
 
-        // 生成试卷结构
-        ExtractConfigPaperCacheBean extractConfigPaper = CacheHelper.getExtractConfigPaper(examingSession.getExamId(),
-                courseBean.getCode(), examingSession.getPaperType(), paperId);
-        if (log.isDebugEnabled()) {
-            log.debug("5 获取题库试卷结构耗时:" + (System.currentTimeMillis() - startTime) + " ms");
-        }
 
         // 小题乱序,选项乱序
         startTime = System.currentTimeMillis();

+ 2 - 1
examcloud-core-oe-student-service/src/main/java/cn/com/qmth/examcloud/core/oe/student/service/impl/ExamRecordDataServiceImpl.java

@@ -73,7 +73,7 @@ public class ExamRecordDataServiceImpl implements ExamRecordDataService {
     @Transactional
     @Override
     public ExamRecordData createExamRecordData(ExamingSession examingSession, ExamSettingsCacheBean examBean,
-                                               CourseCacheBean courseBean, String basePaperId) {
+                                               CourseCacheBean courseBean, String basePaperId,boolean isFullyObjective) {
         ExamRecordDataEntity examRecordData = new ExamRecordDataEntity();
         examRecordData.setExamId(examBean.getId());
         examRecordData.setExamType(ExamType.valueOf(examBean.getExamType()));
@@ -97,6 +97,7 @@ public class ExamRecordDataServiceImpl implements ExamRecordDataService {
         examRecordData.setFaceStrangerCount(0);
         examRecordData.setExamRecordStatus(ExamRecordStatus.EXAM_ING);
         examRecordData.setSyncStatus(SyncStatus.UNSYNC);
+        examRecordData.setIsAllObjectivePaper(isFullyObjective);
         examRecordDataRepo.save(examRecordData);
         ExamRecordData bean = of(examRecordData);
         //存入redis