Jelajahi Sumber

顺序练习 排序出错修改

小么熊🐻 1 tahun lalu
induk
melakukan
5eb2d86381
17 mengubah file dengan 1138 tambahan dan 4 penghapusan
  1. 1 1
      jpcj-admin/src/main/java/com/miaxis/app/controller/common/CommonQuestionInfoController.java
  2. 69 0
      jpcj-admin/src/main/java/com/miaxis/app/controller/common/CommonQuestionInfoNewController.java
  3. 129 0
      jpcj-admin/src/main/java/com/miaxis/app/controller/h5/QuestionInfoNewController.java
  4. 61 0
      jpcj-service/src/main/java/com/miaxis/question/domain/QuestionColumn.java
  5. 185 0
      jpcj-service/src/main/java/com/miaxis/question/domain/QuestionInfoKtNew.java
  6. 78 0
      jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoNewDTO.java
  7. 28 0
      jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoNewTestDTO.java
  8. 0 2
      jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoTestDTO.java
  9. 23 0
      jpcj-service/src/main/java/com/miaxis/question/mapper/QuestionColumnMapper.java
  10. 36 0
      jpcj-service/src/main/java/com/miaxis/question/mapper/QuestionInfoKtNewMapper.java
  11. 22 0
      jpcj-service/src/main/java/com/miaxis/question/service/IQuestionColumnService.java
  12. 41 0
      jpcj-service/src/main/java/com/miaxis/question/service/IQuestionInfoKtNewService.java
  13. 33 0
      jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionColumnServiceImpl.java
  14. 222 0
      jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionInfoKtNewServiceImpl.java
  15. 1 1
      jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionInfoServiceImpl.java
  16. 34 0
      jpcj-service/src/main/resources/mapper/question/QuestionColumnMapper.xml
  17. 175 0
      jpcj-service/src/main/resources/mapper/question/QuestionInfoKtNewMapper.xml

+ 1 - 1
jpcj-admin/src/main/java/com/miaxis/app/controller/common/CommonQuestionInfoController.java

@@ -56,7 +56,7 @@ public class CommonQuestionInfoController extends BaseController{
      */
     @GetMapping("/selectFreeQuestionInfo")
     @ApiOperation("查询免费题库")
-    public ResponsePageInfo<QuestionInfo> selectFreeQuestionInfo(QuestionInfoFreeDTO freeDTO){
+    public ResponsePageInfo<QuestionInfo> selectFreeQuestionInfo(@ModelAttribute QuestionInfoFreeDTO freeDTO){
         List<QuestionInfo> list = questionInfoService.selectFreeQuestionInfo(freeDTO);
         return toResponsePageInfo(list);
     }

+ 69 - 0
jpcj-admin/src/main/java/com/miaxis/app/controller/common/CommonQuestionInfoNewController.java

@@ -0,0 +1,69 @@
+package com.miaxis.app.controller.common;
+
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.question.domain.QuestionInfo;
+import com.miaxis.question.domain.QuestionInfoKtNew;
+import com.miaxis.question.dto.QuestionInfoFreeDTO;
+import com.miaxis.question.dto.QuestionInfoNewTestDTO;
+import com.miaxis.question.dto.QuestionInfoTestDTO;
+import com.miaxis.question.service.IQuestionInfoKtNewService;
+import com.miaxis.question.service.IQuestionInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 【题库】Controller
+ *
+ * @author miaxis
+ * @date 2021-10-20
+ */
+@RestController
+@RequestMapping(Constants.OPEN_PREFIX+"/question2/info")
+@Api(tags={"【通用-新题库】"})
+public class CommonQuestionInfoNewController extends BaseController{
+
+
+    @Autowired
+    private IQuestionInfoKtNewService questionInfoKtNewService;
+
+    /**
+     * 查询模拟考试科目1与4题库
+     */
+    @GetMapping("/selectTestK14QuestionInfoList")
+    @ApiOperation("取模拟考试题库")
+    public ResponsePageInfo<QuestionInfoKtNew> selectTestK14QuestionInfoList(@ModelAttribute QuestionInfoNewTestDTO questionInfoNewTestDTO){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectTestK14QuestionInfoList(questionInfoNewTestDTO);
+        return toResponsePageInfo(list);
+    }
+
+    /**
+     * 查询模拟考试科目1与4题库
+     */
+    @GetMapping("/selectTestK14QuestionInfoListnN")
+    @ApiOperation("取模拟考试题库-无分页")
+    public Response<List<QuestionInfoKtNew>> selectTestK14QuestionInfoListN(@ModelAttribute QuestionInfoNewTestDTO questionInfoNewTestDTO){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectTestK14QuestionInfoList(questionInfoNewTestDTO);
+        return Response.success(list);
+    }
+
+    /**
+     * 查询免费题库
+     */
+    @GetMapping("/selectFreeQuestionInfo")
+    @ApiOperation("查询免费题库")
+    public ResponsePageInfo<QuestionInfoKtNew> selectFreeQuestionInfo(@ModelAttribute QuestionInfoFreeDTO freeDTO){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectFreeQuestionInfo(freeDTO);
+        return toResponsePageInfo(list);
+    }
+}
+

+ 129 - 0
jpcj-admin/src/main/java/com/miaxis/app/controller/h5/QuestionInfoNewController.java

@@ -0,0 +1,129 @@
+package com.miaxis.app.controller.h5;
+
+import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.controller.BaseController;
+import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.page.ResponsePageInfo;
+import com.miaxis.question.domain.QuestionColumn;
+import com.miaxis.question.domain.QuestionInfo;
+import com.miaxis.question.domain.QuestionInfoKtNew;
+import com.miaxis.question.dto.QuestionInfoNewDTO;
+import com.miaxis.question.dto.QuestionInfoNewTestDTO;
+import com.miaxis.question.service.IQuestionColumnService;
+import com.miaxis.question.service.IQuestionInfoKtNewService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 【题库】Controller
+ *
+ * @author miaxis
+ * @date 2021-10-20
+ */
+@RestController
+@RequestMapping(Constants.STUDENT_PREFIX+"/question2/info")
+@Api(tags={"【H5-新题库】"})
+public class QuestionInfoNewController extends BaseController{
+
+    @Autowired
+    private IQuestionInfoKtNewService questionInfoKtNewService;
+    @Autowired
+    private IQuestionColumnService questionColumnService;
+
+    /**
+     * 查询题库列表
+     */
+    @GetMapping("/list")
+    @ApiOperation("查询题库列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
+            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
+    })
+    public ResponsePageInfo<QuestionInfoKtNew> list(@ModelAttribute QuestionInfoNewDTO questionInfoNewDTO){
+        startPage();
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectQuestionInfoList(questionInfoNewDTO);
+        return toResponsePageInfo(list);
+    }
+
+
+
+    /**
+     * 获取题库详细信息
+     */
+    @GetMapping(value = "/{id}")
+    @ApiOperation("获取题库详细信息")
+    public Response<QuestionInfoKtNew> getInfo(
+            @ApiParam(name = "id", value = "题库参数", required = true)
+            @PathVariable("id") Long id
+    ){
+        return Response.success(questionInfoKtNewService.getById(id));
+    }
+
+    /**
+     * 获取题库详细信息多个题库
+     */
+    @GetMapping(value = "/getQuestionInfoByIds")
+    @ApiOperation("获取题库详细信息批量取题")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "ids",value = "题目ids" ,dataType = "List", required = true)})
+    public ResponsePageInfo<QuestionInfoKtNew> getQuestionInfoByIds(Long[] ids){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectQuestionInfoListByIds(ids);
+        return toResponsePageInfo(list);
+    }
+
+
+
+    @GetMapping(value = "/getQuestionColumn")
+    @ApiOperation("获取题库分类")
+    public Response<List<QuestionColumn>> getQuestionColumn(@ModelAttribute QuestionColumn questionColumn){
+        List<QuestionColumn> list = questionColumnService.selectQuestionColumnList(questionColumn);
+        return Response.success(list);
+    }
+
+
+    /**
+     * 获取地方分类
+     */
+
+
+    /**
+     * 获取分类专题分类
+     */
+
+
+    /**
+     * 获取顺序练习分类
+     */
+
+
+    /**
+     * 查询题库列表(非会员)
+     */
+    @GetMapping("/normalList")
+    @ApiOperation("查询题库列表(非会员)")
+    public ResponsePageInfo<QuestionInfoKtNew> normalList(@ModelAttribute QuestionInfoNewDTO questionInfoNewDTO){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectNormalQuestionInfoList(questionInfoNewDTO);
+        return toResponsePageInfo(list);
+    }
+
+
+
+
+    /**
+     * 查询模拟考试科目1与4题库
+     */
+    @GetMapping("/selectTestK14QuestionInfoList")
+    @ApiOperation("取模拟考试题库")
+    public ResponsePageInfo<QuestionInfoKtNew> selectTestK14QuestionInfoList(@ModelAttribute QuestionInfoNewTestDTO questionInfoTestDTO){
+        List<QuestionInfoKtNew> list = questionInfoKtNewService.selectTestK14QuestionInfoList(questionInfoTestDTO);
+        return toResponsePageInfo(list);
+    }
+
+
+
+
+}
+

