<?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.ExamPaperScoreMapper">
|
<resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.ExamPaperScore">
|
<id column="id" property="id"/>
|
<result column="paper_id" property="examPaperId"/>
|
<result column="paper_name" property="paperName"/>
|
<result column="paper_type" property="paperType"/>
|
<result column="score" property="score"/>
|
<result column="total_score" property="totalScore"/>
|
<result column="question_correct" property="questionCorrect"/>
|
<result column="question_count" property="questionCount"/>
|
<result column="do_time" property="doTime"/>
|
<result column="status" property="status"/>
|
<result column="user_id" property="userId"/>
|
<result column="judge_user" property="judgeUser"/>
|
<result column="submit_time" property="submitTime"/>
|
<result column="judge_time" property="judgeTime"/>
|
<result column="exam_id" property="examId"/>
|
<result column="exam_name" property="examName"/>
|
<result column="paper_content" property="paperContent"/>
|
<result column="navbar" property="navbar"/>
|
</resultMap>
|
<sql id="Base_Column_List">
|
id,
|
exam_id,
|
exam_name,
|
paper_id,
|
paper_type,
|
score,
|
total_score,
|
question_correct,
|
question_count,
|
do_time,
|
status,
|
user_id,
|
judge_user,
|
submit_time,
|
paper_content,
|
navbar,
|
judge_time,
|
deleted
|
</sql>
|
|
<select id="studentPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
|
SELECT
|
a.*,
|
ep.name AS paperName
|
FROM t_exam_paper_score a
|
INNER JOIN t_exam_paper ep ON ep.id = paper_id AND ep.deleted = 0
|
<where>
|
AND user_id = #{createUser}
|
<if test="examName != null and examName != ''">
|
AND INSTR(exam_name, #{examName})
|
</if>
|
</where>
|
</select>
|
|
<select id="getByExamIdUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore">
|
SELECT
|
<include refid="Base_Column_List"/>
|
from t_exam_paper_score
|
<where>
|
and user_id = #{userId}
|
and exam_id = #{examId}
|
</where>
|
</select>
|
<select id="selectAllCount" resultType="java.lang.Integer">
|
SELECT count(*)
|
from t_exam_paper_score
|
</select>
|
|
<select id="selectAllQuestionCount" resultType="java.lang.Integer">
|
SELECT sum(question_count)
|
from t_exam_paper_score
|
</select>
|
|
<select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue">
|
SELECT submit_time as name, sum(question_count) as value
|
from
|
(
|
SELECT question_count ,DATE_FORMAT(submit_time, '%Y-%m-%d') as submit_time from t_exam_paper_score
|
WHERE submit_time between #{startTime} and #{endTime}
|
) a
|
GROUP BY submit_time
|
</select>
|
|
|
<select id="getByPidUid" resultMap="BaseResultMap">
|
select
|
<include refid="Base_Column_List"/>
|
from t_exam_paper_score
|
where paper_id = #{pid} and user_id=#{uid}
|
limit 1
|
</select>
|
|
|
<select id="adminPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
|
SELECT
|
a.id, a.exam_name, a.score, a.total_score, a.question_correct, a.question_count, a.do_time, a.status, IF(a.status = 0, a.submit_time, '缺考') AS submitTime, b.real_name AS userName, c.name AS paperName
|
FROM t_exam_paper_score a
|
INNER JOIN t_user b ON a.user_id = b.id AND b.deleted = 0
|
INNER JOIN t_exam_paper c ON a.paper_id = c.id AND c.deleted = 0
|
<where>
|
<if test="examId != null and examId != ''">
|
AND a.exam_id = #{examId}
|
</if>
|
<if test="userId != null and userId != ''">
|
AND a.user_id = #{userId}
|
</if>
|
<if test="userName != null and userName != ''">
|
AND INSTR(b.real_name, #{userName})
|
</if>
|
<if test="examName != null and examName != ''">
|
AND INSTR(a.exam_name, #{examName})
|
</if>
|
</where>
|
</select>
|
|
<select id="pageExamPaper" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
|
SELECT
|
t.id,
|
a.name AS paperName,
|
a.score AS totalScore,
|
a.num as questionCount,
|
a.subject_id,
|
a.paper_type,
|
a.suggest_time,
|
b.name AS subjectName,
|
c.real_name AS userName,
|
IFNULL(COUNT(DISTINCT d.id), 0) AS personAnswerNum,
|
IFNULL(COUNT(DISTINCT e.id), 0) AS personTotalNum,
|
t.exam_name
|
FROM t_exam_paper a
|
INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.deleted = 0
|
LEFT JOIN t_subject b ON a.subject_id = b.id AND b.deleted = 0
|
LEFT JOIN t_user c ON t.teacher_id = c.id AND c.deleted = 0
|
LEFT JOIN t_exam_paper_score d ON t.id = d.exam_id AND d.deleted = 0
|
LEFT JOIN t_classes_user e ON t.classes_id = e.classes_id AND e.deleted = 0
|
<where>
|
a.deleted = 0
|
<if test="subjectId != null and subjectId.size() > 0">
|
AND a.subject_id IN
|
<foreach collection="subjectId" item="item" open="(" separator="," close=")">#{item}</foreach>
|
</if>
|
<if test="name != null and name != ''">
|
AND INSTR(a.name, #{name})
|
</if>
|
<if test="examName != null and examName != ''">
|
AND INSTR(t.exam_name, #{examName})
|
</if>
|
<if test="examId != null and examId != ''">
|
AND t.id = #{examId}
|
</if>
|
</where>
|
GROUP BY t.id
|
ORDER BY t.id DESC
|
</select>
|
|
<select id="pageUser" resultType="com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO">
|
SELECT a.id, a.real_name AS userName, COUNT(b.id) AS examCount
|
FROM t_user a
|
LEFT JOIN t_exam_paper_score b ON a.id = b.user_id AND b.deleted = 0
|
<where>
|
a.deleted = 0 AND a.role = 1
|
<if test="name != null and name != ''">
|
AND INSTR(a.real_name, #{name})
|
</if>
|
</where>
|
GROUP BY a.id
|
</select>
|
|
<select id="selectByUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore">
|
SELECT
|
<include refid="Base_Column_List"/>
|
from t_exam_paper_score
|
where user_id = #{userId}
|
</select>
|
<select id="checkWrong" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore">
|
SELECT
|
<include refid="Base_Column_List"/>
|
from t_exam_paper_score AS eps,
|
JSON_TABLE(paper_content, '$[*]' COLUMNS(
|
questionType INT PATH '$.questionType',
|
questionId INT PATH '$.questionList[*].questionId'
|
)) AS pc
|
<where>
|
eps.exam_id = #{examId}
|
AND eps.user_id = #{userId}
|
AND pc.questionType = #{questionType}
|
AND pc.questionId = #{questionId}
|
</where>
|
</select>
|
</mapper>
|