Procházet zdrojové kódy

提交调卷规则 代码

chenken před 8 roky
rodič
revize
26a5ccba3b

+ 5 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigService.java

@@ -30,6 +30,11 @@ public interface ExtractConfigService {
 	public void saveExtractConfig(ExtractConfig extractConfig);
 	/**
 	 * 按照设定调卷规则生成一套试卷
+	 * 1.根据extractConfigId取出调卷规则
+	 * 2.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map
+	 * 3.根据小题乱序和选项乱序规则,重组试卷
+	 * 4.得到试卷类型--->试卷ID的map,设置到finishedPaperIdMap属性中
+	 * 5.如果 是第一次生成试卷,保存finishedPaperIdMap
 	 * @param extractConfigId	规则 ID
 	 * @return 
 	 */

+ 8 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -135,7 +135,8 @@ public class PaperService {
         Example<ExamPaper> example = Example.of(examPaper);
         List<ExamPaper> examPapers = examPaperRepo.findAll(example);
         for (ExamPaper ePaper : examPapers) {
-            Paper paper = paperRepo.findOne(ePaper.getPaperId());
+            //Paper paper = paperRepo.findOne(ePaper.getPaperId());
+        	Paper paper = ePaper.getPaper();
             papers.add(paper);
         }
         return papers;
@@ -155,7 +156,9 @@ public class PaperService {
         examPaper.setExamId(examId);
         examPaper.setGroupCode(groupCode);
         examPaper.setCourseCode(courseCode);
-        examPaper.setPaperId(paperId);
+        Paper paper = paperRepo.findOne(paperId);
+       // examPaper.setPaperId(paperId);
+        examPaper.setPaper(paper);
         examPaperRepo.save(examPaper);
     }
 
@@ -164,7 +167,9 @@ public class PaperService {
         examPaper.setExamId(examId);
         examPaper.setGroupCode(groupCode);
         examPaper.setCourseCode(courseCode);
-        examPaper.setPaperId(paperId);
+        Paper paper = paperRepo.findOne(paperId);
+        // examPaper.setPaperId(paperId);
+         examPaper.setPaper(paper);
         examPaperRepo.delete(examPaper);
     }
 

+ 13 - 2
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuesOption.java

@@ -13,6 +13,10 @@ public class QuesOption implements Serializable{
     private String optionBody;//选项内容
 
     private String optionBodyWord;//选项word
+    /** 
+     * 是否是正确答案  1:是  0:否
+     */
+    private short ifRightAnswer;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -42,6 +46,13 @@ public class QuesOption implements Serializable{
         this.optionBodyWord = optionBodyWord;
     }
 
-    public QuesOption() {
-    }
+    public QuesOption() {}
+
+	public short getIfRightAnswer() {
+		return ifRightAnswer;
+	}
+
+	public void setIfRightAnswer(short ifRightAnswer) {
+		this.ifRightAnswer = ifRightAnswer;
+	}
 }

+ 1 - 1
cqb-starter/src/test/java/com/qmth/cqb/AppTest.java

@@ -174,7 +174,7 @@ public class AppTest {
         examPaper.setCourseCode("1");
         examPaper.setExtractCount(1);
         examPaper.setGroupCode("1");
-        examPaper.setPaperId("58b3e0b06def240e05b0c0e1");
+       // examPaper.setPaperId("58b3e0b06def240e05b0c0e1");
         examPaperRepo.save(examPaper);
 
         ExtractConfig extractConfig = new ExtractConfig();

+ 30 - 4
cqb-starter/src/test/java/com/qmth/cqb/ExtractConfigServiceTest.java

@@ -37,15 +37,16 @@ public class ExtractConfigServiceTest {
 	@Test
 	public void testSaveExtractConfig(){
 		ExtractConfig extractConfig = new ExtractConfig();
-		extractConfig.setExamId(1L);
+		extractConfig.setExamId(2L);
 		extractConfig.setExamName("测试考试0419");
-		extractConfig.setExamType("ONLINE");
+		extractConfig.setExamType("TRANDITION");
 		extractConfig.setCourseCode("03013750");
 		extractConfig.setCourseName("测试课程0419");
 		extractConfig.setCallType("WHOLE_SET");
 		extractConfig.setScrambling_the_question_order((short)1);
 		extractConfig.setScrambling_the_option_order((short)1);
-		List<ExamPaper> examPaperList = buildExamPaper();
+		//List<ExamPaper> examPaperList = buildOnlineExamPaper();
+		List<ExamPaper> examPaperList = buildTraditionExamPaper();
 		extractConfig.setExamPaperList(examPaperList);
 		extractConfigService.saveExtractConfig(extractConfig);
 	}
@@ -57,7 +58,7 @@ public class ExtractConfigServiceTest {
 		extractConfigService.makePaperByConfig("58f6d77aaa9e290d805befa3");
 	}
 	
-	private List<ExamPaper> buildExamPaper(){
+	private List<ExamPaper> buildOnlineExamPaper(){
 		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();
 		/*******************A类型********************/
 		ExamPaper examPaper1 = new ExamPaper();
@@ -100,6 +101,31 @@ public class ExtractConfigServiceTest {
 		return examPaperList;
 	}
 	
+	private List<ExamPaper> buildTraditionExamPaper(){
+		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();
+		/*******************A类型********************/
+		ExamPaper examPaper1 = new ExamPaper();
+		examPaper1.setExamId(1L);
+		examPaper1.setCourseCode("03013750");
+		examPaper1.setGroupCode("A");
+		examPaper1.setWeight(100);
+		Paper paper1 = new Paper();
+		paper1.setId("58f0a15258e31a0d7448d58c");
+		examPaper1.setPaper(paper1);
+		examPaperList.add(examPaper1);
+		/*******************B类型********************/
+		ExamPaper examPaper2 = new ExamPaper();
+		examPaper2.setExamId(1L);
+		examPaper2.setCourseCode("03013750");
+		examPaper2.setGroupCode("B");
+		examPaper2.setWeight(100);
+		Paper paper2 = new Paper();
+		paper1.setId("58f0a15258e31a0d7448d58c");
+		examPaper1.setPaper(paper2);
+		examPaperList.add(examPaper2);
+		return examPaperList;
+	}
+	
 	public static void main(String[] args) {
 		List<String> newList = new ArrayList<String>();
 		newList.add("a");