+ 61 - 0
jpcj-service/src/main/java/com/miaxis/question/domain/QuestionColumn.java

@@ -0,0 +1,61 @@
+package com.miaxis.question.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 题库分类对象 question_column
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+@Data
+@TableName("question_column")
+@ApiModel(value = "QuestionColumn", description = "题库分类对象 question_column")
+public class QuestionColumn extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**  ID */
+    @TableId(value = "id")
+    @ApiModelProperty(value = " ID")
+    private Long id;
+
+    /** 列ID */
+    @Excel(name = "列ID")
+    @TableField("column_id")
+    @ApiModelProperty(value = "列ID")
+    private Integer columnId;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    @TableField("sort")
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    /** 车型 */
+    @Excel(name = "车型")
+    @TableField("model")
+    @ApiModelProperty(value = "车型")
+    private String model;
+
+    /** 科目类型 */
+    @Excel(name = "科目类型")
+    @TableField("subject")
+    @ApiModelProperty(value = "科目类型 k1:顺序练习 k1_2:精选必考题 k1_3:分类练习 k1_4:地方题库  k4:顺序练习  k4_2:精选必考题  k4_3:分类练习  k4_4:地方题库")
+    private String subject;
+
+    /** 分类标题 */
+    @Excel(name = "分类标题")
+    @TableField("title")
+    @ApiModelProperty(value = "分类标题")
+    private String title;
+
+
+
+}

+ 185 - 0
jpcj-service/src/main/java/com/miaxis/question/domain/QuestionInfoKtNew.java

