<?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.mindskip.xzs.repository.QuestionSubjectMapper">
|
<resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.QuestionSubject">
|
<id column="id" jdbcType="INTEGER" property="id"/>
|
<result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
|
<result column="question_id" jdbcType="INTEGER" property="questionId"/>
|
<result column="deleted" jdbcType="INTEGER" property="deleted"/>
|
<result column="sub_name" jdbcType="VARCHAR" property="subName"/>
|
</resultMap>
|
|
<sql id="Base_Column_List">
|
id, subject_id,question_id,deleted
|
</sql>
|
|
|
<delete id="removes" parameterType="java.lang.Integer">
|
delete from t_question_subject
|
where id in
|
<foreach item="id" collection="ids" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
</delete>
|
|
<delete id="removeQuestionId" parameterType="java.lang.Integer">
|
delete from t_question_subject
|
where question_id = #{questionId}
|
</delete>
|
|
<select id="getQuestion" resultMap="BaseResultMap">
|
select qs.*,s.name as subName
|
from t_question_subject qs
|
left join t_subject s on qs.subject_id = s.id
|
where question_id = #{id} and qs.deleted = 0 and s.deleted = 0
|
</select>
|
|
<insert id="saves" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
|
insert into t_question_subject(id,subject_id,question_id,deleted)
|
values
|
<foreach collection="list" item="item" index="index" separator=",">
|
(#{item.id},#{item.subjectId},#{item.questionId},#{item.deleted})
|
</foreach>
|
</insert>
|
|
<delete id="removeSubjectId" parameterType="java.lang.Integer">
|
delete from t_question_subject
|
where subject_id = #{subjectId}
|
</delete>
|
|
<select id="getSubject" resultMap="BaseResultMap">
|
select qs.*,s.name as subName
|
from t_question_subject qs
|
left join t_subject s on qs.subject_id = s.id
|
where subject_id = #{id} and qs.deleted = 0 and s.deleted = 0
|
</select>
|
|
<select id="countQuestionNum" resultType="integer">
|
SELECT
|
count(distinct tqs.question_id)
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tq.id = tqs.question_id <if test="questionType != -99">AND tq.question_type = #{questionType}</if>
|
WHERE
|
tqs.subject_id IN <foreach collection="subjects" open="(" separator="," close=")" item="subjectId">#{subjectId}</foreach>
|
|
</select>
|
|
<select id="getRandomQuestionId" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
|
SELECT
|
distinct
|
tq.id,
|
tq.question_type as questionType,
|
tq.difficult,
|
ttc.content as contentJson,
|
tq.correct
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tqs.question_id = tq.id AND tq.deleted = 0
|
<if test="questionType != null and questionType != -99">
|
AND tq.question_type = #{questionType}
|
</if>
|
AND tqs.subject_id IN <foreach collection="subjectIds" open="(" separator="," close=")" item="subjectId">#{subjectId}</foreach>
|
INNER JOIN t_text_content ttc ON tq.info_text_content_id = ttc.id
|
ORDER BY
|
RAND() LIMIT #{questionNum}
|
</select>
|
|
<select id="questionsBySubjectIds" resultType="integer">
|
SELECT
|
question_id
|
FROM
|
t_question_subject
|
<where>
|
subject_id IN <foreach collection="subjectIds" open="(" separator="," close=")" item="subjectId">#{subjectId}</foreach>
|
</where>
|
ORDER BY
|
id DESC
|
</select>
|
|
<select id="questionsBySubjectId" resultType="integer">
|
SELECT
|
tqs.question_id, ttc.content
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId}
|
INNER JOIN t_text_content ttc ON ttc.id = tq.info_text_content_id
|
ORDER BY
|
tqs.id DESC
|
</select>
|
|
<select id="questionsBySubjectIdAndQuestionType" resultType="integer">
|
SELECT
|
tqs.question_id, ttc.content
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId} AND tq.question_type = #{questionType}
|
INNER JOIN t_text_content ttc ON ttc.id = tq.info_text_content_id
|
ORDER BY
|
tqs.id DESC
|
</select>
|
|
<select id="bySubjectId" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
|
SELECT
|
tq.id,
|
tq.question_type,
|
tq.correct,
|
ttc.content as contentJson
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId}
|
INNER JOIN t_text_content ttc ON ttc.id = tq.info_text_content_id
|
ORDER BY
|
tq.id DESC
|
</select>
|
|
<select id="bySubjectIdAndQuestionType" resultType="com.mindskip.xzs.domain.vo.QuestionVO">
|
SELECT
|
tq.id,
|
tq.question_type,
|
tq.correct,
|
ttc.content as contentJson
|
FROM
|
t_question_subject tqs
|
INNER JOIN t_question tq ON tqs.question_id = tq.id AND tqs.subject_id = #{subjectId} AND tq.question_type = #{questionType}
|
INNER JOIN t_text_content ttc ON ttc.id = tq.info_text_content_id
|
ORDER BY
|
tq.id DESC
|
</select>
|
|
<select id="getSubjectBySubjectIds" resultType="com.mindskip.xzs.domain.QuestionSubject">
|
select qs.*,s.name as subName
|
from t_question_subject qs
|
left join t_subject s on qs.subject_id = s.id
|
where qs.deleted = 0 and s.deleted = 0
|
<if test="subjectIds != null and subjectIds.length > 0">
|
and qs.subject_id in
|
<foreach collection="subjectIds" item="subjectId" open="(" separator="," close=")">
|
#{subjectId}
|
</foreach>
|
</if>
|
</select>
|
|
</mapper>
|