龚焕茏
2024-05-13 489eebe584a8d991f844ff4c703779c7b5d0af5e
feat:在线看题
6个文件已修改
78 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/student/QuestionController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/QuestionMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/QuestionService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/QuestionServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/viewmodel/student/question/answer/QuestionPageStudentRequestVM.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/QuestionMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}
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);
}
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);
}
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())
        );
    }
}
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;
    }
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>