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 |   82 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 71 insertions(+), 11 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 2ab6a9c..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},
@@ -246,6 +274,9 @@
       <if test="paperType != null ">
         and e.paper_type= #{paperType}
       </if>
+      <if test="type != null ">
+        and e.type= #{type}
+      </if>
     </where>
     group by e.id
   </select>
@@ -260,10 +291,8 @@
     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 s.deleted = 0
+      and e.deleted=0
       and e.task_exam_id is null
-      and s.department_id =
-        #{level}
       and e.paper_type=#{paperType}
     </where>
     group by e.id
@@ -288,6 +317,9 @@
       <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
@@ -300,7 +332,7 @@
       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.deleted=0 and d.deleted = 0 and e.type = 0
           and e.paper_type in
           <foreach item="examPaperType" collection="examPaperType" open="(" separator=","
                    close=")">
@@ -311,6 +343,11 @@
           </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>
@@ -321,9 +358,21 @@
       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
+      <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>
 
 
@@ -377,4 +426,15 @@
     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