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