Explorar el Código

调卷规则校验课程

xiatian hace 2 años
padre
commit
47b587c79b

+ 6 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java

@@ -165,11 +165,17 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 
     @Override
     public List<ExamPaper> saveExtractConfig(ExtractConfig extractConfig, User user) {
+    	Course course = courseService.getCourse(Long.valueOf(extractConfig.getOrgId()), extractConfig.getCourseCode());
+        extractConfig.setCourse(course);
+        extractConfig.setCourseName(course.getName());
         List<ExamPaper> examPapers = extractConfig.getExamPaperList();
         for (int i = 0; i < examPapers.size(); i++) {
             ExamPaper examPaper = examPapers.get(i);
             Paper paper = examPaper.getPaper();
             paper = Model.of(paperRepo.findById(paper.getId()));
+            if(!paper.getCourse().getId().equals(extractConfig.getCourse().getId())) {
+            	throw new StatusException("试卷的课程和当前课程不匹配");
+            }
             examPaper.setPaper(paper);
             if (ExamType.OFFLINE.name().equals(extractConfig.getExamType())) {
                 checkOfflinePaper(paper);
@@ -178,9 +184,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         if (StringUtils.isNotBlank(extractConfig.getId())) {
             disposeOldPaper(extractConfig.getId());
         }
-        Course course = courseService.getCourse(Long.valueOf(extractConfig.getOrgId()), extractConfig.getCourseCode());
-        extractConfig.setCourse(course);
-        extractConfig.setCourseName(course.getName());
         extractConfig.setIfFinish((short) 1);
         extractConfigRepo.save(extractConfig);
         disposeNowPaper(extractConfig.getId());
@@ -687,7 +690,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
      * @param paper
      * @return
      */
-    @SuppressWarnings("unchecked")
     private PaperDto getPaperDtoByPaper(Paper paper, String basePaperId) {
         long beginTime = System.currentTimeMillis();
         // 没有则重新组装