|
@@ -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())));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|