From 1ded202362a307e467852dc681517e18498f0db4 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 24 五月 2024 11:17:30 +0800 Subject: [PATCH] feat:试卷选择学员时新增标签多选、排除标签 --- src/main/resources/mapper/ExamPaperMapper.xml | 17 ++++++++++++++--- src/main/java/com/mindskip/xzs/domain/vo/UserVO.java | 20 ++++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java index ede11cd..059f27b 100644 --- a/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java +++ b/src/main/java/com/mindskip/xzs/domain/vo/UserVO.java @@ -92,10 +92,30 @@ private List<Integer> deptIds; + private List<Integer> tagIds; + + private List<Integer> excludeTagIds; + private Integer pageIndex; private Integer pageSize; + public List<Integer> getExcludeTagIds() { + return excludeTagIds; + } + + public void setExcludeTagIds(List<Integer> excludeTagIds) { + this.excludeTagIds = excludeTagIds; + } + + public List<Integer> getTagIds() { + return tagIds; + } + + public void setTagIds(List<Integer> tagIds) { + this.tagIds = tagIds; + } + public List<Integer> getDeptIds() { return deptIds; } diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml index 8266878..7338f3a 100644 --- a/src/main/resources/mapper/ExamPaperMapper.xml +++ b/src/main/resources/mapper/ExamPaperMapper.xml @@ -459,9 +459,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 +466,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)) + </foreach> + </if> order by a.id </select> -- Gitblit v1.8.0