lideyin 5 lat temu
rodzic
commit
f9f4fbbdae

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

@@ -83,6 +83,9 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
     private ExamScoreRepo examScoreRepo;
     @Autowired
     private ExamStudentCache examStudentCache;
+    @Autowired
+    private ExamStudentFinalScoreService examStudentFinalScoreService;
+
 
     /**
      * 同步考试记录数据
@@ -105,7 +108,8 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         ExamRecordDataBean transitionExamRecordData = req.getExamRecordData();
 
         //必须先更新考生的考试次数,同步考试记录会用
-        increaseUsedExamTimes(transitionExamRecordData.getExamStudentId());
+        Long examStudentId = transitionExamRecordData.getExamStudentId();
+        increaseUsedExamTimes(examStudentId);
 
         //同步考试记录,并返回真实的考试记录id
         Long realExamRecordDataId = syncExamRecordData(transitionExamRecordData);
@@ -116,6 +120,9 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         //同步考试分数表
         Long examScoreId = syncExamScore(transitionExamRecordData, realExamRecordDataId);
 
+        //计算最终分数
+        examStudentFinalScoreService.calcAndSaveFinalScore(examStudentId);
+
         //同步抓拍照片结果(同步抓拍的数据)
         if (null != req.getExamSyncCapture()) {
             syncExamSyncCapture(req.getExamSyncCapture(), realExamRecordDataId);
@@ -154,7 +161,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
 
         //同步后续处理
         processAfterSyncExamData(realExamRecordDataId, examScoreId, transitionExamRecordData.getObjectiveScore(),
-                transitionExamRecordData.getExamStudentId());
+                examStudentId);
 
         return new SyncExamDataResp();
     }
@@ -173,7 +180,7 @@ public class SyncExamDataCloudServiceProvider extends ControllerSupport implemen
         examScoreEntity.setSubjectiveScore(transitionExamRecordData.getSubjectiveScore());
         examScoreEntity.setSuccPercent(transitionExamRecordData.getSuccPercent());
 
-        ExamScoreEntity result = examScoreRepo.save(examScoreEntity);
+        ExamScoreEntity result = examScoreRepo.saveAndFlush(examScoreEntity);
 
         return result.getId();
     }

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

@@ -9,7 +9,7 @@ import cn.com.qmth.examcloud.core.oe.admin.dao.entity.ExamStudentFinalScoreEntit
  * @Version 1.0
  */
 public interface ExamStudentFinalScoreService {
-    ExamStudentFinalScoreEntity calculateFinalScore(Long examStudentId);
+    ExamStudentFinalScoreEntity calcAndSaveFinalScore(Long examStudentId);
 
     ExamStudentFinalScoreEntity getFinalEffectiveExamScore(Long examStudentId);
 }

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

@@ -44,13 +44,6 @@ public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsServic
     @Autowired
     private ExamScoreRepo examScoreRepo;
 
-    @Autowired
-    private RedisTemplate<String, Object> redisTemplate;
-
-    @Autowired
-    private ExtractConfigCloudService extractConfigCloudService;
-
-
     //本地题干缓存,最大200道题,默认缓存120秒
     private Cache<String, String> questionContentCache = CacheBuilder.newBuilder().maximumSize(200)
             .expireAfterWrite(120, TimeUnit.SECONDS).build();
@@ -100,7 +93,7 @@ public class ExamRecordQuestionsServiceImpl implements ExamRecordQuestionsServic
         examScoreRepo.save(examScoreEntity);
 
         //计算考生的最终分数
-        examStudentFinalScoreService.calculateFinalScore(examRecordData.getExamStudentId());
+        examStudentFinalScoreService.calcAndSaveFinalScore(examRecordData.getExamStudentId());
     }
 
     @Override

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

@@ -40,7 +40,7 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
     private ExamStudentFinalScoreRepo examStudentFinalScoreRepo;
 
     @Override
-    public ExamStudentFinalScoreEntity calculateFinalScore(Long examStudentId) {
+    public ExamStudentFinalScoreEntity calcAndSaveFinalScore(Long examStudentId) {
         ExamStudentEntity examStudent = examStudentRepo.findByExamStudentId(examStudentId);
         String markingType = ExamCacheTransferHelper.
                 getDefaultCachedExamProperty(examStudent.getExamId(), ExamProperties.MARKING_TYPE.name()).getValue();
@@ -64,7 +64,7 @@ public class ExamStudentFinalScoreServiceImpl implements ExamStudentFinalScoreSe
         }
 
         //历史数据弥补:如果数据不存在,则重新计算并保存
-        return this.calculateFinalScore(examStudentId);
+        return this.calcAndSaveFinalScore(examStudentId);
     }
 
     private ExamStudentFinalScoreEntity saveExamStudentFinalScore(Long examStudentId, final ExamScoreEntity finalEffectiveExamScore) {