<?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.ycl.jxkg.mapper.QuestionMapper">
|
|
<resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.Question">
|
<id column="id" jdbcType="INTEGER" property="id"/>
|
<result column="question_type" jdbcType="INTEGER" property="questionType"/>
|
<result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
|
<result column="difficult" jdbcType="INTEGER" property="difficult"/>
|
<result column="correct" jdbcType="VARCHAR" property="correct"/>
|
<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"/>
|
<result column="deleted" jdbcType="BIT" property="deleted"/>
|
</resultMap>
|
<sql id="Base_Column_List">
|
id
|
, question_type, subject_id, difficult, correct, content, create_user, status, create_time, deleted
|
</sql>
|
|
<select id="page" resultType="com.ycl.jxkg.domain.vo.admin.question.QuestionResponseVO"
|
parameterType="com.ycl.jxkg.domain.vo.admin.question.QuestionPageRequestVO">
|
SELECT
|
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 '简答题'
|
WHEN tq.question_type = 6 THEN '语音题'
|
WHEN tq.question_type = 7 THEN '计算题'
|
WHEN tq.question_type = 8 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 tq.deleted = 0
|
<if test="id != null">
|
and tq.id = #{id}
|
</if>
|
<if test="status != null">
|
and tq.status = #{status}
|
</if>
|
<if test="subjectId != null and subjectId.size() > 0">
|
and tq.subject_id in
|
<foreach collection="subjectId" item="item" separator="," open="(" close=")">#{item}</foreach>
|
</if>
|
<if test="questionType != null and questionType.size() > 0">
|
and tq.question_type in
|
<foreach collection="questionType" item="item" separator="," open="(" close=")">#{item}</foreach>
|
</if>
|
<if test="content != null and content != ''">
|
and instr(tq.content, #{content})
|
</if>
|
</where>
|
</select>
|
|
|
<select id="selectByIds" resultMap="BaseResultMap">
|
SELECT
|
<include refid="Base_Column_List"/>
|
FROM t_question where id in
|
<foreach item="id" collection="ids" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
</select>
|
|
|
<select id="selectAllCount" resultType="java.lang.Integer">
|
SELECT count(*)
|
from t_question
|
where deleted = 0
|
</select>
|
|
<select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue">
|
SELECT create_time as name, COUNT(create_time) as value
|
from
|
(
|
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') as create_time from t_question
|
WHERE deleted=0 and create_time between #{startTime} and #{endTime}
|
) a
|
GROUP BY create_time
|
</select>
|
|
<select id="getAnswerInfo" resultType="com.ycl.jxkg.domain.entity.Question">
|
SELECT id, question_type, correct FROM t_question WHERE id in
|
<foreach collection="questionIds" open="(" item="id" close=")" separator=",">#{id}</foreach>
|
</select>
|
|
<select id="selectByDifAndSub" resultType="java.lang.Integer">
|
SELECT COUNT(*) FROM t_question
|
<where>
|
deleted = 0 and status = 1
|
<if test="subjectId!=null">and subject_id = #{subjectId}</if>
|
<if test="difficult!=null">AND difficult = #{difficult}</if>
|
<if test="questionType!=null">AND question_type = #{questionType}</if>
|
</where>
|
|
</select>
|
|
<select id="getRandomQuestion" resultMap="BaseResultMap">
|
SELECT
|
*
|
FROM
|
t_question tq
|
<where>
|
tq.deleted = 0 and tq.status = 1
|
<if test="subjectId!=null">and tq.subject_id = #{subjectId}</if>
|
<if test="difficult!=null">AND tq.difficult = #{difficult}</if>
|
<if test="questionType!=null">AND tq.question_type = #{questionType}</if>
|
</where>
|
ORDER BY
|
RAND()
|
LIMIT #{num}
|
</select>
|
|
<resultMap id="exportDataMap" type="com.ycl.jxkg.domain.vo.admin.exam.QuestionExportData">
|
<result column="question_type" property="questionType"/>
|
<result column="title" property="title"/>
|
<result column="analyze" property="analyze"/>
|
<result column="content" property="content"/>
|
<result column="correct" property="answer"/>
|
<collection property="subjectList" column="id" ofType="string" select="selectSubjects"/>
|
</resultMap>
|
|
<select id="export" resultType="com.ycl.jxkg.domain.vo.admin.exam.ExamPaperImportVO">
|
SELECT
|
q.*,
|
s.NAME AS SUBJECT
|
FROM t_question q
|
LEFT JOIN t_subject s ON subject_id = s.id
|
ORDER BY q.id
|
</select>
|
|
</mapper>
|