<?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.ExamPaperMapper">
|
<resultMap id="BaseResultMap" type="com.mindskip.xzs.domain.ExamPaper">
|
<id column="id" jdbcType="INTEGER" property="id" />
|
<result column="name" jdbcType="VARCHAR" property="name" />
|
<result column="subject_id" jdbcType="INTEGER" property="subjectId" />
|
<result column="paper_type" jdbcType="INTEGER" property="paperType" />
|
<result column="grade_level" jdbcType="INTEGER" property="gradeLevel" />
|
<result column="score" jdbcType="INTEGER" property="score" />
|
<result column="question_count" jdbcType="INTEGER" property="questionCount" />
|
<result column="suggest_time" jdbcType="INTEGER" property="suggestTime" />
|
<result column="limit_start_time" jdbcType="TIMESTAMP" property="limitStartTime" />
|
<result column="limit_end_time" jdbcType="TIMESTAMP" property="limitEndTime" />
|
<result column="frame_text_content_id" jdbcType="INTEGER" property="frameTextContentId" />
|
<result column="create_user" jdbcType="INTEGER" property="createUser" />
|
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
<result column="deleted" jdbcType="BIT" property="deleted" />
|
<result column="task_exam_id" jdbcType="INTEGER" property="taskExamId" />
|
<result column="type" jdbcType="VARCHAR" property="type" />
|
<result column="user_ids" jdbcType="VARCHAR" property="userIds" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
id, dept_id, name, subject_id, paper_type, grade_level, score, question_count, suggest_time,
|
limit_start_time, limit_end_time, frame_text_content_id, create_user, create_time,
|
deleted, task_exam_id, type, user_ids
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
|
select
|
<include refid="Base_Column_List" />
|
from t_exam_paper
|
where id = #{id,jdbcType=INTEGER}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
|
delete from t_exam_paper
|
where id = #{id,jdbcType=INTEGER}
|
</delete>
|
<insert id="insert" parameterType="com.mindskip.xzs.domain.ExamPaper" useGeneratedKeys="true" keyProperty="id">
|
insert into t_exam_paper (id, name, subject_id,
|
paper_type, grade_level, score,
|
question_count, suggest_time, limit_start_time,
|
limit_end_time, frame_text_content_id, create_user,
|
create_time, deleted, task_exam_id, type, user_ids
|
)
|
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{subjectId,jdbcType=INTEGER},
|
#{paperType,jdbcType=INTEGER}, #{gradeLevel,jdbcType=INTEGER}, #{score,jdbcType=INTEGER},
|
#{questionCount,jdbcType=INTEGER}, #{suggestTime,jdbcType=INTEGER}, #{limitStartTime,jdbcType=TIMESTAMP},
|
#{limitEndTime,jdbcType=TIMESTAMP}, #{frameTextContentId,jdbcType=INTEGER}, #{createUser,jdbcType=INTEGER},
|
#{createTime,jdbcType=TIMESTAMP}, #{deleted,jdbcType=BIT}, #{taskExamId,jdbcType=INTEGER},
|
#{type,jdbcType=VARCHAR}, #{userIds,jdbcType=VARCHAR}
|
)
|
</insert>
|
<insert id="insertSelective" parameterType="com.mindskip.xzs.domain.ExamPaper" useGeneratedKeys="true" keyProperty="id">
|
insert into t_exam_paper
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="deptId != null">
|
dept_id,
|
</if>
|
<if test="name != null">
|
name,
|
</if>
|
<if test="subjectId != null">
|
subject_id,
|
</if>
|
<if test="paperType != null">
|
paper_type,
|
</if>
|
<if test="gradeLevel != null">
|
grade_level,
|
</if>
|
<if test="score != null">
|
score,
|
</if>
|
<if test="questionCount != null">
|
question_count,
|
</if>
|
<if test="suggestTime != null">
|
suggest_time,
|
</if>
|
<if test="limitStartTime != null">
|
limit_start_time,
|
</if>
|
<if test="limitEndTime != null">
|
limit_end_time,
|
</if>
|
<if test="frameTextContentId != null">
|
frame_text_content_id,
|
</if>
|
<if test="createUser != null">
|
create_user,
|
</if>
|
<if test="createTime != null">
|
create_time,
|
</if>
|
<if test="deleted != null">
|
deleted,
|
</if>
|
<if test="taskExamId != null">
|
task_exam_id,
|
</if>
|
<if test="type != null">
|
type,
|
</if>
|
<if test="userIds != null">
|
user_ids,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
#{id,jdbcType=INTEGER},
|
</if>
|
<if test="deptId != null">
|
#{deptId,jdbcType=INTEGER},
|
</if>
|
<if test="name != null">
|
#{name,jdbcType=VARCHAR},
|
</if>
|
<if test="subjectId != null">
|
#{subjectId,jdbcType=INTEGER},
|
</if>
|
<if test="paperType != null">
|
#{paperType,jdbcType=INTEGER},
|
</if>
|
<if test="gradeLevel != null">
|
#{gradeLevel,jdbcType=INTEGER},
|
</if>
|
<if test="score != null">
|
#{score,jdbcType=INTEGER},
|
</if>
|
<if test="questionCount != null">
|
#{questionCount,jdbcType=INTEGER},
|
</if>
|
<if test="suggestTime != null">
|
#{suggestTime,jdbcType=INTEGER},
|
</if>
|
<if test="limitStartTime != null">
|
#{limitStartTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="limitEndTime != null">
|
#{limitEndTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="frameTextContentId != null">
|
#{frameTextContentId,jdbcType=INTEGER},
|
</if>
|
<if test="createUser != null">
|
#{createUser,jdbcType=INTEGER},
|
</if>
|
<if test="createTime != null">
|
#{createTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
#{deleted,jdbcType=BIT},
|
</if>
|
<if test="taskExamId != null">
|
#{taskExamId,jdbcType=INTEGER},
|
</if>
|
<if test="type != null">
|
#{type,jdbcType=VARCHAR},
|
</if>
|
<if test="userIds != null">
|
#{userIds,jdbcType=VARCHAR},
|
</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.mindskip.xzs.domain.ExamPaper">
|
update t_exam_paper
|
<set>
|
<if test="name != null">
|
name = #{name,jdbcType=VARCHAR},
|
</if>
|
<if test="deptId != null">
|
dept_id = #{deptId,jdbcType=INTEGER},
|
</if>
|
<if test="subjectId != null">
|
subject_id = #{subjectId,jdbcType=INTEGER},
|
</if>
|
<if test="paperType != null">
|
paper_type = #{paperType,jdbcType=INTEGER},
|
</if>
|
<if test="gradeLevel != null">
|
grade_level = #{gradeLevel,jdbcType=INTEGER},
|
</if>
|
<if test="score != null">
|
score = #{score,jdbcType=INTEGER},
|
</if>
|
<if test="questionCount != null">
|
question_count = #{questionCount,jdbcType=INTEGER},
|
</if>
|
<if test="suggestTime != null">
|
suggest_time = #{suggestTime,jdbcType=INTEGER},
|
</if>
|
<if test="limitStartTime != null">
|
limit_start_time = #{limitStartTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="limitEndTime != null">
|
limit_end_time = #{limitEndTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="frameTextContentId != null">
|
frame_text_content_id = #{frameTextContentId,jdbcType=INTEGER},
|
</if>
|
<if test="createUser != null">
|
create_user = #{createUser,jdbcType=INTEGER},
|
</if>
|
<if test="createTime != null">
|
create_time = #{createTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="deleted != null">
|
deleted = #{deleted,jdbcType=BIT},
|
</if>
|
<if test="taskExamId != null">
|
task_exam_id = #{taskExamId,jdbcType=INTEGER},
|
</if>
|
<if test="userIds != null">
|
user_ids = #{userIds,jdbcType=INTEGER},
|
</if>
|
</set>
|
where id = #{id,jdbcType=INTEGER}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.mindskip.xzs.domain.ExamPaper">
|
update t_exam_paper
|
set name = #{name,jdbcType=VARCHAR},
|
subject_id = #{subjectId,jdbcType=INTEGER},
|
dept_id = #{deptId,jdbcType=INTEGER},
|
paper_type = #{paperType,jdbcType=INTEGER},
|
grade_level = #{gradeLevel,jdbcType=INTEGER},
|
score = #{score,jdbcType=INTEGER},
|
question_count = #{questionCount,jdbcType=INTEGER},
|
suggest_time = #{suggestTime,jdbcType=INTEGER},
|
limit_start_time = #{limitStartTime,jdbcType=TIMESTAMP},
|
limit_end_time = #{limitEndTime,jdbcType=TIMESTAMP},
|
frame_text_content_id = #{frameTextContentId,jdbcType=INTEGER},
|
create_user = #{createUser,jdbcType=INTEGER},
|
create_time = #{createTime,jdbcType=TIMESTAMP},
|
deleted = #{deleted,jdbcType=BIT},
|
task_exam_id = #{taskExamId,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
</update>
|
|
|
|
|
|
|
|
|
<resultMap id="PaperInfoResultMap" type="com.mindskip.xzs.viewmodel.student.dashboard.PaperInfo">
|
<id column="id" jdbcType="INTEGER" property="id" />
|
<result column="name" jdbcType="VARCHAR" property="name" />
|
<result column="limit_start_time" jdbcType="TIMESTAMP" property="limitStartTime" />
|
<result column="limit_end_time" jdbcType="TIMESTAMP" property="limitEndTime" />
|
</resultMap>
|
|
|
<select id="page" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
|
SELECT
|
e.*
|
FROM t_exam_paper e
|
left join t_exam_paper_subject s on e.id = s.exam_paper_id
|
<where>
|
and e.deleted=0
|
<if test="id != null ">
|
and e.id= #{id}
|
</if>
|
<if test="deptIds != null and deptIds.size() > 0">
|
and e.dept_id in <foreach collection="deptIds" item="item" open="(" separator="," close=")"> #{item} </foreach>
|
</if>
|
<if test="subjectId != null ">
|
and s.subject_id= #{subjectId} and s.deleted = 0
|
</if>
|
<if test="paperType != null ">
|
and e.paper_type= #{paperType}
|
</if>
|
<if test="type != null ">
|
and e.type= #{type}
|
</if>
|
<if test="name != null and name != ''">
|
AND INSTR(name, #{name})
|
</if>
|
</where>
|
group by e.id
|
</select>
|
|
|
|
|
|
<select id="taskExamPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
|
SELECT
|
e.*
|
FROM t_exam_paper e
|
LEFT JOIN t_exam_paper_department s on s.exam_paper_id = e.id
|
<where>
|
and e.deleted=0
|
and e.task_exam_id is null
|
and e.paper_type=#{paperType}
|
</where>
|
group by e.id
|
</select>
|
|
<select id="studentPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM">
|
SELECT
|
e.*
|
FROM t_exam_paper e
|
LEFT JOIN t_exam_paper_subject s on e.id = s.exam_paper_id
|
<where>
|
and e.deleted=0 and s.deleted = 0
|
<if test="subjectId != null ">
|
and s.subject_id=#{subjectId}
|
</if>
|
<if test="levelId != null ">
|
and e.grade_level=#{levelId}
|
</if>
|
<if test="paperType == 1">
|
and e.paper_type in (1,7)
|
</if>
|
<if test="paperType == 4">
|
and e.paper_type = #{paperType}
|
</if>
|
<if test="type != null and type != ''">
|
and e.type = #{type}
|
</if>
|
|
</where>
|
group by e.id
|
</select>
|
|
|
<select id="indexPaper" resultMap="PaperInfoResultMap" parameterType="com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter">
|
select * from(
|
SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time
|
FROM t_exam_paper e
|
LEFT JOIN t_exam_paper_department d on d.exam_paper_id = e.id
|
<where>
|
and e.deleted=0 and d.deleted = 0 and e.type = 0
|
and e.paper_type in
|
<foreach item="examPaperType" collection="examPaperType" open="(" separator=","
|
close=")">
|
#{examPaperType}
|
</foreach>
|
<if test="gradeLevel != '' and gradeLevel != null">
|
and d.department_id=#{gradeLevel}
|
</if>
|
<if test="examPaperType == 3 ">
|
</if>
|
<foreach item="examPaperType" collection="examPaperType">
|
<if test="examPaperType == 4 ">
|
and #{dateTime} between e.limit_start_time and e.limit_end_time
|
</if>
|
</foreach>
|
<if test="examPaperType == 4 ">
|
and #{dateTime} between e.limit_start_time and e.limit_end_time
|
</if>
|
</where>
|
ORDER BY e.id desc ) t
|
union all
|
select * from (
|
SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time
|
FROM t_exam_paper e
|
LEFT JOIN t_exam_paper_user u on u.exam_paper_id = e.id
|
<where>
|
e.deleted=0 and u.deleted = 0 and e.type = 0
|
and u.user_id = #{userId}
|
and e.paper_type in
|
<foreach item="examPaperType" collection="examPaperType" open="(" separator=","
|
close=")">
|
#{examPaperType}
|
</foreach>
|
<foreach item="examPaperType" collection="examPaperType">
|
<if test="examPaperType == 4 ">
|
and #{dateTime} between e.limit_start_time and e.limit_end_time
|
</if>
|
</foreach>
|
</where>
|
ORDER BY e.id desc ) t
|
</select>
|
|
|
<select id="selectAllCount" resultType="java.lang.Integer">
|
SELECT count(*) from t_exam_paper where deleted=0
|
<if test="deptIds != null and deptIds.size() > 0">
|
and dept_id in
|
<foreach collection="deptIds" item="item" open="(" close=")" separator=",">
|
#{item}
|
</foreach>
|
</if>
|
</select>
|
|
<select id="selectCountByDate" resultType="com.mindskip.xzs.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_exam_paper
|
WHERE deleted=0 and create_time between #{startTime} and #{endTime}
|
) a
|
GROUP BY create_time
|
</select>
|
|
|
<update id="updateTaskPaper">
|
update t_exam_paper set task_exam_id = #{taskId} where id in
|
<foreach item="id" collection="paperIds" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
</update>
|
|
|
<update id="clearTaskPaper" parameterType="java.util.List">
|
update t_exam_paper set task_exam_id = null where id in
|
<foreach item="id" collection="paperIds" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
</update>
|
|
<delete id="removeByIds" parameterType="java.lang.Integer">
|
delete from t_exam_paper
|
where id in
|
<foreach item="id" collection="ids" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
</delete>
|
|
<select id="gets" resultMap="BaseResultMap">
|
select * from t_exam_paper
|
where id in
|
<foreach item="id" collection="ids" open="(" separator=","
|
close=")">
|
#{id}
|
</foreach>
|
and deleted = 0
|
</select>
|
|
<select id="getPaperExcelById" resultType="com.mindskip.xzs.domain.vo.PaperExcelVO" parameterType="java.lang.Integer">
|
select u.real_name as name,a.create_user as userId,a.user_score as userScore,a.paper_score as paperScore
|
from t_exam_paper_answer a
|
left join t_user u on u.id = a.create_user
|
where a.exam_paper_id = #{id}
|
</select>
|
|
<select id="getRandomPaperExcelById" resultType="com.mindskip.xzs.domain.vo.PaperExcelVO" parameterType="java.lang.Integer">
|
select u.real_name as name,a.create_user as userId,MAX(a.user_score) as userScore,a.paper_score as paperScore
|
from t_exam_paper_answer a
|
inner join t_user u on u.id = a.create_user
|
inner join t_exam_templates_user_count uc ON a.exam_paper_id = uc.exam_paper_id AND a.create_user = uc.user_id AND uc.exam_templates_id = #{id}
|
where a.invalid = 0
|
GROUP BY u.real_name, a.create_user, a.paper_score
|
</select>
|
|
|
<select id="list" resultType="com.mindskip.xzs.domain.ExamPaper">
|
select tep.id, name, paper_type, create_time from t_exam_paper tep left join t_user_department tud on tep.create_user = tud.user_id
|
where paper_type != 7 and tep.deleted = 0
|
<if test="deptIds != null and deptIds.size() > 0">
|
and (tep.create_user = 2
|
or tud.department_id in <foreach collection="deptIds" item="item" open="(" separator="," close=")"> #{item} </foreach>
|
)
|
</if>
|
group by tep.id
|
order by tep.id desc
|
</select>
|
|
<select id="template" resultType="com.mindskip.xzs.domain.ExamPaper">
|
select tet.id, name, paper_type, ctime as create_time from t_exam_templates tet left join t_user_department tud on tet.create_user = tud.user_id
|
<if test="deptIds != null and deptIds.size() > 0">
|
where (tet.create_user = 2
|
or tud.department_id in <foreach collection="deptIds" item="item" open="(" separator="," close=")"> #{item} </foreach>
|
)
|
</if>
|
group by tet.id
|
order by tet.id desc
|
</select>
|
|
<select id="selectStudent" resultType="com.mindskip.xzs.domain.vo.UserVO" parameterType="com.mindskip.xzs.domain.vo.UserVO">
|
SELECT
|
a.id, a.real_name
|
FROM
|
t_user a
|
left join t_user_tag b on a.id = b.user_id
|
left join t_user_department c on a.id = c.user_id
|
where
|
user_name != 'admin' and a.status != 2 and a.deleted = 0 and (a.`condition` = 0 or a.`condition` is null)
|
<if test="deptIds != null and deptIds.size > 0">
|
and c.department_id in <foreach collection="deptIds" open="(" separator="," close=")" item="deptId"> #{deptId} </foreach>
|
</if>
|
<if test="realName"> and INSTR(a.real_name, #{realName}) </if>
|
group by a.id, a.real_name
|
<if test="(tagIds != null and tagIds.size > 0) or (excludeTagIds != null and excludeTagIds.size > 0)">
|
having
|
</if>
|
<if test="tagIds != null and tagIds.size > 0">
|
<foreach collection="tagIds" open="(" separator="or" close=")" item="item">
|
find_in_set(#{item}, group_concat(b.tag_id))
|
</foreach>
|
</if>
|
<if test="excludeTagIds != null and excludeTagIds.size > 0">
|
<if test="tagIds != null and tagIds.size > 0">and</if>
|
<foreach collection="excludeTagIds" open="(" separator="and" close=")" item="item">
|
(NOT find_in_set(#{item}, group_concat(b.tag_id)) OR group_concat(b.tag_id) IS NULL)
|
</foreach>
|
</if>
|
order by a.id
|
</select>
|
|
<select id="getExamPaperByTemplateId" resultType="java.lang.Integer" parameterType="com.mindskip.xzs.domain.vo.ExamTemplatesVO">
|
select exam_paper_id from t_exam_templates_user_count where exam_templates_id = #{id}
|
</select>
|
|
<select id="getExamPaper" resultType="com.mindskip.xzs.domain.ExamPaper">
|
select id, name, paper_type, create_time from t_exam_paper where paper_type != 7 and deleted = 0 order by create_time desc
|
</select>
|
|
<select id="getTemplate" resultType="com.mindskip.xzs.domain.ExamPaper">
|
select id, name, paper_type, ctime as create_time from t_exam_templates order by ctime desc
|
</select>
|
|
</mapper>
|