qirong
2023-07-05 21ff1b4f2ef67975eef303bff66ef60388243cf1
src/main/resources/mapper/ExamPaperMapper.xml
@@ -228,23 +228,26 @@
  <select id="page" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
    SELECT
    <include refid="Base_Column_List"/>
    FROM t_exam_paper
    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 deleted=0
        and e.deleted=0 and d.deleted = 0
      <if test="id != null ">
        and id= #{id}
        and e.id= #{id}
      </if>
      <if test="level != null ">
        and grade_level= #{level}
        and d.department_id= #{level}
      </if>
      <if test="subjectId != null ">
        and subject_id= #{subjectId}
        and s.subject_id= #{subjectId}
      </if>
      <if test="paperType != null ">
        and paper_type= #{paperType}
        and e.paper_type= #{paperType}
      </if>
    </where>
    group by e.id
  </select>
@@ -253,47 +256,74 @@
  <select id="taskExamPage" resultMap="BaseResultMap" parameterType="com.mindskip.xzs.viewmodel.admin.exam.ExamPaperPageRequestVM">
    SELECT
    <include refid="Base_Column_List"/>
    FROM t_exam_paper
    e.*
    FROM t_exam_paper e
    LEFT JOIN t_exam_paper_department s on s.exam_paper_id = e.id
    <where>
      and deleted=0
      and task_exam_id is null
      and grade_level= #{level}
      and paper_type=#{paperType}
      and e.deleted=0 and s.deleted = 0
      and e.task_exam_id is null
      and s.department_id =
        #{level}
      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
    <include refid="Base_Column_List"/>
    FROM t_exam_paper
    e.*
    FROM t_exam_paper e
    LEFT JOIN t_exam_paper_subject s on e.id = s.exam_paper_id
    <where>
       and deleted=0
       and e.deleted=0 and s.deleted = 0
      <if test="subjectId != null ">
        and subject_id=#{subjectId}
        and s.subject_id=#{subjectId}
      </if>
      <if test="levelId != null ">
        and grade_level=#{levelId}
        and e.grade_level=#{levelId}
      </if>
       and paper_type=#{paperType}
      <if test="paperType == 1">
        and e.paper_type in (1,7)
      </if>
      <if test="paperType == 4">
        and e.paper_type = #{paperType}
      </if>
    </where>
    group by e.id
  </select>
  <select id="indexPaper" resultMap="PaperInfoResultMap" parameterType="com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter">
    SELECT id,name,limit_start_time,limit_end_time
    FROM t_exam_paper
    <where>
      and deleted=0
      and paper_type= #{examPaperType}
      and grade_level=#{gradeLevel}
      <if test="examPaperType == 3 ">
      </if>
      <if test="examPaperType == 4 ">
        and  #{dateTime} between limit_start_time  and limit_end_time
      </if>
    </where>
    ORDER BY id  desc limit 5
      select * from(
      SELECT e.id,e.name,e.limit_start_time,e.limit_end_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.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>
          <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
      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 u.user_id = #{userId} ORDER BY e.id desc ) t
  </select>
@@ -328,4 +358,23 @@
    </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>
</mapper>