Jelajahi Sumber

提交小题排序代码

chenken 8 tahun lalu
induk
melakukan
edc6687dd9

+ 9 - 37
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigServiceImpl.java

@@ -372,7 +372,10 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         paperDto.setPaperDetails(paperDetailDtos);
         // 封装小题
         for (int i = 0; i < paperDetailDtos.size(); i++) {
+        	//根据大题查出大题下面的小题
             List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
+            //小题根据number进行排序 perDetailUnit 对象中有compareTo方法
+            Collections.sort(paperDetailUnits);
 			//设置答案
 			setAnswer(paperDetailUnits);
             List<PaperDetailUnitDto> paperDetailUnitDtos = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,PaperDetailUnitDto.class);
@@ -432,7 +435,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 						if(StringUtils.isNotEmpty(optionOrder) && optionOrder.contains(";")){
 							setAnswerUnit(subQuestion, optionOrder.split(";")[index]);
 						}else{
-							setAnswerUnit(subQuestion, "");								}
+							setAnswerUnit(subQuestion, "");								
+						}
 						index++;
 					}
 				}
@@ -465,6 +469,10 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 		}
 	}
 	
+	/**
+	 * 根据paperDetailUnitId抽取单个试题
+	 * 根据paperDetailUnitId中设置的option顺序对option排序
+	 */
 	@Override
 	public Map<String, Object> getQuestionById(String paperDetailUnitId) {
         String msg = "";
@@ -502,8 +510,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
             if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION
                     || question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION) {
                 question.setQuesOptions(reorderOptionCore(question.getQuesOptions(), optionOrder));
-                //设置选择题答案   暂不需要
-                //setChoiceQuestionAnswer(question);
             }
             if (question.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
                 List<Question> subQuestions = question.getSubQuestions();
@@ -516,13 +522,6 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
                         index++;
                     }
                 }
-                /*
-                 * //设置套题中选择题答案  暂不需要
-                 for (int m = 0; m < subQuestions.size(); m++) {
-                    Question subQuestion = subQuestions.get(m);
-                    setChoiceQuestionAnswer(subQuestion);
-               	 }
-                */
             }
         }
     }
@@ -550,31 +549,4 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         return newQuesOptions;
     }
 	
-    /**
-     * 设置选择题答案
-     * @param question
-     */
-    private void setChoiceQuestionAnswer(Question question){
-    	if (question.getQuestionType() == QuesStructType.SINGLE_ANSWER_QUESTION) {
-    		for(int i = 0;i<question.getQuesOptions().size();i++){
-    			QuesOption option = question.getQuesOptions().get(i);
-    			if(option.getIsCorrect()==1){
-    				char answer = (char)(i+65);
-    				question.setQuesAnswer(String.valueOf(answer));
-    				break;
-    			}
-    		}
-        }
-    	if(question.getQuestionType() == QuesStructType.MULTIPLE_ANSWER_QUESTION){
-    		String[] answerArray = {};
-    		for(int i = 0;i<question.getQuesOptions().size();i++){
-    			QuesOption option = question.getQuesOptions().get(i);
-    			if(option.getIsCorrect()==1){
-    				char answer = (char)(i+65);
-    				answerArray[i] = String.valueOf(answer);
-    			}
-    		}
-    		question.setQuesAnswer(StringUtils.join(answerArray,","));
-    	}
-    }
 }