@@ -0,0 +1,185 @@
+package com.miaxis.question.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.annotation.Excel;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 获取快通题库对象 question_info_kt_get
+ *
+ * @author miaxis
+ * @date 2022-04-08
+ */
+@Data
+@TableName("question_info_kt_new")
+@ApiModel(value = "QuestionInfoKtNew", description = "获取快通题库对象 question_info_kt_new")
+public class QuestionInfoKtNew extends BaseBusinessEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**  主键 */
+    @TableId(value = "id",type = IdType.INPUT)
+    @ApiModelProperty(value = " 主键")
+    private Long id;
+
+
+    /** 一点通ID */
+    @Excel(name = "一点通ID")
+    @TableField("id_ydt")
+    @ApiModelProperty(value = "一点通ID")
+    private Long idYdt;
+
+
+    /** 在所有题目中的序号 */
+    @Excel(name = "在所有题目中的序号")
+    @TableField("number")
+    @ApiModelProperty(value = "在所有题目中的序号")
+    private Long number;
+
+    /** 正确答案 */
+    @Excel(name = "正确答案")
+    @TableField("answer")
+    @ApiModelProperty(value = "正确答案")
+    private String answer;
+
+    /** 答案关键词 */
+    @Excel(name = "答案关键词")
+    @TableField("answerkeyword")
+    @ApiModelProperty(value = "答案关键词")
+    private String answerkeyword;
+
+    /** 技巧讲解图片URL */
+    @Excel(name = "技巧讲解图片URL")
+    @TableField("explain_gif")
+    @ApiModelProperty(value = "技巧讲解图片URL")
+    private String explainGif;
+
+    /** 技巧讲解说明 */
+    @Excel(name = "技巧讲解说明")
+    @TableField("explain_jq")
+    @ApiModelProperty(value = "技巧讲解说明")
+    private String explainJq;
+
+    /** 官方解释 */
+    @Excel(name = "官方解释")
+    @TableField("explain_js")
+    @ApiModelProperty(value = "官方解释")
+    private String explainJs;
+
+    /** 技巧讲解语音URL */
+    @Excel(name = "技巧讲解语音URL")
+    @TableField("explain_mp3")
+    @ApiModelProperty(value = "技巧讲解语音URL")
+    private String explainMp3;
+
+    /** 题目图片URL */
+    @Excel(name = "题目图片URL")
+    @TableField("image")
+    @ApiModelProperty(value = "题目图片URL")
+    private String image;
+
+    /** 题目图片URL2 */
+    @Excel(name = "题目图片URL2")
+    @TableField("image_ydt")
+    @ApiModelProperty(value = "题目图片URL2")
+    private String imageYdt;
+
+    /** 题目 */
+    @Excel(name = "题目")
+    @TableField("issue")
+    @ApiModelProperty(value = "题目")
+    private String issue;
+
+    /** 答案选项 */
+    @Excel(name = "答案选项")
+    @TableField("opts")
+    @ApiModelProperty(value = "答案选项")
+    private String opts;
+
+    /** 答题技巧关键词 */
+    @Excel(name = "答题技巧关键词")
+    @TableField("skillkeyword")
+    @ApiModelProperty(value = "答题技巧关键词")
+    private String skillkeyword;
+
+    /** 题目关键词 */
+    @Excel(name = "题目关键词")
+    @TableField("titlekeyword")
+    @ApiModelProperty(value = "题目关键词")
+    private String titlekeyword;
+
+    /** 读题语音URL */
+    @Excel(name = "读题语音URL")
+    @TableField("issuemp3")
+    @ApiModelProperty(value = "读题语音URL")
+    private String issuemp3;
+
+    /** 答案语音URL */
+    @Excel(name = "答案语音URL")
+    @TableField("answermp3")
+    @ApiModelProperty(value = "答案语音URL")
+    private String answermp3;
+
+    /** 读题+答案语音URL */
+    @Excel(name = "读题+答案语音URL")
+    @TableField("explainjsmp3")
+    @ApiModelProperty(value = "读题+答案语音URL")
+    private String explainjsmp3;
+
+    /** 车型 */
+    @Excel(name = "车型")
+    @TableField("model")
+    @ApiModelProperty(value = "车型")
+    private String model;
+
+    /** 本题属于哪些分类ID */
+    @Excel(name = "本题属于哪些分类ID")
+    @TableField("column_all")
+    @ApiModelProperty(value = "本题属于哪些分类ID")
+    private String columnAll;
+
+    /** 题目类型 1判断题 2选择题 3多选题 */
+    @Excel(name = "题目类型 1判断题 2选择题 3多选题")
+    @TableField("question_type")
+    @ApiModelProperty(value = "题目类型 1判断题 2选择题 3多选题")
+    private Long questionType;
+
+
+    /** 科目 */
+    @Excel(name = "科目")
+    @TableField("subject")
+    @ApiModelProperty(value = "科目")
+    private String subject;
+
+
+    /** 章节ID */
+    @Excel(name = "章节ID")
+    @TableField("chapter_id")
+    @ApiModelProperty(value = "章节ID")
+    private Long chapterId;
+
+    /** 是否新规定 0否 1是 */
+    @Excel(name = "是否新规定 0否 1是")
+    @TableField("is_new")
+    @ApiModelProperty(value = "是否新规定 0否 1是")
+    private Long isNew;
+
+    /** 难度 */
+    @Excel(name = "难度")
+    @TableField("diff_degree")
+    @ApiModelProperty(value = "难度")
+    private Long diffDegree;
+
+    /** 错误率 */
+    @Excel(name = "错误率")
+    @TableField("error_rate")
+    @ApiModelProperty(value = "错误率")
+    private Long errorRate;
+
+
+}

+ 78 - 0
jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoNewDTO.java

