Sfoglia il codice sorgente

删除角色后删除成员

wangliang 3 anni fa
parent
commit
6d0b045d18

+ 9 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -106,6 +106,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     StmmsUtils stmmsUtils;
 
+    @Resource
+    SysRoleGroupMemberService sysRoleGroupMemberService;
+
     @Override
     public IPage<UserDto> list(String loginName, String roleId, Boolean enable, String realName, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
@@ -515,6 +518,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 List<Long> userRolesList = Arrays.asList(userSaveParams.getRoleIds());
                 Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
                 int count = (int) dbUserRolesList.stream().filter(userRolesList::contains).count();
+                Set<Long> removeRoleIds = dbUserRolesList.stream().filter(s -> !userRolesList.contains(s)).collect(Collectors.toSet());
                 SysUser dbUser = sysUserService.getById(sysUser.getId());
                 sysUserService.update(new UpdateWrapper<SysUser>().lambda()
                         .eq(SysUser::getId, sysUser.getId())
@@ -534,6 +538,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     sysUserRoleQueryWrapper.lambda().eq(SysUserRole::getUserId, sysUser.getId());
                     sysUserRoleService.remove(sysUserRoleQueryWrapper);
 
+                    QueryWrapper<SysRoleGroupMember> sysRoleGroupMemberQueryWrapper = new QueryWrapper<>();
+                    sysRoleGroupMemberQueryWrapper.lambda().eq(SysRoleGroupMember::getUserId, sysUser.getId())
+                            .in(SysRoleGroupMember::getRoleId, removeRoleIds);
+                    sysRoleGroupMemberService.remove(sysRoleGroupMemberQueryWrapper);
+
                     commonCacheService.removeUserRolePrivilegeCache(sysUser.getId());
                     commonService.addUserRolePrivilege(sysUser, userSaveParams.getRoleIds());
                     commonService.removeUserInfo(sysUser.getId(), true);
@@ -579,7 +588,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return resultUserId;
     }
 
-
     /**
      * 临时保存用户不鉴权
      *