From 7b0be4dfd2d0513a6530360da6cf972be66b460a Mon Sep 17 00:00:00 2001 From: yangsong Date: Fri, 20 Oct 2023 09:48:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=9C=BA=E6=9E=84=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E8=B4=A6=E6=88=B7=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/client/feign/TyrSaasRoleUserApi.java | 2 +- .../req/QuerySaasPermissionGroupReq.java | 26 ++++++++++++++++--- .../client/model/req/QuerySaasRoleReq.java | 25 ++++++++++++++++-- .../roleuser/RoleUserController.java | 19 +++++++------- .../service/impl/PermissionGroupImpl.java | 11 +------- .../server/service/impl/RoleServiceImpl.java | 25 +++++++----------- 6 files changed, 67 insertions(+), 41 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java index d2e5c17a..e8417676 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java @@ -59,7 +59,7 @@ public interface TyrSaasRoleUserApi { * @return */ @PostMapping("/api/saas-role-user/create-agency-admin-role") - ApiResult createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param); + ApiResult createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param); @PostMapping("/api/saas-role-user/create-super-admin-role") ApiResult createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param); diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasPermissionGroupReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasPermissionGroupReq.java index 99ae315a..740fb271 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasPermissionGroupReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasPermissionGroupReq.java @@ -1,16 +1,18 @@ package cn.axzo.tyr.client.model.req; +import java.util.ArrayList; +import java.util.List; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + import cn.axzo.basics.common.page.PageRequest; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import java.util.List; - @Data @AllArgsConstructor @NoArgsConstructor @@ -70,4 +72,20 @@ public class QuerySaasPermissionGroupReq extends PageRequest { @NotNull @Builder.Default private Boolean fetchPage = Boolean.TRUE; + + public QuerySaasPermissionGroupReq buildDefault() { + if (this.workspaceId == null) { + this.workspaceId = new ArrayList<>(); + } + if (this.ouId == null) { + this.ouId = new ArrayList<>(); + } + if (!workspaceId.contains(-1L)) { + workspaceId.add(-1L); + } + if (!ouId.contains(-1L)) { + ouId.add(-1L); + } + return this; + } } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java index 9bf799a1..60ebb126 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleReq.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.ArrayList; import java.util.List; @Data @@ -25,23 +26,27 @@ public class QuerySaasRoleReq { /** * 工作台类型编码 + * 和 sassRoleGroupIds 互斥,如果存在sassRoleGroupIds,该字段不生效 */ private List workspaceTypeCode; /** * 单位类型编码 + * 和 sassRoleGroupIds 互斥,如果存在sassRoleGroupIds,该字段不生效 */ private List ouTypeCode; /** * 工作台id(过滤权限集作用范围) - * 特殊参数:该参数和ids 互斥,有ids,该参数不生效 + * 1:在过滤角色时:该参数和ids 互斥,有ids,该参数不生效 + * 2:在过滤分组时:该参数和sassRoleGroupIds 互斥,有sassRoleGroupIds,该参数不生效 */ private List workspaceId; /** * 单位id(过滤权限集作用范围) - * 特殊参数:该参数和ids 互斥,有ids,该参数不生效 + * 1:在过滤角色时:该参数和ids 互斥,有ids,该参数不生效 + * 2:在过滤分组时:该参数和sassRoleGroupIds 互斥,有sassRoleGroupIds,该参数不生效 */ private List ouId; @@ -56,4 +61,20 @@ public class QuerySaasRoleReq { * 是否包含权限集(如果不需要则不执行后续查询链路) */ private Boolean includePermissionGroup; + + public QuerySaasRoleReq buildDefault() { + if (this.workspaceId == null) { + this.workspaceId = new ArrayList<>(); + } + if (this.ouId == null) { + this.ouId = new ArrayList<>(); + } + if (!workspaceId.contains(-1L)) { + workspaceId.add(-1L); + } + if (!ouId.contains(-1L)) { + ouId.add(-1L); + } + return this; + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java index cdb1be21..06eca222 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/roleuser/RoleUserController.java @@ -1,8 +1,14 @@ package cn.axzo.tyr.server.controller.roleuser; +import java.util.List; + +import javax.validation.Valid; + +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi; -import cn.axzo.tyr.client.model.roleuser.dto.CreateAdminRoleDTO; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserRelationDTO; import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO; import cn.axzo.tyr.client.model.roleuser.req.*; @@ -10,11 +16,6 @@ import cn.axzo.tyr.server.service.SaasRoleUserRelationService; import cn.axzo.tyr.server.service.SaasRoleUserService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import javax.validation.Valid; -import java.util.List; /** * @author tanjie@axzo.cn @@ -55,9 +56,9 @@ public class RoleUserController implements TyrSaasRoleUserApi { } @Override - public ApiResult createAgencyAdminRole(CreateAgencyAdminRoleParam param) { - // todo cn.axzo.basics.auth.api.SaasRoleApi#grantAgencyAdminRole - return ApiResult.ok(new CreateAdminRoleDTO()); + public ApiResult createAgencyAdminRole(CreateAgencyAdminRoleParam param) { + saasRoleUserService.createAgencyAdminRole(param); + return ApiResult.ok(); } @Override diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java index ec35ff0c..10271f1e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionGroupImpl.java @@ -56,16 +56,7 @@ public class PermissionGroupImpl implements PermissionGroupService { @Override public PageResp page(QuerySaasPermissionGroupReq req) { - if (CollectionUtils.isEmpty(req.getWorkspaceId())) { - req.setWorkspaceId(Arrays.asList(-1L)); - } else if(!req.getWorkspaceId().contains(-1L)){ - req.getWorkspaceId().add(-1L); - } - if (CollectionUtils.isEmpty(req.getOuId())) { - req.setOuId(Arrays.asList(-1L)); - } else if (!req.getOuId().contains(-1L)) { - req.getOuId().add(-1L); - } + req.buildDefault(); // 如果角色id不为空则先查询角色权限集关联表 IPage iPage = req.toPage(); List relationList = null; 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 e8d87f49..b02b7ba1 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 @@ -155,25 +155,20 @@ public class RoleServiceImpl implements RoleService { @Override public List query(QuerySaasRoleReq req) { // 如果没有传则默认查询通用维度默认值是 -1,-1+传入的参数含义是查询通用和自定义 - if (CollectionUtils.isEmpty(req.getWorkspaceId())) { - req.setWorkspaceId(Arrays.asList(-1L)); - } else if(!req.getWorkspaceId().contains(-1L)){ - req.getWorkspaceId().add(-1L); - } - if (CollectionUtils.isEmpty(req.getOuId())) { - req.setOuId(Arrays.asList(-1L)); - } else if (!req.getOuId().contains(-1L)) { - req.getOuId().add(-1L); - } + req.buildDefault(); // 根据工作台类型和单位类型查询角色分组 List roleGroup = new ArrayList<>(); // 如果传入了角色id就以传入的角色id为准 if (CollectionUtils.isEmpty(req.getIds()) && (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode()))) { - roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder() - .ids(req.getSassRoleGroupIds()) - .workspaceTypeCode(req.getWorkspaceTypeCode()) - .ouTypeCode(req.getOuTypeCode()) - .build()); + QuerySaasRoleGroupReq groupReq = new QuerySaasRoleGroupReq(); + groupReq.setIds(req.getSassRoleGroupIds()); + if (CollectionUtils.isEmpty(req.getSassRoleGroupIds())) { + groupReq.setWorkspaceTypeCode(req.getWorkspaceTypeCode()); + groupReq.setOuTypeCode(req.getOuTypeCode()); + groupReq.setWorkspaceIds(req.getWorkspaceId()); + groupReq.setOuIds(req.getOuId()); + } + roleGroup = saasRoleGroupDao.query(groupReq); if (CollectionUtils.isEmpty(roleGroup)) { return new ArrayList<>(); }