Browse Source

fix: 修改bug

liaoyitao 3 months ago
parent
commit
6e09a21650

+ 12 - 4
src/main/java/com/lqkj/link/module/authority/repository/RoleInfoRepository.java

@@ -118,9 +118,17 @@ public interface RoleInfoRepository extends JpaRepository<RoleInfo, Integer> {
118 118
 
119 119
     @Modifying
120 120
     @Query(nativeQuery = true,
121
-        value = "with t1 as(select distinct (role_id) as role_id from user_role where role_id in :roleIds)," +
122
-                "t2 as(delete from role_info where role_id in :roleIds and role_id not in (select role_id from t1))" +
123
-                "select string_agg(role_name, ',') from role_info where role_id in (select role_id from t1)"
121
+        value = "delete from role_info where role_id in :roleIds"
124 122
     )
125
-    String deleteNoUserRole(List<Integer> roleIds);
123
+    void deleteNoUserRole(List<Integer> roleIds);
124
+
125
+    @Query(nativeQuery = true,
126
+        value = "select distinct (role_id) from user_role where role_id in :roleIds"
127
+    )
128
+    List<Integer> findHasUserRole(@Param("roleIds") List<Integer> roleIds);
129
+
130
+    @Query(nativeQuery = true,
131
+        value = "select string_agg(role_name, ',') from role_info where role_id in :hasUserRoleIds"
132
+    )
133
+    String findHasUserRoleNames(@Param("hasUserRoleIds") List<Integer> hasUserRoleIds);
126 134
 }

+ 5 - 1
src/main/java/com/lqkj/link/module/authority/service/RoleInfoService.java

@@ -97,7 +97,11 @@ public class RoleInfoService {
97 97
         return resultList;
98 98
     }
99 99
 
100
+    @Transactional
100 101
     public String delete(List<Integer> roleIds) {
101
-        return roleInfoRepository.deleteNoUserRole(roleIds);
102
+        List<Integer> hasUserRoleIds = roleInfoRepository.findHasUserRole(roleIds);
103
+        roleIds.removeAll(hasUserRoleIds);
104
+        roleInfoRepository.deleteNoUserRole(roleIds);
105
+        return roleInfoRepository.findHasUserRoleNames(hasUserRoleIds);
102 106
     }
103 107
 }