龚焕茏
2024-05-30 1c89a9d39893c18aac63aa5763b4787b65de3624
src/main/resources/mapper/QuestionSubjectMapper.xml
@@ -48,4 +48,104 @@
        where subject_id = #{subjectId}
    </delete>
</mapper>
    <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>
</mapper>