Browse Source

简化返回题结构

mingfu 1 month ago
parent
commit
263e6a43e1

+ 17 - 2
ie-admin/src/main/java/com/ruoyi/web/service/PaperService.java

@@ -8,8 +8,10 @@ import com.google.common.collect.Sets;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.enums.PaperStatus;
 import com.ruoyi.enums.PaperType;
+import com.ruoyi.enums.QuestionType;
 import com.ruoyi.learn.domain.*;
 import com.ruoyi.learn.mapper.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -62,7 +64,11 @@ public class PaperService {
         List<PaperVO.QuestionSeq> paperQuestionList = Lists.newArrayList();
         for(LearnQuestions lqs : questions) {
             PaperVO.QuestionSeq qs = new PaperVO.QuestionSeq();
-            BeanUtils.copyProperties(lqs, qs);
+            BeanUtils.copyProperties(lqs, qs, "options", "parse", "answer1", "answer2");
+            QuestionType qt = QuestionType.of(lqs.getQtpye());
+            qs.setTypeId(qt.getVal());
+            qs.setType(qt.getName());
+            qs.setOptions(getOptions(lqs.getOptionA(), lqs.getOptionB(), lqs.getOptionC(), lqs.getOptionD(), lqs.getOptionE(), lqs.getOptionF(), lqs.getOptionG()));
             if(StringUtils.isNotBlank(lqs.getTitle0())) { // 大题
                 PaperVO.QuestionSeq qg = gropuMap.get(lqs.getTitle0());
                 if(qg == null) {
@@ -71,7 +77,6 @@ public class PaperService {
                     gropuMap.put(lqs.getTitle0(), qg);
                     paperQuestionList.add(qg);
                 }
-                qs.setTitle0(null); // 清除
                 qg.getSubQuestions().add(qs);
             } else {
                 paperQuestionList.add(qs);
@@ -81,6 +86,16 @@ public class PaperService {
         return result;
     }
 
+    public List<String> getOptions(String... options) {
+        List<String> optionList = Lists.newArrayList();
+        for (String option : options) {
+            if (com.ruoyi.common.utils.StringUtils.isNotBlank(option)) {
+                optionList.add(option);
+            }
+        }
+        return optionList;
+    }
+
     /**
      * 根据院校专业要求生成模拟试卷
      * @return

+ 14 - 1
ie-system/src/main/java/com/ruoyi/learn/domain/PaperVO.java

@@ -1,5 +1,6 @@
 package com.ruoyi.learn.domain;
 
+import com.ruoyi.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -23,9 +24,21 @@ public class PaperVO {
 
     @Data
     @ApiModel("试题")
-    public static class QuestionSeq extends LearnQuestions {
+    public static class QuestionSeq {
+        private Long id;
+        private String title;
+        private String answer1;
+        @ApiModelProperty("非标准格式答案或含部分过程说明的答案")
+        private String answer2;
+        private String parse;
         @ApiModelProperty("序号")
         Integer seq;
+        @ApiModelProperty("考题类型 question_type")
+        Integer typeId;
+        @ApiModelProperty("考题类型名称")
+        String type;
+        @ApiModelProperty("选项数组")
+        List<String> options;
 
         List<QuestionSeq> subQuestions;
     }