Explorar o código

修改抽取试题BUG

chenken %!s(int64=7) %!d(string=hai) anos
pai
achega
4dc2b470b1

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

@@ -5,8 +5,11 @@ import java.util.Map;
 
 
 
+
+
 import org.springframework.data.domain.Page;
 
+import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
 import com.qmth.cqb.paper.model.ExtractConfig;
@@ -67,13 +70,13 @@ public interface ExtractConfigService {
 	 * 根据考试ID,课程code,试卷类型生成试卷
 	 * @return PaperDto
 	 */
-	public Map<String, Object> extract(Long exam_id,String course_code,String group_code);
+	public Map<String, Object> extractExamPaper(Long exam_id,String course_code,String group_code);
 	/**
 	 * 根据paperDetailUnitId抽取单个试题
 	 * @param id
 	 * @return
 	 */
-	public Map<String, Object> getQuestionById(String paperDetailUnitId);
+	public QuestionDto extractExamQuestion(String paperDetailUnitId);
 	/**
 	 * 判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题
 	 * 全为客观题返回true

+ 7 - 10
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigServiceImpl.java

@@ -165,7 +165,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	}
 	
 	@Override
-	public Map<String, Object> extract(Long exam_id,String course_code,String group_code){
+	public Map<String, Object> extractExamPaper(Long exam_id,String course_code,String group_code){
 		Map<String, Object> returnMap = new HashMap<String,Object>();
 		logger.info("调卷开始...");
 		logger.info("开始根据examId:"+exam_id+"和courseCode:"+course_code+"获取调卷规则");
@@ -538,9 +538,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	 * 根据paperDetailUnitId中设置的option顺序对option排序
 	 */
 	@Override
-	public Map<String, Object> getQuestionById(String paperDetailUnitId) {
-        String msg = "";
-        Map<String, Object> quesMap = new HashMap<String, Object>();
+	public QuestionDto extractExamQuestion(String paperDetailUnitId) {
         PaperDetailUnit paperDetailUnit = paperDetailUnitRepo.findOne(paperDetailUnitId);
         List<PaperDetailUnit> paperDetailUnits = new ArrayList<PaperDetailUnit>();
         paperDetailUnits.add(paperDetailUnit);
@@ -570,10 +568,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
         	dto.setQuesAnswer(ques.getQuesAnswer());
         }
         buildQuestionDto(dto,paperDetailUnit);
-        msg = "success";
-        quesMap.put("quesDto", dto);
-        quesMap.put("msg", msg);
-        return quesMap;
+        return dto;
     }
 	
 	private List<QuesOptionDto> buildQuestionOptionDto(List<QuesOption> quesOptions) {
@@ -612,8 +607,10 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 		questionDto.setQuesBody(buildBody(quesBody, questionDto));
 		//2.2取到选项,给a标签添加url
 		List<QuesOptionDto> quesOptionDtoList = questionDto.getQuesOptions();
-		for(QuesOptionDto quesOptionDto:quesOptionDtoList){
-			quesOptionDto.setOptionBody(buildBody(quesOptionDto.getOptionBody(), questionDto));
+		if(quesOptionDtoList!=null&&quesOptionDtoList.size()>0){
+			for(QuesOptionDto quesOptionDto:quesOptionDtoList){
+				quesOptionDto.setOptionBody(buildBody(quesOptionDto.getOptionBody(), questionDto));
+			}
 		}
 	}
 	

+ 13 - 10
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -27,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import cn.com.qmth.examcloud.common.dto.question.PaperDto;
+import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 import cn.com.qmth.examcloud.common.util.ErrorMsg;
 
@@ -102,11 +103,11 @@ public class ExtractConfigController {
 		}
 	}
 	
-	@ApiOperation(value = "抽取试卷", notes = "抽取试卷")
+	@ApiOperation(value = "抽取考试试卷", notes = "抽取考试试卷")
     @GetMapping(value = "/extract/{exam_id}/{course_code}/{group_code}")
     public ResponseEntity extract(@PathVariable Long exam_id, @PathVariable String course_code,@PathVariable String group_code) {
 		try{
-			Map<String, Object> returnMap = extractConfigService.extract(exam_id, course_code, group_code);
+			Map<String, Object> returnMap = extractConfigService.extractExamPaper(exam_id, course_code, group_code);
 			if(returnMap.get("errorMsg")==null){
 				PaperDto paperDto = (PaperDto) returnMap.get("paperDto");
 				return new ResponseEntity<PaperDto>(paperDto, HttpStatus.OK);
@@ -121,14 +122,16 @@ public class ExtractConfigController {
 	
 	@ApiOperation(value = "抽取单个试题", notes = "抽取单个试题")
     @GetMapping(value = "/extractQues/{paperDetailUnitId}")
-    public ResponseEntity extractQuestion(@PathVariable String paperDetailUnitId) {
-        Map<String, Object> quesMap = new HashMap<String, Object>();
-        quesMap = extractConfigService.getQuestionById(paperDetailUnitId);
-        if (quesMap.get("msg").equals("success")) {
-            return new ResponseEntity(quesMap.get("quesDto"), HttpStatus.OK);
-        } else {
-            return new ResponseEntity(quesMap.get("msg"), HttpStatus.INTERNAL_SERVER_ERROR);
-        }
+    public ResponseEntity<Object> extractQuestion(@PathVariable String paperDetailUnitId){
+		try{
+	        QuestionDto questionDto = extractConfigService.extractExamQuestion(paperDetailUnitId);
+	        return new ResponseEntity<Object>(questionDto,HttpStatus.OK);
+		}catch(Exception e){
+			logger.error("抽题失败",e);
+			e.printStackTrace();
+			return new ResponseEntity<Object>("抽题失败:"+e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
+		}
+        
     }
 	
 	@ApiOperation(value = "判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题", 

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

@@ -149,7 +149,7 @@ public class ExtractConfigServiceTest {
 		Long exam_id = 59L;
 		String course_code = "012027";
 		String group_code = "A";
-		Map<String, Object> returnMap = extractConfigService.extract(exam_id, course_code, group_code);
+		Map<String, Object> returnMap = extractConfigService.extractExamPaper(exam_id, course_code, group_code);
 		System.out.println(returnMap);
 	}
 	@Test
@@ -158,9 +158,9 @@ public class ExtractConfigServiceTest {
 	}
 	@Test
 	public void testGetQuestionById(){
-		String paperDetailUnitId = "597ae94dcb3e061584127df0";
-		Map<String, Object> map = extractConfigService.getQuestionById(paperDetailUnitId);
-		QuestionDto dto = (QuestionDto) map.get("quesDto");
+		//String paperDetailUnitId = "597ae94dcb3e061584127df0";
+		String paperDetailUnitId = "599687060fe2d272d9ddc18a";
+		QuestionDto dto = extractConfigService.extractExamQuestion(paperDetailUnitId);
 		System.out.println(dto.getQuesAnswer());
 	}