From db7ff10c4090564126bf78447fb038406812f321 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 04 六月 2024 11:54:58 +0800
Subject: [PATCH] feat:题目查询、新增,内容直接存题目表

---
 src/main/java/com/ycl/jxkg/domain/entity/ExamPaperQuestionCustomerAnswer.java |    4 +-
 src/main/resources/mapper/QuestionMapper.xml                                  |   28 ++++++++------
 src/main/java/com/ycl/jxkg/domain/vo/admin/question/QuestionResponseVO.java   |    8 +++
 src/main/java/com/ycl/jxkg/controller/admin/QuestionController.java           |   17 +++-----
 src/main/java/com/ycl/jxkg/service/impl/ExamPaperAnswerServiceImpl.java       |    2 
 src/main/java/com/ycl/jxkg/service/QuestionService.java                       |    3 +
 src/main/java/com/ycl/jxkg/domain/entity/Question.java                        |    4 +-
 src/main/java/com/ycl/jxkg/service/impl/QuestionServiceImpl.java              |   26 +++++--------
 src/main/java/com/ycl/jxkg/controller/student/QuestionAnswerController.java   |    3 -
 src/main/java/com/ycl/jxkg/domain/base/AbsEntity.java                         |    8 +--
 src/main/resources/mapper/ExamPaperQuestionCustomerAnswerMapper.xml           |    6 +-
 11 files changed, 54 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/admin/QuestionController.java b/src/main/java/com/ycl/jxkg/controller/admin/QuestionController.java
index d94e8d0..49fbcde 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/QuestionController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/QuestionController.java
@@ -1,19 +1,18 @@
 package com.ycl.jxkg.controller.admin;
 
+import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.base.BaseApiController;
 import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.base.SystemCode;
 import com.ycl.jxkg.domain.entity.Question;
-import com.ycl.jxkg.domain.entity.TextContent;
 import com.ycl.jxkg.domain.enums.QuestionTypeEnum;
 import com.ycl.jxkg.domain.question.QuestionObject;
-import com.ycl.jxkg.service.QuestionService;
-import com.ycl.jxkg.service.TextContentService;
-import com.ycl.jxkg.utils.*;
 import com.ycl.jxkg.domain.vo.admin.question.QuestionEditRequestVO;
 import com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO;
 import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO;