@@ -0,0 +1,78 @@
+package com.miaxis.question.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 题库对象 question_info
+ *
+ * @author miaxis
+ * @date 2021-10-20
+ */
+@Data
+@TableName("question_info")
+@ApiModel(value = "QuestionInfo", description = "题库对象 question_info")
+public class QuestionInfoNewDTO extends BaseBusinessEntity{
+    private static final long serialVersionUID = 1L;
+
+    /**  主键 */
+    @ApiModelProperty(value = " 主键")
+    private Long id;
+
+    /** 在所有题目中的序号 */
+    @ApiModelProperty(value = "在所有题目中的序号")
+    private Long number;
+
+    /** 正确答案 */
+    @ApiModelProperty(value = "正确答案")
+    private String answer;
+
+
+    /** 题目 */
+    @ApiModelProperty(value = "题目")
+    private String issue;
+
+    /** 答案选项 */
+    @ApiModelProperty(value = "答案选项")
+    private String opts;
+
+
+    /** 题目类型 */
+    @ApiModelProperty(value = "题目类型 1判断,2选择,3多选")
+    private Integer questionType;
+
+
+    /** 科目 */
+    @ApiModelProperty(value = "科目: 科目一:1;  科目二:2; 科目三:3  科目四:4")
+    private String subject;
+
+    /** 车型 */
+    @ApiModelProperty(value = "车型 小车:cart;客车:bus;货车:truck; 摩托车:mtc")
+    private String model;
+
+    /** 分类 */
+    @ApiModelProperty(value = "分类")
+    private String columnAll;
+
+    /** 章节ID  */
+    @ApiModelProperty(value = "章节ID")
+    private Integer chapterId;
+
+    /**
+     * 难度等级1-5
+     */
+    @ApiModelProperty(value = "分类字段名",hidden = true)
+    private String diffDegree;
+
+
+    /**
+     * 是否是新规题
+     */
+    @ApiModelProperty(value = "是否是新规题 0否 1是",hidden = true)
+    private Integer isNew;
+
+
+}

+ 28 - 0
jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoNewTestDTO.java

@@ -0,0 +1,28 @@
+package com.miaxis.question.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 模拟考试输入对象
+ * @author miaxis
+ * @date 2021-10-20
+ */
+@Data
+@ApiModel(value = "QuestionInfoNewTestDTO", description = "模拟考试输入对象")
+public class QuestionInfoNewTestDTO {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "科目 科目一:1; 科目一:4")
+    private Integer subject;
+
+    @ApiModelProperty(value = "取题车型 小车:cart;客车:bus;货车:truck; 摩托车:mtc")
+    private String model;
+
+
+
+}

+ 0 - 2
jpcj-service/src/main/java/com/miaxis/question/dto/QuestionInfoTestDTO.java

@@ -1,7 +1,5 @@
 package com.miaxis.question.dto;
 
-import com.miaxis.common.core.domain.BaseBusinessEntity;
-import com.sun.corba.se.spi.presentation.rmi.IDLNameTranslator;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 23 - 0
jpcj-service/src/main/java/com/miaxis/question/mapper/QuestionColumnMapper.java

@@ -0,0 +1,23 @@
+package com.miaxis.question.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.question.domain.QuestionColumn;
+
+import java.util.List;
+
+/**
+ * 题库分类Mapper接口
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+public interface QuestionColumnMapper extends BaseMapper<QuestionColumn> {
+    /**
+     * 查询题库分类列表
+     *
+     * @param questionColumn 题库分类
+     * @return 题库分类集合
+     */
+    public List<QuestionColumn> selectQuestionColumnList(QuestionColumn questionColumn);
+
+}

+ 36 - 0
jpcj-service/src/main/java/com/miaxis/question/mapper/QuestionInfoKtNewMapper.java

@@ -0,0 +1,36 @@
+package com.miaxis.question.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.miaxis.question.domain.QuestionInfoKtNew;
+import com.miaxis.question.dto.QuestionInfoFreeDTO;
+import com.miaxis.question.dto.QuestionInfoNewDTO;
+
+import java.util.List;
+
+/**
+ * 获取快通题库Mapper接口
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+public interface QuestionInfoKtNewMapper extends BaseMapper<QuestionInfoKtNew> {
+    /**
+     * 查询获取快通题库列表
+     *
+     * @param questionInfoKtNew 获取快通题库
+     * @return 获取快通题库集合
+     */
+    public List<QuestionInfoKtNew> selectQuestionInfoKtNewList(QuestionInfoKtNew questionInfoKtNew);
+
+    int selectQuestionInfoKtNewCount(QuestionInfoKtNew questionInfoKtNew);
+
+    List<QuestionInfoKtNew> selectTestK14QuestionInfoList(String toString);
+
+    List<QuestionInfoKtNew> selectFreeQuestionInfoList(QuestionInfoFreeDTO freeDTO);
+
+    List<QuestionInfoKtNew> selectQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO);
+
+    List<QuestionInfoKtNew> selectNormalQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO);
+
+    List<QuestionInfoKtNew> selectQuestionInfoListByIds(Long[] ids);
+}

+ 22 - 0
jpcj-service/src/main/java/com/miaxis/question/service/IQuestionColumnService.java

@@ -0,0 +1,22 @@
+package com.miaxis.question.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.question.domain.QuestionColumn;
+
+import java.util.List;
+
+/**
+ * 题库分类Service接口
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+public interface IQuestionColumnService extends IService<QuestionColumn>{
+    /**
+     * 查询题库分类列表
+     *
+     * @param questionColumn 题库分类
+     * @return 题库分类集合
+     */
+    public List<QuestionColumn> selectQuestionColumnList(QuestionColumn questionColumn);
+}

+ 41 - 0
jpcj-service/src/main/java/com/miaxis/question/service/IQuestionInfoKtNewService.java

