ydmyzx 3 月之前
父節點
當前提交
99b85f0c7f

+ 5 - 2
yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/user/AdminUserMapper.xml

@@ -428,6 +428,7 @@
         SELECT
         a.*,r.id,r.project_id,r.supervisor_id,
         CASE
+        WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4  -- 如果有 4
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2  -- 如果有 2
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1  -- 如果没有 2,但有 1
         ELSE 0  -- 其他情况
@@ -499,13 +500,14 @@
         <!-- 合并 HAVING 子句 -->
         HAVING
         CASE
+        WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4  -- 如果有 2
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2  -- 如果有 2
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1  -- 如果没有 2,但有 1
         ELSE 0
         END
         <choose>
             <when test="isPassed == 0">IN (0, 1)</when>
-            <when test="isPassed == 1">= 2</when>
+            <when test="isPassed == 1">in (2,4)</when>
         </choose>
 
         ORDER BY
@@ -566,13 +568,14 @@
         <!-- 合并 HAVING 条件 -->
         HAVING
         CASE
+        WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4  -- 如果有 2
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2  -- 如果有 2
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1  -- 如果没有 2,但有 1
         ELSE 0
         END
         <choose>
             <when test="isPassed == 0">IN (0, 1)</when>
-            <when test="isPassed == 1">= 2</when>
+            <when test="isPassed == 1">in (2,4)</when>
         </choose>
         ) AS subquery;
     </select>