From 489eebe584a8d991f844ff4c703779c7b5d0af5e Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 13 五月 2024 13:58:06 +0800
Subject: [PATCH] feat:在线看题
---
src/main/java/com/mindskip/xzs/service/QuestionService.java | 6 ++
src/main/java/com/mindskip/xzs/repository/QuestionMapper.java | 6 ++
src/main/resources/mapper/QuestionMapper.xml | 15 +++++++
src/main/java/com/mindskip/xzs/controller/student/QuestionController.java | 25 ++++++++++++
src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java | 16 ++++++--
src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java | 10 +++++
6 files changed, 71 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java b/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
index a597bd6..250c05a 100644
--- a/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
+++ b/src/main/java/com/mindskip/xzs/controller/student/QuestionController.java
@@ -1,7 +1,14 @@
package com.mindskip.xzs.controller.student;
+import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
+import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.service.QuestionService;
+import com.mindskip.xzs.service.SubjectService;
+import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionAnswerVO;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -10,9 +17,25 @@
public class QuestionController extends BaseApiController {
private final QuestionService questionService;
+ private final SubjectService subjectService;
@Autowired
- public QuestionController(QuestionService questionService) {
+ public QuestionController(QuestionService questionService, SubjectService subjectService) {
this.questionService = questionService;
+ this.subjectService = subjectService;
}
+
+ @RequestMapping(value = "/select/question", method = RequestMethod.POST)
+ public RestResponse<PageInfo<QuestionPageStudentResponseVM>> selectQuestion(@RequestBody QuestionPageStudentRequestVM model) {
+ return RestResponse.ok(questionService.selectQuestion(model));
+ }
+
+ @RequestMapping(value = "/select/question/{id}", method = RequestMethod.GET)
+ public RestResponse<QuestionAnswerVO> selectQuestionById(@PathVariable Integer id) {
+ QuestionAnswerVO vm = new QuestionAnswerVO();
+ ExamQuestionVO question = questionService.getQuestionEditRequestVM(id);
+ vm.setQuestionVM(question);
+ return RestResponse.ok(vm);
+ }
+
}
diff --git a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
index a9aeb95..ff26145 100644
--- a/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/QuestionMapper.java
@@ -1,9 +1,11 @@
package com.mindskip.xzs.repository;
-import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.Question;
+import com.mindskip.xzs.domain.other.KeyValue;
import com.mindskip.xzs.domain.vo.QuestionVO;
import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM;
import com.mindskip.xzs.vo.QuestionExportVO;
import com.mindskip.xzs.vo.QuestionImportVO;
import org.apache.ibatis.annotations.Mapper;
@@ -27,4 +29,6 @@
List<Question> getAll();
List<QuestionImportVO> export(@Param("query") QuestionExportVO query);
+
+ List<QuestionPageStudentResponseVM> selectQuestion(QuestionPageStudentRequestVM model);
}
diff --git a/src/main/java/com/mindskip/xzs/service/QuestionService.java b/src/main/java/com/mindskip/xzs/service/QuestionService.java
index a098ffc..63465ca 100644
--- a/src/main/java/com/mindskip/xzs/service/QuestionService.java
+++ b/src/main/java/com/mindskip/xzs/service/QuestionService.java
@@ -1,10 +1,12 @@
package com.mindskip.xzs.service;
+import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.Question;
import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditRequestVM;
import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
-import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM;
import com.mindskip.xzs.vo.QuestionExportVO;
import com.mindskip.xzs.vo.QuestionImportVO;
import org.apache.ibatis.annotations.Param;
@@ -39,4 +41,6 @@
* @return
*/
List<QuestionImportVO> export(QuestionExportVO query);
+
+ PageInfo<QuestionPageStudentResponseVM> selectQuestion(QuestionPageStudentRequestVM model);
}
diff --git a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
index 7e8b0cc..ff336aa 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java
@@ -14,10 +14,7 @@
import com.mindskip.xzs.service.QuestionSubjectService;
import com.mindskip.xzs.service.SubjectService;
import com.mindskip.xzs.service.TextContentService;
-import com.mindskip.xzs.utility.DateTimeUtil;
-import com.mindskip.xzs.utility.JsonUtil;
-import com.mindskip.xzs.utility.ModelMapperSingle;
-import com.mindskip.xzs.utility.ExamUtil;
+import com.mindskip.xzs.utility.*;
import com.mindskip.xzs.viewmodel.admin.education.SubjectPageRequestVM;
import com.mindskip.xzs.viewmodel.admin.question.ExamQuestionVO;
import com.mindskip.xzs.viewmodel.admin.question.QuestionEditItemVM;
@@ -25,6 +22,8 @@
import com.mindskip.xzs.viewmodel.admin.question.QuestionPageRequestVM;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentRequestVM;
+import com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM;
import com.mindskip.xzs.vo.QuestionExportVO;
import com.mindskip.xzs.vo.QuestionImportVO;
import org.modelmapper.ModelMapper;
@@ -257,4 +256,13 @@
public List<QuestionImportVO> export(QuestionExportVO query) {
return questionMapper.export(query);
}
+
+ @Override
+ public PageInfo<QuestionPageStudentResponseVM> selectQuestion(QuestionPageStudentRequestVM model) {
+ return PageHelper.startPage(model.getPageIndex(), model.getPageSize(), "id desc").doSelectPageInfo(() ->
+ questionMapper.selectQuestion(model).stream().peek(
+ q -> q.setShortTitle(HtmlUtil.clear(q.getShortTitle()))
+ ).collect(Collectors.toList())
+ );
+ }
}
diff --git a/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java b/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java
index 426bfc9..174b9bd 100644
--- a/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java
+++ b/src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java
@@ -5,6 +5,16 @@
public class QuestionPageStudentRequestVM extends BasePage {
private Integer createUser;
+ private String subjectName;
+
+ public String getSubjectName() {
+ return subjectName;
+ }
+
+ public void setSubjectName(String subjectName) {
+ this.subjectName = subjectName;
+ }
+
public Integer getCreateUser() {
return createUser;
}
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index 0764bb9..b5d066c 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -297,4 +297,19 @@
</foreach>
</select>
+ <select id="selectQuestion" resultType="com.mindskip.xzs.viewmodel.student.question.answer.QuestionPageStudentResponseVM">
+ select a.id,
+ a.question_type,
+ JSON_VALUE(d.content, '$.titleContent') as shortTitle,
+ GROUP_CONCAT(c.name) as subjectName
+ from t_question a
+ inner join t_question_subject b on a.id = b.question_id and b.deleted = 0
+ inner join t_subject c on b.subject_id = c.id and c.deleted = 0
+ inner join t_text_content d on a.info_text_content_id = d.id
+ where a.deleted = 0
+ group by a.id, question_type, a.create_time
+ HAVING GROUP_CONCAT(c.name) like concat('%', #{subjectName}, '%')
+ order by a.create_time
+ </select>
+
</mapper>
--
Gitblit v1.8.0