龚焕茏
2024-05-24 2bf92184d4584cac58b76b8d1ea0b3b0ff34b4fb
src/main/resources/mapper/ExamPaperMapper.xml
@@ -18,11 +18,12 @@
    <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, name, subject_id, paper_type, grade_level, score, question_count, suggest_time,
    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
    deleted, task_exam_id, type, user_ids
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select
@@ -39,14 +40,14 @@
      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
      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}
      #{type,jdbcType=VARCHAR}, #{userIds,jdbcType=VARCHAR}
      )
  </insert>
  <insert id="insertSelective" parameterType="com.mindskip.xzs.domain.ExamPaper" useGeneratedKeys="true" keyProperty="id">
@@ -54,6 +55,9 @@
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="deptId != null">
        dept_id,
      </if>
      <if test="name != null">
        name,
@@ -100,10 +104,16 @@
      <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},
@@ -150,6 +160,9 @@
      <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">
@@ -157,6 +170,9 @@
    <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},
@@ -197,6 +213,9 @@
      <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>
@@ -204,6 +223,7 @@
    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},
@@ -238,15 +258,14 @@
    SELECT
    e.*
    FROM t_exam_paper e
    left join t_exam_paper_department d on e.id = d.exam_paper_id
    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="level != null ">
        and d.department_id= #{level} and d.deleted = 0
      <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
@@ -358,6 +377,12 @@
  <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">
@@ -413,4 +438,61 @@
    where a.exam_paper_id = #{id}
  </select>
    <select id="list" resultType="com.mindskip.xzs.domain.ExamPaper">
    select id, name from t_exam_paper
    <if test="deptIds != null and deptIds.size() > 0">
    where paper_type != 7
    and dept_id in
    <foreach collection="deptIds" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
    </if>
    order by create_time 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>
      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))
          </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 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>