<?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.tcm.training.admin.live.mapper.LiveSessionQuizRecordMapper">
|
|
<!-- 答题记录分页列表(动态筛选) -->
|
<select id="selectQuizPage"
|
resultType="com.tcm.training.admin.live.vo.LiveQuizRow">
|
SELECT
|
r.id, r.app_user_id AS userId,
|
s.nickname AS userNickname,
|
s.phone AS userPhone,
|
q.sort AS questionSort,
|
q.stem AS stem,
|
r.chosen_option AS chosenOption,
|
q.correct_option AS correctOption,
|
r.is_correct AS isCorrect,
|
r.points_earned AS pointsEarned,
|
r.answered_at AS answeredAt
|
FROM tcm_live_session_quiz_record r
|
LEFT JOIN tcm_app_user s ON s.id = r.app_user_id AND s.deleted = 0
|
LEFT JOIN tcm_live_session_question q ON q.id = r.question_id AND q.deleted = 0
|
WHERE r.session_id = #{sessionId}
|
<if test="keyword != null and keyword.trim() != ''">
|
AND (s.nickname LIKE CONCAT('%', #{keyword}, '%')
|
OR s.phone LIKE CONCAT('%', #{keyword}, '%'))
|
</if>
|
<if test="isCorrect != null">
|
AND r.is_correct = #{isCorrect}
|
</if>
|
ORDER BY r.id DESC
|
</select>
|
|
<!-- 查询同一用户在同一直播课同一答题自然日是否已获得过积分 -->
|
<select id="countAwardedCourseQuizPoints" resultType="java.lang.Integer">
|
SELECT COUNT(1)
|
FROM tcm_live_session_quiz_record r
|
INNER JOIN tcm_live_session s ON s.id = r.session_id AND s.deleted = 0
|
WHERE s.live_course_id = #{courseId}
|
AND r.app_user_id = #{userId}
|
AND r.points_earned > 0
|
AND r.answered_at <![CDATA[>=]]> #{dayStart}
|
AND r.answered_at <![CDATA[<]]> #{dayEnd}
|
</select>
|
|
</mapper>
|