@@ -0,0 +1,41 @@
+package com.miaxis.question.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.miaxis.question.domain.QuestionInfo;
+import com.miaxis.question.domain.QuestionInfoKtNew;
+import com.miaxis.question.dto.QuestionInfoDTO;
+import com.miaxis.question.dto.QuestionInfoFreeDTO;
+import com.miaxis.question.dto.QuestionInfoNewDTO;
+import com.miaxis.question.dto.QuestionInfoNewTestDTO;
+
+import java.util.List;
+
+/**
+ * 获取快通题库Service接口
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+public interface IQuestionInfoKtNewService extends IService<QuestionInfoKtNew>{
+    /**
+     * 查询获取快通题库列表
+     *
+     * @param questionInfoKtNew 获取快通题库
+     * @return 获取快通题库集合
+     */
+    public List<QuestionInfoKtNew> selectQuestionInfoKtNewList(QuestionInfoKtNew questionInfoKtNew);
+
+
+    public int selectQuestionInfoKtNewCount(QuestionInfoKtNew questionInfoKtNew);
+
+
+    List<QuestionInfoKtNew> selectTestK14QuestionInfoList(QuestionInfoNewTestDTO questionInfoNewTestDTO);
+
+    List<QuestionInfoKtNew> selectFreeQuestionInfo(QuestionInfoFreeDTO freeDTO);
+
+    List<QuestionInfoKtNew> selectQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO);
+
+    List<QuestionInfoKtNew> selectNormalQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO);
+
+    List<QuestionInfoKtNew> selectQuestionInfoListByIds(Long[] ids);
+}

+ 33 - 0
jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionColumnServiceImpl.java

@@ -0,0 +1,33 @@
+package com.miaxis.question.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.question.domain.QuestionColumn;
+import com.miaxis.question.mapper.QuestionColumnMapper;
+import com.miaxis.question.service.IQuestionColumnService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 题库分类Service业务层处理
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+@Service
+public class QuestionColumnServiceImpl extends ServiceImpl<QuestionColumnMapper, QuestionColumn> implements IQuestionColumnService {
+    @Autowired
+    private QuestionColumnMapper questionColumnMapper;
+
+    /**
+     * 查询题库分类列表
+     *
+     * @param questionColumn 题库分类
+     * @return 题库分类
+     */
+    @Override
+    public List<QuestionColumn> selectQuestionColumnList(QuestionColumn questionColumn){
+        return questionColumnMapper.selectQuestionColumnList(questionColumn);
+    }
+}

+ 222 - 0
jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionInfoKtNewServiceImpl.java

