From 2542153b2c1e84cfc1f86db30c88e1a71b7d936a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BB=B4=E4=BC=9F?= Date: Thu, 21 Sep 2023 16:05:48 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug:=E6=B7=BB=E5=8A=A0=E6=96=B0=E6=88=90?= =?UTF-8?q?=E5=91=98=E8=A7=92=E8=89=B2=E8=B5=8B=E4=BA=88=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/service/impl/RoleUserService.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleUserService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleUserService.java index c5ab1f40..2e7130c5 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleUserService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleUserService.java @@ -13,6 +13,7 @@ import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation; import cn.axzo.tyr.server.service.SaasRoleUserService; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -49,21 +50,23 @@ public class RoleUserService implements SaasRoleUserService { } List existsRoleUser = roleUserRelationDao.query(req.getIdentityId(), req.getIdentityType().getCode(), req.getWorkspaceId(), req.getOuId()); - List existsRole = saasRoleDao.listByIds(existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList())); - List notAdminRole = existsRole.stream().filter(e -> !RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).collect(Collectors.toList()); - - roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder() - .workspaceId(req.getWorkspaceId()) - .ouId(req.getOuId()) - .identityId(req.getIdentityId()) - .identityType(req.getIdentityType()) - .build() + if (CollectionUtils.isNotEmpty(existsRoleUser)) { + List existsRole = saasRoleDao.listByIds(existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList())); + List notAdminRole = existsRole.stream().filter(e -> !RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).collect(Collectors.toList()); + // 删除现有非管理员的角色 + roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder() + .workspaceId(req.getWorkspaceId()) + .ouId(req.getOuId()) + .identityId(req.getIdentityId()) + .identityType(req.getIdentityType()) + .build() , notAdminRole - .stream() - .mapToLong(BaseEntity::getId) - .boxed() - .collect(Collectors.toList())); + .stream() + .mapToLong(BaseEntity::getId) + .boxed() + .collect(Collectors.toList())); + } roleUserRelationDao.saveBatch(req.getUpdateRoleIds().stream().map(e -> { SaasRoleUserRelation saasRoleUserRelation = new SaasRoleUserRelation();