diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java index 2f114806..b6b68fc7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleServiceImpl.java @@ -223,7 +223,7 @@ public class RoleServiceImpl implements RoleService { List groupTrees = saveOrUpdateRole.getGroupTree(); // 验证角色分组信息 validRoleGroup(groupTrees); - validRoleName(saveOrUpdateRole); + //validRoleName(saveOrUpdateRole); SaasRole saasRole = validAndBuildRole(saveOrUpdateRole, now); //验证权限集信息 SaasPermissionGroup saasPermissionGroup = validPermissionGroupCommon(saveOrUpdateRole); @@ -369,9 +369,17 @@ public class RoleServiceImpl implements RoleService { saasRole.setUpdateBy(saveOrUpdateRole.getOperatorId()); saasRole.setUpdateAt(now); // 不可能为空 - List groupIds = saveOrUpdateRole.getGroupTree().stream().map(SaveOrUpdateRoleVO.GroupInfoVO::getId).sorted().collect(Collectors.toList()); - //同分组内角色名称不能重复 //TODO - List relations = roleGroupRelationDao.lambdaQuery().in(SaasRoleGroupRelation::getSaasRoleGroupId, groupIds) + //List groupIds = saveOrUpdateRole.getGroupTree().stream().map(SaveOrUpdateRoleVO.GroupInfoVO::getId).sorted().collect(Collectors.toList()); + // 同一个企业单位 同一个工作台 角色名称不能为空 + String currentWorkspaceCode = saveOrUpdateRole.getGroupTree().get(0).getWorkspaceTypeCode(); + List roleGroups = saasRoleGroupDao.lambdaQuery() + .in(SaasRoleGroup::getWorkspaceTypeCode, currentWorkspaceCode) + .eq(SaasRoleGroup::getWorkspaceId, saveOrUpdateRole.getWorkspaceId()) + .eq(SaasRoleGroup::getOuId, saveOrUpdateRole.getOwnerOuId()) + .eq(SaasRoleGroup::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); + List roleGroupIds = roleGroups.stream().map(SaasRoleGroup::getId).collect(Collectors.toList()); + //同分组内角色名称不能重复 --->> 同一个企业单位 同一个工作台 角色名称不能为空 by zuoqinbo + List relations = roleGroupRelationDao.lambdaQuery().in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroupIds) .eq(SaasRoleGroupRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); if (CollectionUtils.isNotEmpty(relations)) { @@ -384,7 +392,7 @@ public class RoleServiceImpl implements RoleService { .filter(e -> Objects.nonNull(e) && !Objects.equals(e.getId(), saveOrUpdateRole.getId()) && StringUtils.equalsIgnoreCase(e.getName(), saasRole.getName())) .findFirst(); if (repeatNameRole.isPresent()) { - throw new ServiceException("同分组内角色名称不能重复"); + throw new ServiceException("同一个企业单位,同一个工作台,角色名称不能重复!!"); } }); }