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 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

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