@@ -0,0 +1,222 @@
+package com.miaxis.question.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.miaxis.common.exception.CustomException;
+import com.miaxis.question.domain.QuestionInfo;
+import com.miaxis.question.domain.QuestionInfoKtNew;
+import com.miaxis.question.domain.TAppExamRule;
+import com.miaxis.question.dto.*;
+import com.miaxis.question.mapper.QuestionInfoKtNewMapper;
+import com.miaxis.question.service.IQuestionInfoKtNewService;
+import com.miaxis.question.service.ITAppExamRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 获取快通题库Service业务层处理
+ *
+ * @author miaxis
+ * @date 2023-11-03
+ */
+@Service
+public class QuestionInfoKtNewServiceImpl extends ServiceImpl<QuestionInfoKtNewMapper, QuestionInfoKtNew> implements IQuestionInfoKtNewService {
+    @Autowired
+    private QuestionInfoKtNewMapper questionInfoKtNewMapper;
+
+
+    @Autowired
+    private ITAppExamRuleService appExamRuleService;
+
+    /**
+     * 查询获取快通题库列表
+     *
+     * @param questionInfoKtNew 获取快通题库
+     * @return 获取快通题库
+     */
+    @Override
+    public List<QuestionInfoKtNew> selectQuestionInfoKtNewList(QuestionInfoKtNew questionInfoKtNew){
+        return questionInfoKtNewMapper.selectQuestionInfoKtNewList(questionInfoKtNew);
+    }
+
+    @Override
+    public int selectQuestionInfoKtNewCount(QuestionInfoKtNew questionInfoKtNew) {
+        return questionInfoKtNewMapper.selectQuestionInfoKtNewCount(questionInfoKtNew);
+    }
+
+    @Override
+    public List<QuestionInfoKtNew> selectTestK14QuestionInfoList(QuestionInfoNewTestDTO qt) {
+        String cx = null;
+        Integer kemu = null;
+
+        if ("mtc".equals(qt.getModel())) {
+            cx = "mtc";
+        } else if ("cart".equals(qt.getModel())) {
+            cx = "xc";
+        } else if ("truck".equals(qt.getModel())) {
+            cx = "hc";
+        } else if ("kc".equals(qt.getModel())) {
+            cx = "bus";
+        }
+
+        if ("k1".equals(qt.getSubject())) {
+            kemu = 1;
+        } else if ("k2".equals(qt.getSubject())) {
+            kemu = 2;
+        } else if ("k3".equals(qt.getSubject())) {
+            kemu =3;
+        } else if ("k4".equals(qt.getSubject())) {
+            kemu = 4;
+        }
+
+
+        //全题库
+        List<QuestionInfoKtNew> allList = new ArrayList<QuestionInfoKtNew>();
+        TAppExamRule tAppExamRule = new TAppExamRule();
+        tAppExamRule.setKemu(kemu);
+        tAppExamRule.setGs(cx);
+        tAppExamRule.setAreacode(0);
+
+        List<TAppExamRule> list = appExamRuleService.selectTAppExamRuleList(tAppExamRule);
+        if (list.size() == 0) {
+            return allList;
+        }
+        int total = 0;
+        StringBuffer sql = new StringBuffer();
+        sql.append("SELECT * FROM (");
+
+        boolean shouldRetry = false;
+        do {
+            shouldRetry = false;
+            for (int i = 0; i < list.size(); i++) {
+                TAppExamRule er = list.get(i);
+                int easyJudge = er.getJudgeCount(); //判断
+                int easyChoice = er.getChoiceCount(); //选择
+                int easyMultiple = er.getMultipleChoiceCount(); //多选
+
+                System.out.println("i="+i);
+                System.out.println(qt.getModel()+"+"+qt.getSubject());
+                System.out.println("判断题:"+easyJudge);
+                System.out.println("选择题:"+easyChoice);
+                System.out.println("多选题:"+easyMultiple);
+
+                total = total + easyJudge + easyChoice + easyMultiple;
+
+                int difficult = er.getDifficultCount(); //难题数
+                int chapterId = er.getChapterId();
+
+                Random random = new Random();
+                int diffJudeg = 0; //判断题
+                int diffChoice = 0; //单选题
+                int diffMultiple = 0; //多选题
+
+                int randomNum = 0;
+                for (int j = 0; j < difficult; j++) {
+
+
+                    if(qt.getSubject()==1 || (qt.getSubject()==4 && easyMultiple==0)) {
+                        randomNum = random.nextInt(2); //随机出现 0和1  0表示判断 1表示单选
+                        if (randomNum == 0) {   //判断题
+                            diffJudeg++;
+                            easyJudge--;
+                        } else if (randomNum == 1) {  //单选题
+                            diffChoice++;
+                            easyChoice--;
+                        }
+                    } else if(qt.getSubject()==4){
+                        randomNum = random.nextInt(3); //随机出现 0、1、2  0表示判断 1表示单选 2多选
+                        if (randomNum == 0) {   //判断题
+                            diffJudeg++;
+                            easyJudge--;
+                        } else if (randomNum == 1) {  //单选题
+                            diffChoice++;
+                            easyChoice--;
+                        } else if (randomNum == 2) {    //多选题
+                            diffMultiple++;
+                            easyMultiple--;
+                        }
+
+                    }
+
+
+                }
+
+                if(qt.getSubject()==1) {
+                    if (diffJudeg < 0 || easyJudge < 0 || diffChoice < 0 || easyChoice < 0) {
+                        shouldRetry = true;
+                        sql.setLength(0);  //清空还原
+                        sql.append("SELECT * FROM (");
+                        break;
+                    }
+                }
+                // 检查变量值是否小于0
+                if(qt.getSubject()==4) {
+                    if (diffJudeg < 0 || easyJudge < 0 || diffChoice < 0 || easyChoice < 0 || diffMultiple < 0 || easyMultiple < 0) {
+                        shouldRetry = true;
+                        sql.setLength(0);  //清空还原
+                        sql.append("SELECT * FROM (");
+                        break;
+                    }
+                }
+
+
+                if (i != 0) {
+                    sql.append(" union ");
+                }
+                //判断题
+                sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '1' AND diff_degree in (1,2,3) ORDER BY RAND() LIMIT " + easyJudge + ") ");
+                sql.append(" union ");
+                sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '1' AND diff_degree in (4,5) ORDER BY RAND() LIMIT " + diffJudeg + ") ");
+                sql.append(" union ");
+                //选择题
+                sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '2' AND diff_degree in (1,2,3) ORDER BY RAND() LIMIT " + easyChoice + ") ");
+                sql.append(" union ");
+                sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '2' AND diff_degree in (4,5) ORDER BY RAND() LIMIT " + diffChoice + ") ");
+                //多选题
+                if (qt.getSubject() == 4) {
+                    sql.append(" union ");
+                    sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '3' AND diff_degree in (1,2,3) ORDER BY RAND() LIMIT " + easyMultiple + ") ");
+                    sql.append(" union ");
+                    sql.append(" (SELECT * FROM question_info_kt_new WHERE chapter_id = " + chapterId + " AND subject = " + qt.getSubject() + " AND question_type = '3' AND diff_degree in (4,5) ORDER BY RAND() LIMIT " + diffMultiple + ") ");
+                }
+            }
+
+        } while (shouldRetry);
+
+        sql.append(" ) as db");
+        System.out.println(sql.toString());
+        allList = questionInfoKtNewMapper.selectTestK14QuestionInfoList(sql.toString());
+        if (allList.size() == total) {
+            return allList;
+        } else {
+            new CustomException("模拟考试取题出错,请重试。");
+            return null;
+        }
+    }
+
+    @Override
+    public List<QuestionInfoKtNew> selectFreeQuestionInfo(QuestionInfoFreeDTO freeDTO) {
+        List<QuestionInfoKtNew> list = questionInfoKtNewMapper.selectFreeQuestionInfoList(freeDTO);
+        return list;
+    }
+
+    @Override
+    public List<QuestionInfoKtNew> selectQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO) {
+        return questionInfoKtNewMapper.selectQuestionInfoList(questionInfoNewDTO);
+    }
+
+    @Override
+    public List<QuestionInfoKtNew> selectNormalQuestionInfoList(QuestionInfoNewDTO questionInfoNewDTO) {
+        return questionInfoKtNewMapper.selectNormalQuestionInfoList(questionInfoNewDTO);
+    }
+
+    @Override
+    public List<QuestionInfoKtNew> selectQuestionInfoListByIds(Long[] ids) {
+        return questionInfoKtNewMapper.selectQuestionInfoListByIds(ids);
+    }
+
+
+}

+ 1 - 1
jpcj-service/src/main/java/com/miaxis/question/service/impl/QuestionInfoServiceImpl.java

@@ -388,7 +388,7 @@ public class QuestionInfoServiceImpl extends ServiceImpl<QuestionInfoMapper, Que
                 int easyMultiple = er.getMultipleChoiceCount(); //多选
 
                 System.out.println("i="+i);
-                System.out.println(qt.getLiceTruck()+"+"+qt.getSubject());
+                System.out.println(qt.getGs()+"+"+qt.getSubject());
                 System.out.println("判断题:"+easyJudge);
                 System.out.println("选择题:"+easyChoice);
                 System.out.println("多选题:"+easyMultiple);

