Răsfoiți Sursa

get question content for client

deason 3 ani în urmă
părinte
comite
eed8abda96

+ 30 - 0
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/controller/DefaultQuesionController.java

@@ -9,6 +9,7 @@ import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionReq;
 import cn.com.qmth.examcloud.core.questions.service.ExtractConfigProviderService;
 import cn.com.qmth.examcloud.core.questions.service.QuestionProviderService;
 import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
+import cn.com.qmth.examcloud.support.handler.QuestionBodyHandler;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -116,4 +117,33 @@ public class DefaultQuesionController extends ControllerSupport {
         DefaultQuestion defaultQuestion = extractConfigExamService.getDefaultQuestion(examId, courseCode, groupCode, questionId);
         return new ResponseEntity<>(defaultQuestion, HttpStatus.OK);
     }
+
+    @ApiOperation(value = "查询试题(客户端)")
+    @PostMapping("/question/for/client")
+    public ResponseEntity<Object> findOneForClient(@RequestBody GetQuestionReq questionReq) {
+        Long examId = questionReq.getExamId();
+
+        if (null == examId) {
+            throw new StatusException("Q-010078", "examId is null");
+        }
+        String courseCode = questionReq.getCourseCode();
+        if (StringUtils.isBlank(courseCode)) {
+            throw new StatusException("Q-010082", "courseCode is null");
+        }
+        String groupCode = questionReq.getGroupCode();
+        if (StringUtils.isBlank(groupCode)) {
+            throw new StatusException("Q-010086", "groupCode is null");
+        }
+        String questionId = questionReq.getQuestionId();
+        if (StringUtils.isBlank(questionId)) {
+            throw new StatusException("Q-010090", "questionId is null");
+        }
+        DefaultQuestion defaultQuestion = extractConfigExamService.getDefaultQuestion(examId, courseCode, groupCode, questionId);
+
+        // 将题干、选项等 HTML结构转换为“富文本”JSON结构
+        QuestionBodyHandler.convertRichText(defaultQuestion);
+
+        return new ResponseEntity<>(defaultQuestion, HttpStatus.OK);
+    }
+
 }

+ 1 - 0
examcloud-core-questions-starter/src/main/resources/security.properties

@@ -1,2 +1,3 @@
 [s][${api_cqb}/][/paper/export/{id}/{exportContentList}/{examType}][GET]=true
 [s][${api_cqb}/default_question][/question][POST]=true
+[s][${api_cqb}/default_question][/question/for/client][POST]=true