Sfoglia il codice sorgente

1.11,校验补充

Crazy 3 mesi fa
parent
commit
5db887c87f

+ 10 - 10
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java

@@ -426,14 +426,14 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
 
 
      //获取用户选择状态
-    @Select("SELECT COALESCE(MAX(CASE " +
-            " WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 " +
-            " WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 " +
-            " WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 " +
-            "ELSE 0 " +
-            "END), 0) " +
-            "FROM system_users u " +
-            "LEFT JOIN student_select_supervisor_record r ON r.student_id = u.id " +
-            "WHERE u.id = #{id} AND r.project_id =#{projectId} AND r.deleted = 0 AND u.deleted = 0")
-    Integer getUserSelectStatus(@Param("id") Long id, @Param("projectId") Long projectId);
+     @Select("SELECT COALESCE(MAX(CASE " +
+             "WHEN r.select_type = 4 THEN 4 " +
+             "WHEN r.select_type = 2 THEN 2 " +
+             "WHEN r.select_type = 1 THEN 1 " +
+             "ELSE 0 " +
+             "END), 0) " +
+             "FROM system_users u " +
+             "LEFT JOIN student_select_supervisor_record r ON r.student_id = u.id " +
+             "WHERE u.id = #{id} AND r.project_id =#{projectId} AND r.deleted = 0 AND u.deleted = 0")
+     Integer getUserSelectStatus(@Param("id") Long id, @Param("projectId") Long projectId);
 }

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

@@ -428,17 +428,17 @@
         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 = 4 THEN 1 ELSE 0 END),0) = 1 THEN 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  -- 其他情况
         END AS selectStatus,
 
         -- 计算 selectStatus 为 1 或 2 的记录 id
         CASE
-        WHEN COALESCE(selectStatus, null) IN (1, 2 ,4) THEN r.id
+        WHEN COALESCE(MAX(r.select_type), null) IN (1,2,4) THEN r.id
         ELSE NULL
-        END AS recordId
+        END AS recordId,
 
         COALESCE(system_dept.name, "测绘学院") AS deptName,
         supervisor_user.nickname AS supervisor,
@@ -460,6 +460,7 @@
         system_dept system_dept ON system_dept.id = a.dept_id
         WHERE
         1=1
+        AND a.deleted = 0
         <if test="reqVO.username != null and reqVO.username != ''">
             AND a.username LIKE CONCAT('%', #{reqVO.username}, '%')
         </if>
@@ -493,16 +494,15 @@
         <if test="reqVO.status != null and reqVO.status != '' ">
             AND a.status = #{reqVO.status}
         </if>
-        AND a.deleted = 0
         GROUP BY
         a.id
 
         <!-- 合并 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
+        WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 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
         ELSE 0
         END
         <choose>
@@ -568,9 +568,9 @@
         <!-- 合并 HAVING 条件 -->
         HAVING
         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
+        WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 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
         ELSE 0
         END
         <choose>