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 82b65b68..acae92fd 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 @@ -11,6 +11,7 @@ import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.req.CreateAgencyAdminRoleParam; import cn.axzo.tyr.client.model.roleuser.req.CreateSuperAdminRoleParam; +import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleIncludeAdminParam; import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; import cn.axzo.tyr.client.model.roleuser.req.SuperAdminParam; import cn.axzo.tyr.server.repository.dao.SaasRoleDao; @@ -229,74 +230,6 @@ public class RoleUserService implements SaasRoleUserService { }).collect(Collectors.toList()); } - @Override - @Transactional(rollbackFor = Exception.class) - public boolean deleteUserRoleIncludeAdmin(List params) { - if (CollectionUtils.isEmpty(params)) { - return false; - } - params.forEach(param -> { - List roles = saasRoleDao.lambdaQuery() - .eq(SaasRole::getWorkspaceId, param.getWorkspaceId()).eq(SaasRole::getOwnerOuId, param.getOuId()).eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); - if (CollectionUtils.isEmpty(roles)) { - return; - } - List roleIds = roles.stream().map(SaasRole::getId).sorted().collect(Collectors.toList()); - List relations = roleUserRelationDao.lambdaQuery().in(SaasRoleUserRelation::getRoleId, roleIds) - .eq(SaasRoleUserRelation::getIdentityId, param.getIdentityId()).eq(SaasRoleUserRelation::getIdentityType, param.getIdentityType().getCode()) - .eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); - if (CollectionUtils.isNotEmpty(relations)) { - relations.forEach(r -> r.setIsDelete(r.getId())); - roleUserRelationDao.updateBatchById(relations); - } - }); - return true; - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void createAgencyAdminRole(CreateAgencyAdminRoleParam param) { - /* - * 根据传入的角色id和适用单位类型,筛选出符合添加权限的角色 - */ - List matchedRelations = filterAgencyAdminRoleGroupRelation(param); - List matchedRoleIds = matchedRelations.stream().map(SaasRoleGroupRelation::getRoleId).sorted().collect(Collectors.toList()); - - // 如果用户已经存在对应的权限,忽略,如果不存在,添加 - List existUserRoleIds = roleUserRelationDao.lambdaQuery().in(SaasRoleUserRelation::getRoleId, matchedRoleIds).eq(SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId()) - .eq(SaasRoleUserRelation::getOuId, param.getOuId()).eq(SaasRoleUserRelation::getIdentityId, param.getIdentityId()).eq(SaasRoleUserRelation::getIdentityType, param.getIdentityType()) - .eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list().stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList()); - - Collection insertRoleIds = org.apache.commons.collections4.CollectionUtils.subtract(matchedRoleIds, existUserRoleIds); - if (CollectionUtils.isEmpty(insertRoleIds)) { - return; - } - List newUserRoleRelations = insertRoleIds.stream().map(rid -> { - SaasRoleUserRelation roleUserRelation = new SaasRoleUserRelation(); - roleUserRelation.setIdentityId(param.getIdentityId()); - roleUserRelation.setIdentityType(param.getIdentityType().getCode()); - roleUserRelation.setRoleId(rid); - roleUserRelation.setNaturalPersonId(param.getNaturalPersonId()); - roleUserRelation.setCreateBy(0L); - roleUserRelation.setUpdateBy(0L); - roleUserRelation.setOuId(param.getOuId()); - roleUserRelation.setWorkspaceId(param.getWorkspaceId()); - roleUserRelation.setResourceType(0); - roleUserRelation.setResourceId(0L); - return roleUserRelation; - }).collect(Collectors.toList()); - roleUserRelationDao.saveBatch(newUserRoleRelations); - } - - @Override - public List listByRoleIds(List roleIds) { - if (CollectionUtil.isEmpty(roleIds)) { - return new ArrayList<>(); - } - return roleUserRelationDao.list(new LambdaQueryWrapper() - .in(SaasRoleUserRelation::getRoleId, roleIds)); - } - private List filterAgencyAdminRoleGroupRelation(CreateAgencyAdminRoleParam param) { // 根据传入的角色id筛选出内置角色 List saasRoles = saasRoleDao.lambdaQuery().in(SaasRole::getId, param.getUpdateRoleIds()) @@ -333,4 +266,14 @@ public class RoleUserService implements SaasRoleUserService { } return roleGroupRelations.stream().filter(r -> matchedRoleGroupIds.contains(r.getSaasRoleGroupId())).collect(Collectors.toList()); } + + @Override + public List listByRoleIds(List roleIds) { + if (CollectionUtil.isEmpty(roleIds)) { + return new ArrayList<>(); + } + return roleUserRelationDao.list(new LambdaQueryWrapper() + .in(SaasRoleUserRelation::getRoleId, roleIds)); + } + }