qirong
2023-06-26 77be36cc9077b09186e69440f3204f9e623c335a
src/main/resources/mapper/ExamPaperMapper.xml
@@ -271,36 +271,59 @@
  <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 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= #{examPaperType}
      and d.department_id=#{gradeLevel}
      <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 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>
@@ -344,4 +367,14 @@
    </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>