+ 34 - 0
jpcj-service/src/main/resources/mapper/question/QuestionColumnMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.miaxis.question.mapper.QuestionColumnMapper">
+
+    <resultMap type="QuestionColumn" id="QuestionColumnResult">
+        <result property="id"    column="id"    />
+        <result property="columnId"    column="column_id"    />
+        <result property="sort"    column="sort"    />
+        <result property="model"    column="model"    />
+        <result property="subject"    column="subject"    />
+        <result property="title"    column="title"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectQuestionColumnVo">
+        select * from question_column
+    </sql>
+
+    <select id="selectQuestionColumnList" parameterType="QuestionColumn" resultMap="QuestionColumnResult">
+        <include refid="selectQuestionColumnVo"/>
+        <where>
+            <if test="sort != null "> and sort = #{sort}</if>
+            <if test="columnId != null "> and column_id = #{columnId}</if>
+            <if test="model != null  and model != ''"> and model like concat('%', #{model}, '%')</if>
+            <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="title != null  and title != ''"> and title = #{title}</if>
+        </where>
+        order by sort
+    </select>
+
+</mapper>

+ 175 - 0
jpcj-service/src/main/resources/mapper/question/QuestionInfoKtNewMapper.xml

@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.miaxis.question.mapper.QuestionInfoKtNewMapper">
+
+    <resultMap type="QuestionInfoKtNew" id="QuestionInfoKtNewResult">
+        <result property="id"    column="id"    />
+        <result property="idYdt"    column="id_ydt"    />
+        <result property="number"    column="number"    />
+        <result property="answer"    column="answer"    />
+        <result property="answerkeyword"    column="answerkeyword"    />
+        <result property="explainGif"    column="explain_gif"    />
+        <result property="explainJq"    column="explain_jq"    />
+        <result property="explainJs"    column="explain_js"    />
+        <result property="explainMp3"    column="explain_mp3"    />
+        <result property="image"    column="image"    />
+        <result property="imageYdt"    column="image_ydt"    />
+        <result property="issue"    column="issue"    />
+        <result property="opts"    column="opts"    />
+        <result property="skillkeyword"    column="skillkeyword"    />
+        <result property="titlekeyword"    column="titlekeyword"    />
+        <result property="issuemp3"    column="issuemp3"    />
+        <result property="answermp3"    column="answermp3"    />
+        <result property="explainjsmp3"    column="explainjsmp3"    />
+        <result property="model"    column="model"    />
+        <result property="columnAll"    column="column_all"    />
+        <result property="questionType"    column="question_type"    />
+        <result property="subject"    column="subject"    />
+        <result property="chapterId"    column="chapter_id"    />
+        <result property="isNew"    column="is_new"    />
+        <result property="diffDegree"    column="diff_degree"    />
+        <result property="errorRate"    column="error_rate"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectQuestionInfoKtNewVo">
+        select * from question_info_kt_new
+    </sql>
+
+    <select id="selectQuestionInfoKtNewList" parameterType="QuestionInfoKtNew" resultMap="QuestionInfoKtNewResult">
+        <include refid="selectQuestionInfoKtNewVo"/>
+        <where>
+            <if test="idYdt != null "> and id_ydt = #{idYdt}</if>
+            <if test="number != null "> and number = #{number}</if>
+            <if test="answer != null  and answer != ''"> and answer = #{answer}</if>
+            <if test="answerkeyword != null  and answerkeyword != ''"> and answerkeyword = #{answerkeyword}</if>
+            <if test="explainGif != null  and explainGif != ''"> and explain_gif = #{explainGif}</if>
+            <if test="explainJq != null  and explainJq != ''"> and explain_jq = #{explainJq}</if>
+            <if test="explainJs != null  and explainJs != ''"> and explain_js = #{explainJs}</if>
+            <if test="explainMp3 != null  and explainMp3 != ''"> and explain_mp3 = #{explainMp3}</if>
+            <if test="image != null  and image != ''"> and image = #{image}</if>
+            <if test="imageYdt != null  and imageYdt != ''"> and image_ydt = #{imageYdt}</if>
+            <if test="issue != null  and issue != ''"> and issue = #{issue}</if>
+            <if test="opts != null  and opts != ''"> and opts = #{opts}</if>
+            <if test="skillkeyword != null  and skillkeyword != ''"> and skillkeyword = #{skillkeyword}</if>
+            <if test="titlekeyword != null  and titlekeyword != ''"> and titlekeyword = #{titlekeyword}</if>
+            <if test="issuemp3 != null  and issuemp3 != ''"> and issuemp3 = #{issuemp3}</if>
+            <if test="answermp3 != null  and answermp3 != ''"> and answermp3 = #{answermp3}</if>
+            <if test="explainjsmp3 != null  and explainjsmp3 != ''"> and explainjsmp3 = #{explainjsmp3}</if>
+            <if test="model != null and model != ''"> AND model like concat('%', #{model}, '%') </if>
+            <if test="columnAll != null  and columnAll != ''"> and column_all like concat('%', #{columnAll}, '%')</if>
+            <if test="questionType != null "> and question_type = #{questionType}</if>
+            <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="chapterId != null "> and chapter_id = #{chapterId}</if>
+            <if test="isNew != null "> and is_new = #{isNew}</if>
+            <if test="diffDegree != null "> and diff_degree = #{diffDegree}</if>
+            <if test="errorRate != null "> and error_rate = #{errorRate}</if>
+        </where>
+    </select>
+
+
+    <select id="selectQuestionInfoKtNewCount" parameterType="QuestionInfoKtNew" resultType="int">
+        select count(1) from question_info_kt_new
+        <where>
+            <if test="id != null "> and id = #{id}</if>
+            <if test="idYdt != null "> and id_ydt = #{idYdt}</if>
+            <if test="number != null "> and number = #{number}</if>
+            <if test="answer != null  and answer != ''"> and answer = #{answer}</if>
+            <if test="answerkeyword != null  and answerkeyword != ''"> and answerkeyword = #{answerkeyword}</if>
+            <if test="explainGif != null  and explainGif != ''"> and explain_gif = #{explainGif}</if>
+            <if test="explainJq != null  and explainJq != ''"> and explain_jq = #{explainJq}</if>
+            <if test="explainJs != null  and explainJs != ''"> and explain_js = #{explainJs}</if>
+            <if test="explainMp3 != null  and explainMp3 != ''"> and explain_mp3 = #{explainMp3}</if>
+            <if test="image != null  and image != ''"> and image = #{image}</if>
+            <if test="imageYdt != null  and imageYdt != ''"> and image_ydt = #{imageYdt}</if>
+            <if test="issue != null  and issue != ''"> and issue = #{issue}</if>
+            <if test="opts != null  and opts != ''"> and opts = #{opts}</if>
+            <if test="skillkeyword != null  and skillkeyword != ''"> and skillkeyword = #{skillkeyword}</if>
+            <if test="titlekeyword != null  and titlekeyword != ''"> and titlekeyword = #{titlekeyword}</if>
+            <if test="issuemp3 != null  and issuemp3 != ''"> and issuemp3 = #{issuemp3}</if>
+            <if test="answermp3 != null  and answermp3 != ''"> and answermp3 = #{answermp3}</if>
+            <if test="explainjsmp3 != null  and explainjsmp3 != ''"> and explainjsmp3 = #{explainjsmp3}</if>
+            <if test="model != null  and model != ''"> and model = #{model}</if>
+            <if test="columnAll != null  and columnAll != ''"> and column_all = #{columnAll}</if>
+            <if test="questionType != null "> and question_type = #{questionType}</if>
+            <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="chapterId != null "> and chapter_id = #{chapterId}</if>
+            <if test="isNew != null "> and is_new = #{isNew}</if>
+            <if test="diffDegree != null "> and diff_degree = #{diffDegree}</if>
+            <if test="errorRate != null "> and error_rate = #{errorRate}</if>
+        </where>
+    </select>
+
+    <select id="selectTestK14QuestionInfoList" resultType="com.miaxis.question.domain.QuestionInfoKtNew">
+        ${sql}
+    </select>
+
+
+    <select id="selectFreeQuestionInfoList" resultMap="QuestionInfoKtNewResult"
+            resultType="com.miaxis.question.domain.QuestionInfoKtNew">
+        select q1.* from question_info_kt_new q1 join question_free q2 on q1.id = q2.id
+        <where>
+            <if test="subject != null"> and q2.subject = #{subject}</if>
+        </where>
+        order by q1.number
+    </select>
+
+
+    <select id="selectQuestionInfoList" parameterType="com.miaxis.question.dto.QuestionInfoNewDTO" resultMap="QuestionInfoKtNewResult">
+        <include refid="selectQuestionInfoKtNewVo"/>
+        <where>
+            <if test="id != null "> and id = #{id}</if>
+            <if test="number != null "> and number = #{number}</if>
+            <if test="answer != null  and answer != ''"> and answer = #{answer}</if>
+            <if test="issue != null  and issue != ''"> and issue = #{issue}</if>
+            <if test="opts != null  and opts != ''"> and opts = #{opts}</if>
+            <if test="questionType != null "> and question_type = #{questionType}</if>
+            <if test="model != null and model != ''"> AND model like concat('%', #{model}, '%') </if>
+            <if test="columnAll != null  and columnAll != ''"> and column_all like concat('%', #{columnAll}, '%')</if>
+            <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="chapterId != null "> and chapter_id = #{chapterId}</if>
+            <if test="diffDegree != null "> and diff_degree = #{diffDegree}</if>
+            <if test="isNew != null "> and is_new = #{isNew}</if>
+        </where>
+        order by number
+    </select>
+
+
+    <select id="selectNormalQuestionInfoList" parameterType="com.miaxis.question.dto.QuestionInfoDTO" resultMap="QuestionInfoKtNewResult">
+        <include refid="selectQuestionInfoKtNewVo"/>
+        <where>
+            <if test="id != null "> and id = #{id}</if>
+            <if test="number != null "> and number = #{number}</if>
+            <if test="answer != null  and answer != ''"> and answer = #{answer}</if>
+            <if test="issue != null  and issue != ''"> and issue = #{issue}</if>
+            <if test="opts != null  and opts != ''"> and opts = #{opts}</if>
+            <if test="questionType != null "> and question_type = #{questionType}</if>
+            <if test="model != null and model != ''"> AND model like concat('%', #{model}, '%') </if>
+            <if test="columnAll != null  and columnAll != ''"> and column_all like concat('%', #{columnAll}, '%')</if>
+            <if test="subject != null  and subject != ''"> and subject = #{subject}</if>
+            <if test="chapterId != null "> and chapter_id = #{chapterId}</if>
+            <if test="errorRate != null "> and error_rate = #{errorRate}</if>
+            <if test="diffDegree != null "> and diff_degree = #{diffDegree}</if>
+            <if test="isNew != null "> and is_new = #{isNew}</if>
+        </where>
+        limit 0,50
+        order by number
+    </select>
+
+
+    <select id="selectQuestionInfoListByIds" parameterType="Long" resultMap="QuestionInfoKtNewResult">
+        <include refid="selectQuestionInfoKtNewVo"/>
+        <where>
+            and id in
+            <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </where>
+        order by number
+    </select>
+
+
+</mapper>