瀏覽代碼

QuestionBodyHandler

deason 3 年之前
父節點
當前提交
2239be8919

+ 51 - 0
examcloud-support/src/main/java/cn/com/qmth/examcloud/support/handler/QuestionBodyHandler.java

@@ -0,0 +1,51 @@
+package cn.com.qmth.examcloud.support.handler;
+
+import cn.com.qmth.examcloud.commons.util.JsonMapper;
+import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
+import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionOption;
+import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionStructure;
+import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionUnit;
+import cn.com.qmth.examcloud.support.handler.richtext2.RichTextConverter;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.List;
+
+public class QuestionBodyHandler {
+
+    public static void convertRichText(DefaultQuestion defaultQuestion) {
+        if (defaultQuestion == null) {
+            return;
+        }
+
+        DefaultQuestionStructure structure = defaultQuestion.getMasterVersion();
+        if (structure == null) {
+            return;
+        }
+
+        JsonMapper jsonMapper = JsonMapper.nonNullMapper();
+
+        if (StringUtils.isNotEmpty(structure.getBody())) {
+            structure.setBody(jsonMapper.toJson(RichTextConverter.parse(structure.getBody())));
+        }
+
+        List<DefaultQuestionUnit> questionUnits = structure.getQuestionUnitList();
+        if (CollectionUtils.isEmpty(questionUnits)) {
+            return;
+        }
+
+        for (DefaultQuestionUnit questionUnit : questionUnits) {
+            questionUnit.setBody(jsonMapper.toJson(RichTextConverter.parse(questionUnit.getBody())));
+
+            List<DefaultQuestionOption> questionOptions = questionUnit.getQuestionOptionList();
+            if (CollectionUtils.isEmpty(questionOptions)) {
+                continue;
+            }
+
+            for (DefaultQuestionOption questionOption : questionOptions) {
+                questionOption.setBody(jsonMapper.toJson(RichTextConverter.parse(questionOption.getBody())));
+            }
+        }
+    }
+
+}