From f1e20b08fcc05d78e3d25921494f92f5b9ca49cf Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 16 五月 2024 17:19:40 +0800 Subject: [PATCH] 部门管理员权限 --- src/main/resources/mapper/ExamPaperMapper.xml | 181 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 145 insertions(+), 36 deletions(-) diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml index 4854fe2..3ce8086 100644 --- a/src/main/resources/mapper/ExamPaperMapper.xml +++ b/src/main/resources/mapper/ExamPaperMapper.xml @@ -17,11 +17,13 @@ <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, 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 + deleted, task_exam_id, type, user_ids </sql> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select @@ -38,13 +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 + 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} + #{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"> @@ -52,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, @@ -95,10 +101,19 @@ <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}, @@ -142,6 +157,12 @@ <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"> @@ -149,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}, @@ -189,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> @@ -196,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}, @@ -228,23 +256,29 @@ <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 <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} and d.deleted = 0 </if> <if test="subjectId != null "> - and subject_id= #{subjectId} + and s.subject_id= #{subjectId} and s.deleted = 0 </if> <if test="paperType != null "> - and paper_type= #{paperType} + and e.paper_type= #{paperType} + </if> + <if test="type != null "> + and e.type= #{type} </if> </where> + group by e.id </select> @@ -253,47 +287,92 @@ <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 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 - <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> + <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 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.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 + 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> @@ -328,4 +407,34 @@ </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="list" resultType="com.mindskip.xzs.domain.ExamPaper"> + select id, name from t_exam_paper order by create_time desc + </select> + </mapper> -- Gitblit v1.8.0