xiatian 1 năm trước cách đây
mục cha
commit
90ede70304

+ 29 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuesTypeNameService.java

@@ -18,7 +18,35 @@ public class QuesTypeNameService {
 
     @Autowired
     private QuesTypeNameRepo quesTypeRepo;
-
+    
+    public void saveQuesTypeName(Long rootOrgId,String courseCode,QuesStructType questionType,String detailName) {
+    	List<QuesTypeName> quesTypeNames = quesTypeRepo.findQuesName(rootOrgId.toString(), courseCode, questionType);
+        if (quesTypeNames != null && quesTypeNames.size() > 0) {
+            QuesTypeName quesTypeName = quesTypeNames.get(0);
+            List<String> quesNames = quesTypeName.getQuesNames();
+            if (quesNames != null && quesNames.size() > 0) {
+                if (quesNames.contains(detailName)) {
+                    return;
+                } else {
+                    quesNames.add(detailName);
+                }
+            } else {
+                quesNames = new ArrayList<>();
+                quesNames.add(detailName);
+            }
+            quesTypeName.setQuesNames(quesNames);
+            quesTypeRepo.save(quesTypeName);
+        } else {
+            QuesTypeName quesTypeName = new QuesTypeName();
+            List<String> quesNames = new ArrayList<>();
+            quesNames.add(detailName);
+            quesTypeName.setOrgId(rootOrgId.toString());
+            quesTypeName.setCourseNo(courseCode);
+            quesTypeName.setQuestionType(questionType);
+            quesTypeName.setQuesNames(quesNames);
+            quesTypeRepo.save(quesTypeName);
+        }
+    }
     /**
      * 保存来源大题名称
      *

+ 10 - 11
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/consumer/CopyDataNoReduplicateConsumer.java

@@ -48,6 +48,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuesOption;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionAudio;
+import cn.com.qmth.examcloud.core.questions.service.QuesTypeNameService;
 import cn.com.qmth.examcloud.core.questions.service.QuestionAudioService;
 import cn.com.qmth.examcloud.core.questions.service.UpYunService;
 import cn.com.qmth.examcloud.core.questions.service.bean.CopyDataNoReduplicateDto;
@@ -88,6 +89,10 @@ public class CopyDataNoReduplicateConsumer extends Consumer<CopyDataNoReduplicat
 	
 	@Resource(name = "mongoTemplate2")
 	private MongoTemplate mongoTemplate2;
+	
+	@Autowired
+	private QuesTypeNameService quesTypeNameService;
+	
 
 	@Transactional
 	@Override
@@ -118,7 +123,9 @@ public class CopyDataNoReduplicateConsumer extends Consumer<CopyDataNoReduplicat
 			return;
 		}
 		if(qt.isObjective()) {
-			createPapers(null,qs, qt, dto);
+			String detailName=qt.getName()+"题";
+			quesTypeNameService.saveQuesTypeName(dto.getUser().getRootOrgId(), dto.getCourse().getCode(), qt, detailName);
+			createPapers(detailName,qs, qt, dto);
 		}else {
 			Map<String,List<Question>> details=details(qs);
 			for (String detailName : details.keySet()) {
@@ -207,11 +214,7 @@ public class CopyDataNoReduplicateConsumer extends Consumer<CopyDataNoReduplicat
 		}
 		Course course = of(dto.getCourse());
 		Paper paper = new Paper();
-		if(qt.isObjective()) {
-			paper.setName("(" + dto.getBatch() + ")" + qt.getName() + "题_"+dto.getCourse().getCode()+"_" + indx);
-		}else {
-			paper.setName("(" + dto.getBatch() + ")" + detailName + "_" +dto.getCourse().getCode()+"_"+ indx);
-		}
+		paper.setName("(" + dto.getBatch() + ")" + detailName + "_" +dto.getCourse().getCode()+"_"+ indx);
 		paper.setTitle(paper.getName());
 		paper.setTotalScore((double) qs.size());
 		paper.setCreator(dto.getUser().getDisplayName());
@@ -231,11 +234,7 @@ public class CopyDataNoReduplicateConsumer extends Consumer<CopyDataNoReduplicat
 
 		PaperDetail detail = new PaperDetail();
 		detail.setPaper(paper);
-		if(qt.isObjective()) {
-			detail.setName(qt.getName() + "题");
-		}else {
-			detail.setName(detailName);
-		}
+		detail.setName(detailName);
 		detail.setNumber(1);
 		detail.setScore((double) qs.size());
 		detail.setUnitCount(qs.size());