From 2a46259ac136e4318a6a0ddde632f9fd481c2441 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期一, 22 七月 2024 09:50:02 +0800 Subject: [PATCH] fix:成绩统计修改为统计选择参考的部门,即使无人参考 --- src/main/resources/mapper/ExamPaperMapper.xml | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml index 8266878..92cf7f6 100644 --- a/src/main/resources/mapper/ExamPaperMapper.xml +++ b/src/main/resources/mapper/ExamPaperMapper.xml @@ -276,6 +276,9 @@ <if test="type != null "> and e.type= #{type} </if> + <if test="name != null and name != ''"> + AND INSTR(name, #{name}) + </if> </where> group by e.id </select> @@ -327,7 +330,7 @@ <select id="indexPaper" resultMap="PaperInfoResultMap" parameterType="com.mindskip.xzs.viewmodel.student.dashboard.PaperFilter"> select * from( - SELECT e.id,e.name,e.limit_start_time,e.limit_end_time + SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time FROM t_exam_paper e LEFT JOIN t_exam_paper_department d on d.exam_paper_id = e.id <where> @@ -354,7 +357,7 @@ ORDER BY e.id desc ) t union all select * from ( - SELECT e.id,e.name,e.limit_start_time,e.limit_end_time + SELECT e.id,e.name,e.limit_start_time,e.limit_end_time,e.create_time FROM t_exam_paper e LEFT JOIN t_exam_paper_user u on u.exam_paper_id = e.id <where> @@ -438,17 +441,37 @@ where a.exam_paper_id = #{id} </select> + <select id="getRandomPaperExcelById" 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 + inner join t_user u on u.id = a.create_user + inner join t_exam_templates_user_count uc ON a.exam_paper_id = uc.exam_paper_id AND uc.exam_templates_id = #{id} + where a.invalid = 0 + </select> + + <select id="list" resultType="com.mindskip.xzs.domain.ExamPaper"> - select id, name from t_exam_paper + select tep.id, name, paper_type, create_time from t_exam_paper tep left join t_user_department tud on tep.create_user = tud.user_id + where paper_type != 7 and tep.deleted = 0 <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> + and (tep.create_user = 2 + or tud.department_id in <foreach collection="deptIds" item="item" open="(" separator="," close=")"> #{item} </foreach> + ) </if> - order by create_time desc + group by tep.id + order by tep.id desc </select> + + <select id="template" resultType="com.mindskip.xzs.domain.ExamPaper"> + select tet.id, name, paper_type, ctime as create_time from t_exam_templates tet left join t_user_department tud on tet.create_user = tud.user_id + <if test="deptIds != null and deptIds.size() > 0"> + where (tet.create_user = 2 + or tud.department_id in <foreach collection="deptIds" item="item" open="(" separator="," close=")"> #{item} </foreach> + ) + </if> + group by tet.id + order by tet.id desc + </select> <select id="selectStudent" resultType="com.mindskip.xzs.domain.vo.UserVO" parameterType="com.mindskip.xzs.domain.vo.UserVO"> SELECT @@ -459,9 +482,6 @@ 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="tagId != null and tagId != ''"> - and b.tag_id = #{tagId} - </if> <if test="deptIds != null and deptIds.size > 0"> and c.department_id in <foreach collection="deptIds" open="(" separator="," close=")" item="deptId"> @@ -469,6 +489,20 @@ </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)) OR group_concat(b.tag_id) IS NULL) + </foreach> + </if> order by a.id </select> @@ -477,7 +511,7 @@ </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 id, name, paper_type, create_time from t_exam_paper where paper_type != 7 and deleted = 0 order by create_time desc </select> <select id="getTemplate" resultType="com.mindskip.xzs.domain.ExamPaper"> -- Gitblit v1.8.0