xiatian há 1 ano atrás
pai
commit
44051d1450

+ 19 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/yunkai/YunkaiService.java

@@ -14,6 +14,9 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -63,7 +66,9 @@ public class YunkaiService {
 
 	@Autowired
 	private PaperDetailUnitRepo paperDetailUnitRepo;
-
+	@Autowired
+	private MongoTemplate mongoTemplate;
+	
 	@Autowired
 	private QuesRepo quesRepo;
 	@Autowired
@@ -246,6 +251,7 @@ public class YunkaiService {
 	private void savePaper(KdPaper kpaper, YunkaiImportPaperParam p) {
 		int questionNum = 0;
 		Paper paper = initPaper(kpaper, p);
+		checkPaperName(paper.getOrgId(),paper.getCourse().getCode(), paper.getName());
 		paper.setDifficultyDegree(0.5);
 		// 定义大题集合
 		List<PaperDetail> paperDetails = new ArrayList<>();
@@ -514,4 +520,16 @@ public class YunkaiService {
 		paperDetailUnit.setCreationDate(new Date());
 		return paperDetailUnit;
 	}
+	
+	private void checkPaperName(String rootOrgId,String courseCode,String name) {
+		Query query = new Query();
+		query.addCriteria(Criteria.where("orgId").is(rootOrgId));
+		query.addCriteria(Criteria.where("course.code").is(courseCode));
+		query.addCriteria(Criteria.where("name").is(name));
+		query.addCriteria(Criteria.where("paperType").is(PaperType.IMPORT.name()));
+		List<Paper> ps = mongoTemplate.find(query, Paper.class, "paper");
+		if(CollectionUtils.isNotEmpty(ps)) {
+			throw new StatusException("该科目下试卷名已存在");
+		}
+	}
 }