diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/WorkerManagerRoleUserReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/WorkerManagerRoleUserReq.java index 5883188d..65e59ace 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/WorkerManagerRoleUserReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/WorkerManagerRoleUserReq.java @@ -9,7 +9,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; @@ -32,7 +31,6 @@ public class WorkerManagerRoleUserReq { * 这个字段在设置后续产品重构了班组管理员、代班长相关功能的时候,要替换成ROLE ID。 * 现在保留权限集ID是因为只是做统一权限角色,查询链路先暂时不变(REQ-2046) */ - @NotEmpty private List permissionGroupId; private IdentityType identityType; diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasPgroupRoleRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasPgroupRoleRelationDao.java index 1b43c907..13f716af 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasPgroupRoleRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasPgroupRoleRelationDao.java @@ -40,5 +40,9 @@ public class SaasPgroupRoleRelationDao extends ServiceImpl listByGroupIds(List permissionGroupId) { + return lambdaQuery() + .in(SaasPgroupRoleRelation::getGroupId, permissionGroupId).list(); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleDao.java index 777e9e1f..8d81ac9e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleDao.java @@ -107,6 +107,9 @@ public class SaasRoleDao extends ServiceImpl { } public List findInitRole(Set roleIds) { + if (CollectionUtils.isEmpty(roleIds)) { + return new ArrayList<>(); + } return lambdaQuery().in(BaseEntity::getId, roleIds) .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL) .eq(SaasRole::getRoleType, RoleTypeEnum.INIT.getValue()) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleUserRelationDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleUserRelationDao.java index e2389a23..8860cf8c 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleUserRelationDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleUserRelationDao.java @@ -128,7 +128,7 @@ public class SaasRoleUserRelationDao extends ServiceImpl saasPgroupRoleRelations = saasPgroupRoleRelationDao.listByIds(req.getPermissionGroupId()); - + List saasPgroupRoleRelations = new ArrayList<>(); // NPE + if (CollectionUtil.isNotEmpty(req.getPermissionGroupId())) { + saasPgroupRoleRelations = saasPgroupRoleRelationDao.listByGroupIds(req.getPermissionGroupId()); + } List roleInfos = saasRoleDao.findInitRole(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getRoleId).collect(Collectors.toSet())); - if (CollectionUtil.isEmpty(roleInfos)) { - log.warn("not found role info"); - return; - } + RoleUserInfo roleUserBaseInfo = RoleUserInfo.builder() .roleUserResourceInfos(req.getManagerInfos().stream().map(e -> RoleUserInfo.RoleUserResourceInfo .builder() @@ -358,7 +355,7 @@ public class RoleUserService implements SaasRoleUserService { if (CollectionUtil.isEmpty(roleUserBaseInfo.getRoleUserResourceInfos())) { throw new ServiceException("grant team manager error, not found person info"); } - if (CollectionUtil.isEmpty(saasPgroupRoleRelations)) { + if (CollectionUtil.isEmpty(saasPgroupRoleRelations)|| CollectionUtil.isEmpty(roleInfos)) { log.warn("warn: grant team manager permission error, not found permissions info"); // 未指定授权哪些角色 return;