From 2bf92184d4584cac58b76b8d1ea0b3b0ff34b4fb Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期五, 24 五月 2024 13:46:30 +0800
Subject: [PATCH] fix:统计修改

---
 src/main/resources/mapper/ExamPaperMapper.xml |  128 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 116 insertions(+), 12 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 44d642e..7338f3a 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/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
@@ -271,10 +290,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
@@ -325,6 +342,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>
@@ -335,14 +357,32 @@
       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
+      <where>
       e.deleted=0 and u.deleted = 0 and e.type = 0
-      and u.user_id = #{userId} ORDER BY e.id desc ) t
+      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>
 
 
   <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">
@@ -391,4 +431,68 @@
     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
+    <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>

--
Gitblit v1.8.0