-import com.github.pagehelper.PageInfo;
+import com.ycl.jxkg.service.QuestionService;
+import com.ycl.jxkg.service.TextContentService;
+import com.ycl.jxkg.utils.*;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -31,14 +30,12 @@
 
     @RequestMapping(value = "/page", method = RequestMethod.POST)
     public Result<PageInfo<QuestionResponseVO>> pageList(@RequestBody QuestionPageRequestVO model) {
-        PageInfo<Question> pageInfo = questionService.page(model);
+        PageInfo<QuestionResponseVO> pageInfo = questionService.page(model);
         PageInfo<QuestionResponseVO> page = PageInfoHelper.copyMap(pageInfo, q -> {
             QuestionResponseVO vo = new QuestionResponseVO();
             BeanUtils.copyProperties(q, vo);
-            vo.setCreateTime(DateTimeUtil.dateFormat(q.getCreateTime()));
-            vo.setScore(ExamUtil.scoreToVM(q.getScore()));
-            TextContent textContent = textContentService.getById(q.getInfoTextContentId());
-            QuestionObject questionObject = JsonUtil.toJsonObject(textContent.getContent(), QuestionObject.class);
+            vo.setScore(ExamUtil.scoreToVM(Integer.valueOf(q.getScore())));
+            QuestionObject questionObject = JsonUtil.toJsonObject(q.getContent(), QuestionObject.class);
             String clearHtml = HtmlUtil.clear(questionObject.getTitleContent());
             vo.setShortTitle(clearHtml);
             return vo;
diff --git a/src/main/java/com/ycl/jxkg/controller/student/QuestionAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/QuestionAnswerController.java
index 751943d..24b66b4 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/QuestionAnswerController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/QuestionAnswerController.java
@@ -43,8 +43,7 @@
             QuestionPageStudentResponseVO vo = new QuestionPageStudentResponseVO();
             BeanUtils.copyProperties(q, vo);
             vo.setCreateTime(DateTimeUtil.dateFormat(q.getCreateTime()));
-            TextContent textContent = textContentService.getById(q.getQuestionTextContentId());
-            QuestionObject questionObject = JsonUtil.toJsonObject(textContent.getContent(), QuestionObject.class);
+            QuestionObject questionObject = JsonUtil.toJsonObject(q.getQuestionContent(), QuestionObject.class);
             String clearHtml = HtmlUtil.clear(questionObject.getTitleContent());
             vo.setShortTitle(clearHtml);
             vo.setSubjectName(subject.getName());
diff --git a/src/main/java/com/ycl/jxkg/domain/base/AbsEntity.java b/src/main/java/com/ycl/jxkg/domain/base/AbsEntity.java
index 3d86f70..6cbdd74 100644
--- a/src/main/java/com/ycl/jxkg/domain/base/AbsEntity.java
+++ b/src/main/java/com/ycl/jxkg/domain/base/AbsEntity.java
@@ -1,9 +1,6 @@
 package com.ycl.jxkg.domain.base;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 
 import java.util.Date;
@@ -28,7 +25,8 @@
 //    @TableField(value = "gmt_update", fill = FieldFill.INSERT_UPDATE)
 //    private Date gmtUpdate;
 
-    @TableField(value = "deleted", fill = FieldFill.INSERT)
+    @TableField(value = "deleted", fill = FieldFill.INSERT, select = false)
+    @TableLogic
     private Integer deleted;
 
 }
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperQuestionCustomerAnswer.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperQuestionCustomerAnswer.java
index 9d97645..913c860 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperQuestionCustomerAnswer.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperQuestionCustomerAnswer.java
@@ -58,8 +58,8 @@
     /**
      * 闂鍐呭
      */
-    @TableField("question_text_content_id")
-    private Integer questionTextContentId;
+    @TableField("questionContent")
+    private String questionContent;
 
     /**
      * 鍋氶绛旀
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/Question.java b/src/main/java/com/ycl/jxkg/domain/entity/Question.java
index 2f44f79..d32d719 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/Question.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/Question.java
@@ -56,8 +56,8 @@
     /**
      * 棰樼洰 濉┖銆� 棰樺共銆佽В鏋愩�佺瓟妗堢瓑淇℃伅
      */
-    @TableField("info_text_content_id")
-    private Integer infoTextContentId;
+    @TableField("content")
+    private String content;
 
     /**
      * 鍒涘缓浜�
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/question/QuestionResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/question/QuestionResponseVO.java
index 0334ece..85fad0e 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/question/QuestionResponseVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/question/QuestionResponseVO.java
@@ -10,14 +10,20 @@
 
     private Integer questionType;
 
-    private Integer textContentId;
+    private String questionTypeName;
+
+    private String content;
 
     private String createTime;
 
     private Integer subjectId;
 
+    private String subjectName;
+
     private Integer createUser;
 
+    private String createUserName;
+
     private String score;
 
     private Integer status;
diff --git a/src/main/java/com/ycl/jxkg/service/QuestionService.java b/src/main/java/com/ycl/jxkg/service/QuestionService.java
index ca04006..b3ae3e9 100644
--- a/src/main/java/com/ycl/jxkg/service/QuestionService.java
+++ b/src/main/java/com/ycl/jxkg/service/QuestionService.java
@@ -5,12 +5,13 @@
 import com.ycl.jxkg.domain.vo.admin.question.QuestionEditRequestVO;
 import com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO;
 import com.github.pagehelper.PageInfo;
+import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO;
 
 import java.util.List;
 
 public interface QuestionService extends IService<Question> {
 
-    PageInfo<Question> page(QuestionPageRequestVO requestVM);
+    PageInfo<QuestionResponseVO> page(QuestionPageRequestVO requestVM);
 
     Question insertFullQuestion(QuestionEditRequestVO model, Integer userId);
 
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperAnswerServiceImpl.java
index 2d977e5..d5c93e7 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperAnswerServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperAnswerServiceImpl.java
@@ -192,7 +192,7 @@
         examPaperQuestionCustomerAnswer.setCreateTime(now);
         examPaperQuestionCustomerAnswer.setCreateUser(user.getId());
         examPaperQuestionCustomerAnswer.setQuestionType(question.getQuestionType());
-        examPaperQuestionCustomerAnswer.setQuestionTextContentId(question.getInfoTextContentId());
+        examPaperQuestionCustomerAnswer.setQuestionContent(question.getContent());
         if (null == customerQuestionAnswer) {
             examPaperQuestionCustomerAnswer.setCustomerScore(0);
         } else {
diff --git a/src/main/java/com/ycl/jxkg/service/impl/QuestionServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/QuestionServiceImpl.java
index 64c590d..7b83e10 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/QuestionServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/QuestionServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ycl.jxkg.domain.enums.QuestionTypeEnum;
 import com.ycl.jxkg.domain.question.QuestionItemObject;
 import com.ycl.jxkg.domain.question.QuestionObject;
+import com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO;
 import com.ycl.jxkg.mapper.QuestionMapper;
 import com.ycl.jxkg.service.QuestionService;
 import com.ycl.jxkg.service.SubjectService;
@@ -39,7 +40,7 @@
 
 
     @Override
-    public PageInfo<Question> page(QuestionPageRequestVO requestVM) {
+    public PageInfo<QuestionResponseVO> page(QuestionPageRequestVO requestVM) {
         return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
                 questionMapper.page(requestVM)
         );
@@ -53,10 +54,7 @@
         Integer gradeLevel = subjectService.levelBySubjectId(model.getSubjectId());
 
         //棰樺共銆佽В鏋愩�侀�夐」绛� 鎻掑叆
-        TextContent infoTextContent = new TextContent();
-        infoTextContent.setCreateTime(now);
-        setQuestionInfoFromVM(infoTextContent, model);
-        textContentService.save(infoTextContent);
+        String questionObject = setQuestionInfoFromVM(model);
 
         Question question = new Question();
         question.setSubjectId(model.getSubjectId());
@@ -67,7 +65,7 @@
         question.setCorrectFromVM(model.getCorrect(), model.getCorrectArray());
         question.setScore(ExamUtil.scoreFromVM(model.getScore()));
         question.setDifficult(model.getDifficult());
-        question.setInfoTextContentId(infoTextContent.getId());
+        question.setContent(questionObject);
         question.setCreateUser(userId);
         questionMapper.insert(question);
         return question;
@@ -83,13 +81,10 @@
         question.setScore(ExamUtil.scoreFromVM(model.getScore()));
         question.setDifficult(model.getDifficult());
         question.setCorrectFromVM(model.getCorrect(), model.getCorrectArray());
-        questionMapper.updateById(question);
-
         //棰樺共銆佽В鏋愩�侀�夐」绛� 鏇存柊
-        TextContent infoTextContent = textContentService.getById(question.getInfoTextContentId());
-        setQuestionInfoFromVM(infoTextContent, model);
-        textContentService.updateById(infoTextContent);
-
+        String questionObject = setQuestionInfoFromVM(model);
+        question.setContent(questionObject);
+        questionMapper.updateById(question);
         return question;
     }
 
@@ -103,8 +98,7 @@
     @Override
     public QuestionEditRequestVO getQuestionEditRequestVM(Question question) {
         //棰樼洰鏄犲皠
-        TextContent questionInfoTextContent = textContentService.getById(question.getInfoTextContentId());
-        QuestionObject questionObject = JsonUtil.toJsonObject(questionInfoTextContent.getContent(), QuestionObject.class);
+        QuestionObject questionObject = JsonUtil.toJsonObject(question.getContent(), QuestionObject.class);
         QuestionEditRequestVO questionEditRequestVO = new QuestionEditRequestVO();
         BeanUtils.copyProperties(question, questionEditRequestVO);
         questionEditRequestVO.setTitle(questionObject.getTitleContent());
@@ -146,7 +140,7 @@
         return questionEditRequestVO;
     }
 
-    public void setQuestionInfoFromVM(TextContent infoTextContent, QuestionEditRequestVO model) {
+    public String setQuestionInfoFromVM(QuestionEditRequestVO model) {
         List<QuestionItemObject> itemObjects = model.getItems().stream().map(i ->
                 {
                     QuestionItemObject item = new QuestionItemObject();
@@ -162,7 +156,7 @@
         questionObject.setAnalyze(model.getAnalyze());
         questionObject.setTitleContent(model.getTitle());
         questionObject.setCorrect(model.getCorrect());
-        infoTextContent.setContent(JsonUtil.toJsonStr(questionObject));
+        return JsonUtil.toJsonStr(questionObject);
     }
 
     @Override
diff --git a/src/main/resources/mapper/ExamPaperQuestionCustomerAnswerMapper.xml b/src/main/resources/mapper/ExamPaperQuestionCustomerAnswerMapper.xml
index 713780b..e2e9067 100644
--- a/src/main/resources/mapper/ExamPaperQuestionCustomerAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperQuestionCustomerAnswerMapper.xml
@@ -10,7 +10,7 @@
         <result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
         <result column="customer_score" jdbcType="INTEGER" property="customerScore"/>
         <result column="question_score" jdbcType="INTEGER" property="questionScore"/>
-        <result column="question_text_content_id" jdbcType="INTEGER" property="questionTextContentId"/>
+        <result column="question_content" jdbcType="VARCHAR" property="questionContent"/>
         <result column="answer" jdbcType="VARCHAR" property="answer"/>
         <result column="text_content_id" jdbcType="INTEGER" property="textContentId"/>
         <result column="do_right" jdbcType="BIT" property="doRight"/>
@@ -21,7 +21,7 @@
     <sql id="Base_Column_List">
         id
         , question_id, exam_paper_id, exam_paper_answer_id, question_type, subject_id,
-    customer_score, question_score, question_text_content_id, answer, text_content_id,
+    customer_score, question_score, question_content, answer, text_content_id,
     do_right, create_user, create_time, item_order
     </sql>
 
@@ -51,7 +51,7 @@
         subject_id, create_time, create_user,
         text_content_id, exam_paper_id, question_type,
         answer, customer_score, exam_paper_answer_id ,
-        do_right,question_text_content_id,item_order)
+        do_right,question_content,item_order)
         values
         <foreach collection="list" item="item" index="index"
                  separator=",">
diff --git a/src/main/resources/mapper/QuestionMapper.xml b/src/main/resources/mapper/QuestionMapper.xml
index f10a52b..7a5a642 100644
--- a/src/main/resources/mapper/QuestionMapper.xml
+++ b/src/main/resources/mapper/QuestionMapper.xml
@@ -9,7 +9,7 @@
         <result column="grade_level" jdbcType="INTEGER" property="gradeLevel"/>
         <result column="difficult" jdbcType="INTEGER" property="difficult"/>
         <result column="correct" jdbcType="VARCHAR" property="correct"/>
-        <result column="info_text_content_id" jdbcType="INTEGER" property="infoTextContentId"/>
+        <result column="content" jdbcType="VARCHAR" property="content"/>
         <result column="create_user" jdbcType="INTEGER" property="createUser"/>
         <result column="status" jdbcType="INTEGER" property="status"/>
         <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
@@ -17,32 +17,36 @@
     </resultMap>
     <sql id="Base_Column_List">
         id
-        , question_type, subject_id, score, grade_level, difficult, correct, info_text_content_id,
+        , question_type, subject_id, score, grade_level, difficult, correct, content,
     create_user, status, create_time, deleted
     </sql>
 
 
-    <select id="page" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO">
+    <select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO" parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO">
         SELECT
-        <include refid="Base_Column_List"/>
-        FROM t_question
+        tq.*,
+        CASE WHEN tq.question_type = 1 THEN '鍗曢�夐' WHEN tq.question_type = 2 THEN '澶氶�夐' WHEN tq.question_type = 3 THEN '鍒ゆ柇棰�' WHEN tq.question_type = 4 THEN '濉┖棰�' WHEN tq.question_type = 5 THEN '绠�绛旈' END AS questionTypeName,
+        ts.name AS subjectName,
+        tu.real_name AS createUserName
+        FROM t_question tq
+        LEFT JOIN t_subject ts ON tq.subject_id = ts.id
+        LEFT JOIN t_user tu ON tq.create_user = tu.id
         <where>
-            and deleted=0
+            and tq.deleted=0
             <if test="id != null ">
-                and id= #{id}
+                and tq.id= #{id}
             </if>
             <if test="level != null ">
-                and grade_level= #{level}
+                and tq.grade_level= #{level}
             </if>
             <if test="subjectId != null ">
-                and subject_id= #{subjectId}
+                and tq.subject_id= #{subjectId}
             </if>
             <if test="questionType != null ">
-                and question_type= #{questionType}
+                and tq.question_type= #{questionType}
             </if>
             <if test="content != null">
-                and info_text_content_id in (SELECT id FROM t_text_content WHERE content like concat('%',#{content},'%')
-                )
+                and instr(tq.content, #{content})
             </if>
         </where>
     </select>

--
Gitblit v1.8.0