weiwenhai 7 år sedan
förälder
incheckning
20092d98fa

+ 10 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -685,4 +685,14 @@ public final class CommonUtils {
         }
         return newarray;
     }
+    
+    /**
+     * 删除html中p标签
+     * @param htmlStr
+     * @return
+     */
+    public static String deleteHtmlP(String htmlStr){
+    	htmlStr = htmlStr.replace("<p>", "").replace("</p>", "");
+    	return htmlStr;
+    }
 }

+ 7 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -255,4 +255,11 @@ public interface PaperService {
      * @return
      */
     public Double reSetDifficulty(Paper paper,double paperTotalScore);
+    
+    /**
+     * 获取Html片段
+     * @param paperId
+     * @return
+     */
+    public Map<String, Object> getPaperPDF(String paperId);
 }

+ 55 - 3
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -5,7 +5,6 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -1232,7 +1231,60 @@ public class PaperServiceImpl implements PaperService{
 		}
     }
 
-
-
+	@Override
+	public Map<String, Object> getPaperPDF(String paperId) {
+		PaperExp paperExp = getPaperDto(paperId);
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("courseName", paperExp.getCourseName());
+		map.put("courseNo", paperExp.getCourseNo());
+		List<String> htmlList = new ArrayList<String>();
+		if(paperExp.getPaperDetails() != null && paperExp.getPaperDetails().size()>0){
+			for(PaperDetailExp paperDetail:paperExp.getPaperDetails()){
+				//添加大题标题
+				if(StringUtils.isBlank(paperDetail.getTitle())){
+					htmlList.add("<p>"+paperDetail.getCnNum()+"、"+paperDetail.getName()+"</p>");
+				}else {
+					htmlList.add("<p>"+paperDetail.getCnNum()+"、"+paperDetail.getName()+paperDetail.getTitle()+"</p>");
+				}
+				if(paperDetail.getPaperDetailUnits() != null && paperDetail.getPaperDetailUnits().size()>0){
+					for(PaperDetailUnitExp paperDetailUnitExp:paperDetail.getPaperDetailUnits()){
+						Question question = paperDetailUnitExp.getQuestion();
+						//添加题干
+						String questionBody = CommonUtils.deleteHtmlP(paperDetailUnitExp.getNumber()+"."+question.getQuesBody()+"("+paperDetailUnitExp.getScore()+"分)");
+						htmlList.add("<p>"+questionBody+"</p>");
+						//判断是否为选择题
+						if(paperDetailUnitExp.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION || paperDetailUnitExp.getQuestionType()==QuesStructType.MULTIPLE_ANSWER_QUESTION){
+							for(QuesOption quesOption:question.getQuesOptions()){
+								//添加选项
+								String questionOption = CommonUtils.deleteHtmlP(CommonUtils.getOptionNum(Integer.parseInt(quesOption.getNumber())-1)+"."+quesOption.getOptionBody());
+								htmlList.add("<p>"+questionOption+"</p>");
+							}
+						}
+						//判断是否为套题
+						if(paperDetailUnitExp.getQuestionType()==QuesStructType.NESTED_ANSWER_QUESTION){
+							//得到子题
+							List<Question> subQuestions = question.getSubQuestions();
+							for(Question subQuestion:subQuestions){
+								//添加子题题干
+								String subQuestionBody = CommonUtils.deleteHtmlP(subQuestion.getQuesParams().get("number")+"."+subQuestion.getQuesBody()+"("+subQuestion.getScore()+"分)");
+								htmlList.add("<p>"+subQuestionBody+"</p>");
+								//判断是否为选择题
+								if(subQuestion.getQuestionType()==QuesStructType.SINGLE_ANSWER_QUESTION || subQuestion.getQuestionType()==QuesStructType.BOOL_ANSWER_QUESTION){
+									for(QuesOption quesOption:subQuestion.getQuesOptions()){
+										//添加选项
+										String questionOption = CommonUtils.deleteHtmlP(CommonUtils.getOptionNum(Integer.parseInt(quesOption.getNumber())-1)+"."+quesOption.getOptionBody());
+										htmlList.add("<p>"+questionOption+"</p>");
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		map.put("htmlList", htmlList);
+		return map;
+	}
+		
 }
 

+ 11 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -585,4 +585,15 @@ public class PaperController {
 		}
     }
     
+    /**
+     * 根据id获取试卷的html片段集合
+     * @return
+     */
+    @ApiOperation(value="根据id获取试卷的html片段集合", notes="根据id获取试卷的html片段集合")
+    @Uac(roles={RoleMeta.QUESTION_ADMIN,RoleMeta.SUPER_ADMIN},policy=UacPolicy.IN)
+    @GetMapping(value="/paper/pdf/{paperId}")
+    public ResponseEntity<Object> getPaperPDFById(@PathVariable String paperId){
+    	Map<String, Object> mag = paperService.getPaperPDF(paperId);
+    	return new ResponseEntity<Object>(mag,HttpStatus.OK);
+    }
 }