feat(REQ-2488): 查询角色接口调整

This commit is contained in:
luofu 2024-07-30 16:28:18 +08:00
parent 934609e657
commit 3998210c6f
3 changed files with 24 additions and 2 deletions

View File

@ -73,6 +73,10 @@ public class ListRoleReq {
* 是否需要角色对应的用户信息 * 是否需要角色对应的用户信息
*/ */
private Boolean needRoleUser; private Boolean needRoleUser;
/**
* 是否需要预设角色因为预设角色的workspaceId和ouId为-1
*/
private Boolean needPresetRole;
/** /**
* workspaceId和ouId配对查询 * workspaceId和ouId配对查询

View File

@ -167,6 +167,12 @@ public interface RoleService extends IService<SaasRole> {
@CriteriaField(ignore = true) @CriteriaField(ignore = true)
private Boolean needPermissionRelation; private Boolean needPermissionRelation;
/**
* 是否需要预设角色因为预设角色的workspaceId和ouId为-1
*/
@CriteriaField(ignore = true)
private Boolean needPresetRole;
/** /**
* 查询菜单树节点类型 * 查询菜单树节点类型
*/ */

View File

@ -110,6 +110,11 @@ import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.
public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole> public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
implements RoleService { implements RoleService {
private static final ListRoleUserRelationParam.WorkspaceOuPair PRESET_WORKSPACE_OU_PAIR = ListRoleUserRelationParam.WorkspaceOuPair.builder()
.ouId(-1L)
.workspaceId(-1L)
.build();
@Autowired @Autowired
SaasRoleUserRelationDao roleUserRelationDao; SaasRoleUserRelationDao roleUserRelationDao;
@Autowired @Autowired
@ -1137,9 +1142,16 @@ public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
public cn.axzo.foundation.page.PageResp<SaasRoleRes> page(PageSaasRoleParam param) { public cn.axzo.foundation.page.PageResp<SaasRoleRes> page(PageSaasRoleParam param) {
QueryWrapper<SaasRole> wrapper = QueryWrapperHelper.fromBean(param, SaasRole.class); QueryWrapper<SaasRole> wrapper = QueryWrapperHelper.fromBean(param, SaasRole.class);
wrapper.eq("is_delete", 0); wrapper.eq("is_delete", 0);
if (CollectionUtils.isNotEmpty(param.getWorkspaceOuPairs())) { List<ListRoleUserRelationParam.WorkspaceOuPair> workspaceOuPairs = Lists.newArrayList();
if (Boolean.TRUE.equals(param.getNeedPresetRole())) {
workspaceOuPairs.add(PRESET_WORKSPACE_OU_PAIR);
}
CollectionUtils.addAll(workspaceOuPairs, Optional.ofNullable(param.getWorkspaceOuPairs())
.map(List::listIterator)
.orElseGet(Collections::emptyListIterator));
if (CollectionUtils.isNotEmpty(workspaceOuPairs)) {
wrapper.and(j -> { wrapper.and(j -> {
for (ListRoleUserRelationParam.WorkspaceOuPair workspaceOuPair : param.getWorkspaceOuPairs()) { for (ListRoleUserRelationParam.WorkspaceOuPair workspaceOuPair : workspaceOuPairs) {
j.or(k -> { j.or(k -> {
k.eq(Objects.nonNull(workspaceOuPair.getOuId()), "ou_id", workspaceOuPair.getOuId()); k.eq(Objects.nonNull(workspaceOuPair.getOuId()), "ou_id", workspaceOuPair.getOuId());
k.eq(Objects.nonNull(workspaceOuPair.getWorkspaceId()), "workspace_id", workspaceOuPair.getWorkspaceId()); k.eq(Objects.nonNull(workspaceOuPair.getWorkspaceId()), "workspace_id", workspaceOuPair.getWorkspaceId());