Просмотр исходного кода

提交检查试卷中的题是否都为客观题 接口

chenken 8 лет назад
Родитель
Сommit
09e8bb7419

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

@@ -66,4 +66,12 @@ public interface ExtractConfigService {
 	 * @return
 	 */
 	public Map<String, Object> getQuestionById(String paperDetailUnitId);
+	/**
+	 * 判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题
+	 * 全为客观题返回true
+	 * 不全为客观题返回false
+	 * @param newPaper
+	 * @return
+	 */
+	public boolean checkIsAllQbjectiveQuestion(String paperId);
 }

+ 25 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigServiceImpl.java

@@ -155,11 +155,36 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     	logger.info("根据新试卷 paperId:"+newPaper.getId()+"组装PaperDto后返回");
     	PaperDto paperDto = getPaperDtoByPaper(newPaper);
     	paperDto.setBasePaperId(basePaperId);
+    	paperDto.setAllQbjectiveQuestion(checkIsAllQbjectiveQuestion(basePaperId));
 		returnMap.put("paperDto",paperDto);
 		logger.info("调卷完成");
 		return returnMap;
 	}
 	
+	@Override
+	public boolean checkIsAllQbjectiveQuestion(String paperId) {
+		Paper paper = paperRepo.findOne(paperId);
+		List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaper(paper);
+		for(PaperDetailUnit paperDetailUnit:paperDetailUnits){
+			Question question = paperDetailUnit.getQuestion();
+			//填空或问答
+			if(question.getQuestionType()==QuesStructType.FILL_BLANK_QUESTION
+					||question.getQuestionType()==QuesStructType.TEXT_ANSWER_QUESTION){
+				return false;
+			}
+			if(question.getQuestionType()==QuesStructType.NESTED_ANSWER_QUESTION){
+				List<Question> subQuestions = question.getSubQuestions();
+				for(Question subQuestion:subQuestions){
+					if(subQuestion.getQuestionType()==QuesStructType.FILL_BLANK_QUESTION
+							||subQuestion.getQuestionType()==QuesStructType.TEXT_ANSWER_QUESTION){
+						return false;
+					}
+				}
+			}
+		}
+		return true;
+	}
+
 	@Override
 	public Map<String, String> makePaperByConfig(String extractConfigId) {
 		Map<String, String> finishedPaperIdMap = new HashMap<String, String>();

+ 18 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -110,4 +110,22 @@ public class ExtractConfigController {
             return new ResponseEntity(quesMap.get("msg"), HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
+	
+	@ApiOperation(value = "判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题", 
+				  notes = "判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题")
+    @GetMapping(value = "/checkIsAllQbjectiveQuestion/{paperId}")
+	public ResponseEntity<Map<String, Object>> checkIsAllQbjectiveQuestion(String paperId){
+		Map<String, Object> quesMap = new HashMap<String, Object>();
+		try{
+			boolean result = extractConfigService.checkIsAllQbjectiveQuestion(paperId);
+			quesMap.put("result", result);
+			quesMap.put("message", result?"全为客观题":"不全为客观题");
+			return new ResponseEntity<Map<String, Object>>(quesMap, HttpStatus.OK);
+		}catch(Exception e){
+			logger.error("调用checkIsAllQbjectiveQuestion失败",e);
+			quesMap.put("result","error");
+			quesMap.put("message","调用失败");
+			return new ResponseEntity<Map<String, Object>>(HttpStatus.INTERNAL_SERVER_ERROR);
+		}
+	}
 }