Procházet zdrojové kódy

取作答记录的代码优化

lideyin před 5 roky
rodič
revize
ddc1d910b5

+ 7 - 2
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/controller/ExamRecordQuestionsController.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.oe.admin.api.controller;
 
+import cn.com.qmth.examcloud.core.oe.admin.service.ExamRecordQuestionsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -30,7 +31,10 @@ public class ExamRecordQuestionsController extends ControllerSupport{
 
 	@Autowired
 	private ExamRecordQuestionsRepo examRecordQuestionsRepo;
-	
+
+	@Autowired
+	private ExamRecordQuestionsService examRecordQuestionsService;
+
     @Autowired
     private ExamRecordDataSyncService examRecordDataSyncService;
 	
@@ -44,7 +48,8 @@ public class ExamRecordQuestionsController extends ControllerSupport{
                 throw new StatusException("1001", "未找到数据");
             }
         }
-		return examRecordQuestionsRepo.findByExamRecordDataId(examRecordDataId);
+
+		return examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
 	}
 	
 }

+ 2 - 2
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordCloudServiceProvider.java

@@ -416,7 +416,7 @@ public class ExamRecordCloudServiceProvider extends ControllerSupport implements
      * @return
      */
     private String getCorrectAnswer(Integer curSubNumber, String questionId,
-                           QuestionCacheBean cachedQues, List<ExamQuestionEntity> subjectiveQuesList) {
+                                    QuestionCacheBean cachedQues, List<ExamQuestionEntity> subjectiveQuesList) {
         QuestionAnswerCacheBean questionAnswerCache = CacheHelper.getQuestionAnswer(questionId);
         List<String> rightAnswerList = questionAnswerCache.getRightAnswers();
         DefaultQuestionStructure questionStructure = cachedQues.getDefaultQuestion().getMasterVersion();
@@ -487,7 +487,7 @@ public class ExamRecordCloudServiceProvider extends ControllerSupport implements
         if (null != recordQuestionsId) {
             questionsEntity = GlobalHelper.getEntity(examRecordQuestionsRepo, recordQuestionsId, ExamRecordQuestionsEntity.class);
         } else {
-            questionsEntity = examRecordQuestionsRepo.findByExamRecordDataId(examRecordDataId);
+            questionsEntity = examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
         }
 
         List<ExamQuestionEntity> examQuestionList = questionsEntity.getExamQuestionEntities();

+ 1 - 1
examcloud-core-oe-admin-api-provider/src/main/java/cn/com/qmth/examcloud/core/oe/admin/api/provider/ExamRecordQuestionsCloudServiceProvider.java

@@ -137,7 +137,7 @@ public class ExamRecordQuestionsCloudServiceProvider extends ControllerSupport i
             if (null != recordQuestionsId) {
                 questionsEntity = GlobalHelper.getEntity(examRecordQuestionsRepo, recordQuestionsId, ExamRecordQuestionsEntity.class);
             } else {
-                questionsEntity = examRecordQuestionsRepo.findByExamRecordDataId(record.getId());
+                questionsEntity = examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(record.getId());
             }
 
             List<ExamQuestionEntity> examQuestionList = questionsEntity.getExamQuestionEntities();

+ 4 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamRecordQuestionsServiceImpl.java

@@ -55,7 +55,7 @@ public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsServic
                 GlobalHelper.getEntity(examRecordDataRepo, examRecordDataId, ExamRecordDataEntity.class);
 
         ExamRecordQuestionsEntity examRecordQuestionsEntity =
-                GlobalHelper.getEntity(examRecordQuestionsRepo,examRecordData.getExamRecordQuestionsId(),ExamRecordQuestionsEntity.class);
+                GlobalHelper.getEntity(examRecordQuestionsRepo, examRecordData.getExamRecordQuestionsId(), ExamRecordQuestionsEntity.class);
 
         List<ExamQuestionEntity> examRecordQuestionList = examRecordQuestionsEntity.getExamQuestionEntities();
 
@@ -67,8 +67,9 @@ public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsServic
     @Override
     public void saveSubjectiveQuestionScore(Long examRecordDataId, List<SubjectiveQuestionScoreInfo> subjectiveQuestionScoreInfoList) {
         ExamRecordDataEntity examRecordData = GlobalHelper.getEntity(examRecordDataRepo, examRecordDataId, ExamRecordDataEntity.class);
-        if (ExamType.ONLINE == examRecordData.getExamType() || ExamType.ONLINE_HOMEWORK==examRecordData.getExamType()) {
-            ExamRecordQuestionsEntity examRecordQuestionsEntity = examRecordQuestionsRepo.findByExamRecordDataId(examRecordDataId);
+        if (ExamType.ONLINE == examRecordData.getExamType() || ExamType.ONLINE_HOMEWORK == examRecordData.getExamType()) {
+            ExamRecordQuestionsEntity examRecordQuestionsEntity =
+                    getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
             List<ExamQuestionEntity> examRecordQuestionList = examRecordQuestionsEntity.getExamQuestionEntities();
 
             for (SubjectiveQuestionScoreInfo scoreInfo : subjectiveQuestionScoreInfoList) {

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

@@ -224,7 +224,8 @@ public class PracticeServiceImpl implements PracticeService {
         List<PaperStructInfo> paperStructInfos = new ArrayList<PaperStructInfo>();
         List<DefaultQuestionGroup> questionGroupList = defaultPaper.getQuestionGroupList();
         //取出作答记录
-        ExamRecordQuestionsEntity examRecordQuestions = examRecordQuestionsRepo.findByExamRecordDataId(examRecordDataId);
+        ExamRecordQuestionsEntity examRecordQuestions =
+                examRecordQuestionsService.getExamRecordQuestionsAndFixExamRecordDataIfNecessary(examRecordDataId);
         List<ExamQuestionEntity> examQuestionEntities = examRecordQuestions.getExamQuestionEntities();
         //遍历大题
         int objectiveNum = 0;//各个大题中的客观题总数