fix bug:添加新成员角色赋予报错

This commit is contained in:
陈维伟 2023-09-21 16:05:48 +08:00
parent 3310fdfd6f
commit 2542153b2c

View File

@ -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.repository.entity.SaasRoleUserRelation;
import cn.axzo.tyr.server.service.SaasRoleUserService; import cn.axzo.tyr.server.service.SaasRoleUserService;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -49,21 +50,23 @@ public class RoleUserService implements SaasRoleUserService {
} }
List<SaasRoleUserRelation> existsRoleUser = roleUserRelationDao.query(req.getIdentityId(), req.getIdentityType().getCode(), req.getWorkspaceId(), req.getOuId()); List<SaasRoleUserRelation> existsRoleUser = roleUserRelationDao.query(req.getIdentityId(), req.getIdentityType().getCode(), req.getWorkspaceId(), req.getOuId());
List<SaasRole> existsRole = saasRoleDao.listByIds(existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList())); if (CollectionUtils.isNotEmpty(existsRoleUser)) {
List<SaasRole> notAdminRole = existsRole.stream().filter(e -> !RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).collect(Collectors.toList()); List<SaasRole> existsRole = saasRoleDao.listByIds(existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList()));
List<SaasRole> notAdminRole = existsRole.stream().filter(e -> !RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).collect(Collectors.toList());
roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder() // 删除现有非管理员的角色
.workspaceId(req.getWorkspaceId()) roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder()
.ouId(req.getOuId()) .workspaceId(req.getWorkspaceId())
.identityId(req.getIdentityId()) .ouId(req.getOuId())
.identityType(req.getIdentityType()) .identityId(req.getIdentityId())
.build() .identityType(req.getIdentityType())
.build()
, notAdminRole , notAdminRole
.stream() .stream()
.mapToLong(BaseEntity::getId) .mapToLong(BaseEntity::getId)
.boxed() .boxed()
.collect(Collectors.toList())); .collect(Collectors.toList()));
}
roleUserRelationDao.saveBatch(req.getUpdateRoleIds().stream().map(e -> { roleUserRelationDao.saveBatch(req.getUpdateRoleIds().stream().map(e -> {
SaasRoleUserRelation saasRoleUserRelation = new SaasRoleUserRelation(); SaasRoleUserRelation saasRoleUserRelation = new SaasRoleUserRelation();