From 692a0a0e66523ddf59f4912cc648e260f492a8a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BC=98=E6=98=8A?= Date: Wed, 18 Oct 2023 14:47:00 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=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 | 4 +- ...ram.java => CreateSuperAminRoleParam.java} | 29 +++++++++---- .../roleuser/RoleUserController.java | 7 ++- .../server/repository/dao/SaasRoleDao.java | 28 ++++++++++++ .../server/service/SaasRoleUserService.java | 12 ++++-- .../server/service/impl/RoleUserService.java | 43 +++++++++++++++++++ 6 files changed, 104 insertions(+), 19 deletions(-) rename tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/{CreateWorkspaceAdminRoleParam.java => CreateSuperAminRoleParam.java} (55%) 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 a8139c18..c4dd4a8b 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 @@ -61,8 +61,8 @@ public interface TyrSaasRoleUserApi { @PostMapping("api/saas-role-user/create-agency-admin-role") ApiResult createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param); - @PostMapping("api/saas-role-user/create-workspace-admin-role") - ApiResult createWorkspaceAdminRole(@RequestBody @Valid @NotEmpty List params); + @PostMapping("api/saas-role-user/create-super-admin-role") + ApiResult createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAminRoleParam param); /** * 移除超管角色 diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateWorkspaceAdminRoleParam.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java similarity index 55% rename from tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateWorkspaceAdminRoleParam.java rename to tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java index 5fe62e57..57c353f5 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateWorkspaceAdminRoleParam.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java @@ -1,14 +1,13 @@ package cn.axzo.tyr.client.model.roleuser.req; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.enums.IdentityType; import lombok.Data; +import javax.validation.constraints.NotNull; + @Data -public class CreateWorkspaceAdminRoleParam { +public class CreateSuperAminRoleParam { /** * 工作台id,与context校验 @@ -23,15 +22,19 @@ public class CreateWorkspaceAdminRoleParam { private Long ouId; /** - * 手机号 + * 适用单位类型 1:总包 2:建设单位 4:监理单位 8:劳务分包 16:专业分包 0都可以用 只会挂在最末级 + *

+ * 业务层,这个字段不要直接用。有变种的getter、setter,或者直接用解释工具。 */ - @NotBlank(message = "phone不能为空") - private String phone; + private Long fitOuTypeBit; /** - * 昵称 + * + * 适用节点类型 1:部门 2:班组 4:小组 只会挂在最末级 + * + * 业务层,这个字段不要直接用 */ - private String nickName; + private Long fitOuNodeTypeBit; /** * 角色Id,必填 @@ -39,6 +42,12 @@ public class CreateWorkspaceAdminRoleParam { */ private RoleTypeEnum roleType; + /** + * 身份id + */ + @NotNull(message = "identityId不能为空") + private Long identityId; + /** * 身份类型 */ @@ -48,4 +57,6 @@ public class CreateWorkspaceAdminRoleParam { @NotNull(message = "workspaceType不能为空") private Integer workspaceType; + private Long naturalPersonId; + } 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 407b79dc..150bca0a 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 @@ -8,7 +8,6 @@ import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO; import cn.axzo.tyr.client.model.roleuser.req.*; import cn.axzo.tyr.server.service.SaasRoleUserRelationService; import cn.axzo.tyr.server.service.SaasRoleUserService; -import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestBody; @@ -63,9 +62,9 @@ public class RoleUserController implements TyrSaasRoleUserApi { } @Override - public ApiResult createWorkspaceAdminRole(List params) { - // todo cn.axzo.basics.auth.api.SaasRoleApi#grantAdminRoleByPhone - return ApiResult.ok(new CreateAdminRoleDTO()); + public ApiResult createSuperAdminRole(CreateSuperAminRoleParam param) { + saasRoleUserService.createSuperAdminRole(param); + return ApiResult.ok(); } @Override 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 4a445d8c..d615b1e4 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 @@ -2,10 +2,13 @@ package cn.axzo.tyr.server.repository.dao; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; +import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser; import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Repository; @@ -53,5 +56,30 @@ public class SaasRoleDao extends ServiceImpl { } return this.getBaseMapper().listRoleUserByPermissionGroup(permissionGroupIdList, workspaceIds); } + + public SaasRole findRoleByTypeAndWorkspaceIdAndOuId(String roleType, Long workspaceId, + Long ouId) { + List list = this.lambdaQuery() + .eq(SaasRole::getRoleType, roleType) + .eq(SaasRole::getWorkspaceId, workspaceId) + .eq(SaasRole::getOwnerOuId, ouId) + .eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); + if(CollUtil.isEmpty(list)){ + return null; + } + return list.get(0); + } + + public List listCommonRoleByNameAndWorkspaceIdAndOuId(String name, Long workspaceId, + Long ouId) { + return lambdaQuery().eq(SaasRole::getName, name) + .eq(SaasRole::getWorkspaceId, workspaceId) + .eq(SaasRole::getOwnerOuId, ouId) + .eq(SaasRole::getRoleType, RoleTypeEnum.COMMON.getValue()) + .eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .select(SaasRole::getId) + .list(); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java index 300a0a9d..afaeb634 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java @@ -1,10 +1,8 @@ package cn.axzo.tyr.server.service; import cn.axzo.tyr.client.model.enums.IdentityType; -import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; +import cn.axzo.tyr.client.model.roleuser.dto.CreateAdminRoleDTO; +import cn.axzo.tyr.client.model.roleuser.req.*; import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation; import java.util.List; @@ -60,4 +58,10 @@ public interface SaasRoleUserService { * @return */ List queryByWorkspaceIdOrOu(Long identityId, IdentityType identityType, Set workspaceIds, Set ouIds); + + /** + * workpaceId + ownerOuId + roleId + 手机号 + 姓名 赋予角色(支持角色赋予的同时 角色创建) + * work for: 组织 + 服务包 + */ + void createSuperAdminRole(CreateSuperAminRoleParam param); } \ No newline at end of file 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 786d759a..cd9768fe 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 @@ -1,10 +1,12 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.basics.common.util.AssertUtil; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.BaseWorkspaceModel; import cn.axzo.tyr.client.model.enums.IdentityType; +import cn.axzo.tyr.client.model.roleuser.req.CreateSuperAminRoleParam; import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; @@ -16,6 +18,7 @@ import cn.axzo.tyr.server.service.SaasRoleUserService; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -142,4 +145,44 @@ public class RoleUserService implements SaasRoleUserService { public List queryByWorkspaceIdOrOu(Long identityId, IdentityType identityType, Set workspaceIds, Set ouIds) { return roleUserRelationDao.queryByWorkspaceIdOrOu(identityId, identityType, workspaceIds, ouIds); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void createSuperAdminRole(CreateSuperAminRoleParam param) { + //获取超管角色 + SaasRole saasRole = saasRoleDao + .findRoleByTypeAndWorkspaceIdAndOuId(RoleTypeEnum.SUPER_ADMIN.getValue(), + param.getWorkspaceId(), param.getOuId()); + if (saasRole == null) { + saasRole = new SaasRole(); + saasRole.setDescription(RoleTypeEnum.SUPER_ADMIN.getDesc()); + saasRole.setName(RoleTypeEnum.SUPER_ADMIN.getDesc()); + saasRole.setWorkspaceId(param.getWorkspaceId()); + saasRole.setWorkspaceType(param.getWorkspaceType()); + saasRole.setOwnerOuId(param.getOuId()); + saasRole.setRoleType(RoleTypeEnum.SUPER_ADMIN.getValue()); + saasRole.setIsDelete(0L); + + checkRoleName(RoleTypeEnum.SUPER_ADMIN.getDesc(), param.getWorkspaceId(), param.getOuId()); + saasRoleDao.save(saasRole); + } + //删除当前超管角色 + roleUserRelationDao.deleteByRoldId(Lists.newArrayList(saasRole.getId())); + + //新增关联关系 + SaasRoleUserRelation saasRoleUserRelation = new SaasRoleUserRelation(); + saasRoleUserRelation.setIdentityId(param.getIdentityId()); + saasRoleUserRelation.setRoleId(saasRole.getId()); + saasRoleUserRelation.setIdentityType(param.getIdentityType().getCode()); + saasRoleUserRelation.setNaturalPersonId(param.getNaturalPersonId()); + saasRoleUserRelation.setOuId(param.getOuId()); + saasRoleUserRelation.setWorkspaceId(param.getWorkspaceId()); + roleUserRelationDao.save(saasRoleUserRelation); + } + + private void checkRoleName(String name, Long workspaceId, Long ouId) { + List saasRoles = saasRoleDao.listCommonRoleByNameAndWorkspaceIdAndOuId(name, + workspaceId, ouId); + AssertUtil.isEmpty(saasRoles, "已存在相同的角色名称,请更换角色名称"); + } } From a05b3b57a5464677ad42fabb2aeddcd650fc43a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BC=98=E6=98=8A?= Date: Wed, 18 Oct 2023 14:49:41 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=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 | 9 +------ .../roleuser/RoleUserController.java | 22 +++++---------- .../server/service/SaasRoleUserService.java | 5 +--- .../server/service/impl/RoleUserService.java | 27 ++++++++----------- 4 files changed, 19 insertions(+), 44 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 3dde660b..27ae8006 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 @@ -4,14 +4,7 @@ import cn.axzo.framework.domain.web.result.ApiResult; 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.CreateAgencyAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.CreateWorkspaceAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; -import cn.axzo.tyr.client.model.roleuser.req.SuperAdminParam; +import cn.axzo.tyr.client.model.roleuser.req.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; 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 a21892fe..36a711be 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,30 +1,20 @@ 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.CreateAgencyAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.CreateWorkspaceAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteAdminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRolesOfWorkspaceParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; -import cn.axzo.tyr.client.model.roleuser.req.SuperAdminParam; +import cn.axzo.tyr.client.model.roleuser.req.*; 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 diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java index 9e54c847..344ba36e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java @@ -1,11 +1,8 @@ package cn.axzo.tyr.server.service; import cn.axzo.tyr.client.model.enums.IdentityType; -import cn.axzo.tyr.client.model.roleuser.dto.CreateAdminRoleDTO; +import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO; import cn.axzo.tyr.client.model.roleuser.req.*; -import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation; import java.util.List; 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 812afdf1..f2b92ea4 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 @@ -1,17 +1,5 @@ package cn.axzo.tyr.server.service.impl; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.alibaba.nacos.common.utils.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; - import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.basics.common.util.AssertUtil; @@ -19,10 +7,6 @@ import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.BaseWorkspaceModel; import cn.axzo.tyr.client.model.enums.IdentityType; -import cn.axzo.tyr.client.model.roleuser.req.CreateSuperAminRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteRoleUserParam; -import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleParam; -import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq; import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO; import cn.axzo.tyr.client.model.roleuser.req.*; import cn.axzo.tyr.server.repository.dao.SaasRoleDao; @@ -31,8 +15,19 @@ import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation; import cn.axzo.tyr.server.service.SaasRoleUserService; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; /** * 角色 From 2d366e4500bfecdb0d7d60986d98193d04d11214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BC=98=E6=98=8A?= Date: Wed, 18 Oct 2023 15:45:36 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=B6=85=E7=BA=A7?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/tyr/client/feign/TyrSaasRoleUserApi.java | 2 +- ...teSuperAminRoleParam.java => CreateSuperAdminRoleParam.java} | 2 +- .../axzo/tyr/server/controller/roleuser/RoleUserController.java | 2 +- .../java/cn/axzo/tyr/server/service/SaasRoleUserService.java | 2 +- .../java/cn/axzo/tyr/server/service/impl/RoleUserService.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/{CreateSuperAminRoleParam.java => CreateSuperAdminRoleParam.java} (96%) 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 27ae8006..548fd6ec 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 @@ -60,7 +60,7 @@ public interface TyrSaasRoleUserApi { ApiResult createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param); @PostMapping("/api/saas-role-user/create-super-admin-role") - ApiResult createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAminRoleParam param); + ApiResult createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param); /** * 移除超管角色 diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java similarity index 96% rename from tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java rename to tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java index 57c353f5..37714d17 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAminRoleParam.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java @@ -7,7 +7,7 @@ import lombok.Data; import javax.validation.constraints.NotNull; @Data -public class CreateSuperAminRoleParam { +public class CreateSuperAdminRoleParam { /** * 工作台id,与context校验 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 36a711be..cb781a2a 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 @@ -61,7 +61,7 @@ public class RoleUserController implements TyrSaasRoleUserApi { } @Override - public ApiResult createSuperAdminRole(CreateSuperAminRoleParam param) { + public ApiResult createSuperAdminRole(CreateSuperAdminRoleParam param) { saasRoleUserService.createSuperAdminRole(param); return ApiResult.ok(); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java index 344ba36e..12bc37f0 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasRoleUserService.java @@ -62,7 +62,7 @@ public interface SaasRoleUserService { * workpaceId + ownerOuId + roleId + 手机号 + 姓名 赋予角色(支持角色赋予的同时 角色创建) * work for: 组织 + 服务包 */ - void createSuperAdminRole(CreateSuperAminRoleParam param); + void createSuperAdminRole(CreateSuperAdminRoleParam param); /** * 批量获取超管信息 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 f2b92ea4..a3bdeff9 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 @@ -149,7 +149,7 @@ public class RoleUserService implements SaasRoleUserService { @Override @Transactional(rollbackFor = Exception.class) - public void createSuperAdminRole(CreateSuperAminRoleParam param) { + public void createSuperAdminRole(CreateSuperAdminRoleParam param) { //获取超管角色 SaasRole saasRole = saasRoleDao .findRoleByTypeAndWorkspaceIdAndOuId(RoleTypeEnum.SUPER_ADMIN.getValue(), From 10cdd20b93bb3803f6bd09e8acf78743a0e3c4e7 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Wed, 18 Oct 2023 16:20:04 +0800 Subject: [PATCH 4/7] =?UTF-8?q?add=20-=20=E6=96=B0=E5=A2=9E=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E5=B7=A5=E4=BD=9C=E5=8F=B0=20id=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/axzo/tyr/client/feign/ProductApi.java | 10 ++++++++++ .../tyr/client/model/product/ProductSearchPageReq.java | 3 --- .../server/controller/product/ProductController.java | 8 ++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java index 77cfd610..603db227 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java @@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestParam; import javax.validation.constraints.NotNull; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 产品相关 API @@ -102,4 +104,12 @@ public interface ProductApi { */ @PostMapping("api/auth/product/feature/relation/update") ApiResult updateFeatureRelation(@Validated @RequestBody List req); + + /** + * 查询指定工作台关联的服务包下的产品权限点 + * + * @param workspaceIds + * @return + */ + ApiResult>> queryProductFeatureRelationByWorkspace(Set workspaceIds); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductSearchPageReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductSearchPageReq.java index 2451a09b..6f16df0d 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductSearchPageReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/product/ProductSearchPageReq.java @@ -2,11 +2,8 @@ package cn.axzo.tyr.client.model.product; import cn.axzo.core.domain.PageRequest; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; import lombok.experimental.Accessors; /** diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/product/ProductController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/product/ProductController.java index c3ae5fb8..0dda138e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/product/ProductController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/product/ProductController.java @@ -20,6 +20,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 产品相关 API 实现 @@ -124,4 +126,10 @@ public class ProductController implements ProductApi { } return productFeatureRelationService.updateFeatureRelation(req); } + + + @Override + public ApiResult>> queryProductFeatureRelationByWorkspace(Set workspaceIds) { + return ApiResult.ok(productFeatureRelationService.getByWorkspace(workspaceIds)); + } } From d14cb2806641d4fe167faf70877abc64f147d89e Mon Sep 17 00:00:00 2001 From: zhansihu Date: Wed, 18 Oct 2023 16:22:53 +0800 Subject: [PATCH 5/7] =?UTF-8?q?feature(role-query):=20=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/client/feign/TyrSaasRoleApi.java | 8 + .../model/req/RoleWithUserQueryReq.java | 24 +++ .../tyr/client/model/res/RoleWithUserRes.java | 44 ++++++ .../axzo/tyr/server/config/FeignConfig.java | 4 + .../controller/role/SaasRoleController.java | 8 + .../axzo/tyr/server/service/RoleService.java | 6 +- .../server/service/impl/RoleServiceImpl.java | 146 ++++++++++++------ 7 files changed, 191 insertions(+), 49 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/RoleWithUserQueryReq.java create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/res/RoleWithUserRes.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java index 9894c45f..81aa7a0e 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java @@ -1,10 +1,13 @@ package cn.axzo.tyr.client.feign; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; +import cn.axzo.tyr.client.model.res.RoleWithUserRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO; import org.springframework.cloud.openfeign.FeignClient; @@ -72,4 +75,9 @@ public interface TyrSaasRoleApi { @PostMapping("/api/saasRole/isSuperAdmin") ApiResult> isSuperAdmin(@RequestBody List req); + + /** 分页查询角色含用户 **/ + @PostMapping("/api/saasRole/queryWithUser") + ApiPageResult queryRoleWithUser(@RequestBody RoleWithUserQueryReq req); + } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/RoleWithUserQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/RoleWithUserQueryReq.java new file mode 100644 index 00000000..4b24f694 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/RoleWithUserQueryReq.java @@ -0,0 +1,24 @@ +package cn.axzo.tyr.client.model.req; + +import cn.axzo.basics.common.page.PageRequest; +import lombok.Data; + +/** + * 角色-含用户查询参数 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/10/16 17:58 + */ +@Data +public class RoleWithUserQueryReq extends PageRequest { + + /** 查询关键字 **/ + private String keyword; + + /** 企业组织ID **/ + private Long ouId; + + /** 工作台ID **/ + private Long workspaceId; +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/RoleWithUserRes.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/RoleWithUserRes.java new file mode 100644 index 00000000..ce2a6e0d --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/RoleWithUserRes.java @@ -0,0 +1,44 @@ +package cn.axzo.tyr.client.model.res; + +import lombok.Data; + +import java.util.List; + +/** + * 角色用户响应 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/10/16 17:50 + */ +@Data +public class RoleWithUserRes { + + /** 角色ID **/ + private Long roleId; + + /** 角色名称 **/ + private String roleName; + + /** 角色类型 **/ + private String roleType; + + /** 角色下用户 **/ + private List users; + + @Data + public static class UserVO { + + /** 身份ID **/ + private Long identityId; + + /** 身份类型 **/ + private Integer identityType; + + /** 名称 **/ + private String name; + + /** 组织节点ID **/ + private Long nodeId; + } +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/FeignConfig.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/FeignConfig.java index 0671779d..e9e0deab 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/config/FeignConfig.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/FeignConfig.java @@ -30,6 +30,9 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { @Value("${sennaEnvUrl:http://dev-app.axzo.cn/workflow-engine}") private String workflowEnvUrl; + @Value("${thronesEnvUrl:http://dev-app.axzo.cn/thrones}") + private String thronesEnvUrl; + private static String POD_NAMESPACE; static { @@ -49,6 +52,7 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { // 如需修改微服务地址,建议通过外部化参数来调整 url = url.replace("http://msg-center:8080", msgCenterEnvUrl); url = url.replace("http://workflow-engine:8080", workflowEnvUrl); + url = url.replace("http://thrones", thronesEnvUrl); String profile = environment.getProperty("spring.profiles.active"); if(Objects.equals(profile, "test") && url.contains("dev-app.axzo.cn")) { url = url.replace("dev-app", "test-api"); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java index 45f3dd69..5e3e4abd 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java @@ -1,12 +1,15 @@ package cn.axzo.tyr.server.controller.role; import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.TyrSaasRoleApi; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; +import cn.axzo.tyr.client.model.res.RoleWithUserRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO; import cn.axzo.tyr.server.service.RoleService; @@ -74,4 +77,9 @@ public class SaasRoleController implements TyrSaasRoleApi { return ApiResult.ok(roleService.isSuperAdmin(req)); } + @Override + public ApiPageResult queryRoleWithUser(RoleWithUserQueryReq req) { + return ApiPageResult.ok(roleService.queryRoleWithUser(req)); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java index dd53ae73..1cf02a5e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java @@ -1,11 +1,13 @@ package cn.axzo.tyr.server.service; -import cn.axzo.tyr.client.common.enums.WorkspaceJoinType; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; +import cn.axzo.tyr.client.model.res.RoleWithUserRes; import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO; import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser; @@ -51,4 +53,6 @@ public interface RoleService { */ Set filterPermissionPoint(Set role, TyrSaasAuthServiceImpl.UserRoleInfoMap userRoleInfoMap); + /** 分页查询角色含用户 **/ + PageResp queryRoleWithUser(RoleWithUserQueryReq req); } 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 76dc03cb..f84ab108 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 @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.framework.domain.page.PageResp; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.common.enums.WorkspaceJoinType; @@ -13,8 +14,10 @@ import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; +import cn.axzo.tyr.client.model.res.RoleWithUserRes; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; import cn.axzo.tyr.client.model.vo.SaasRoleVO; @@ -28,6 +31,8 @@ import cn.axzo.tyr.server.service.SaasRoleGroupRelationService; import cn.axzo.tyr.server.service.SaasRoleGroupService; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -76,6 +81,9 @@ public class RoleServiceImpl implements RoleService { @Autowired SaasRoleGroupService saasRoleGroupService; + @Autowired + SaasRoleUserRelationDao saasRoleUserRelationDao; + @Override public List queryByIdentityIdType(Long identityId, Integer identityType, Long workspaceId, Long ouId) { // 查询人关联的角色id @@ -112,15 +120,15 @@ public class RoleServiceImpl implements RoleService { pgrouRelationMap = saasPgroupRoleRelations.stream().collect(Collectors.groupingBy(SaasPgroupRoleRelation::getRoleId)); // 查询权限集 pGroupMap = permissionGroupService.page(QuerySaasPermissionGroupReq.builder() - .isCommon(isCommon) - .roleIds(roleIds) - .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) - .workspaceId(workspaceId) - .ouId(ouId) - .fetchPage(Boolean.FALSE) - .build()).getList() - // 转map - .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); + .isCommon(isCommon) + .roleIds(roleIds) + .ids(saasPgroupRoleRelations.stream().map(SaasPgroupRoleRelation::getGroupId).collect(Collectors.toList())) + .workspaceId(workspaceId) + .ouId(ouId) + .fetchPage(Boolean.FALSE) + .build()).getList() + // 转map + .stream().collect(Collectors.groupingBy(SaasPermissionGroupVO::getId)); } } Map> finalPgrouRelationMap = pgrouRelationMap; @@ -130,12 +138,12 @@ public class RoleServiceImpl implements RoleService { List pGroup = new ArrayList<>(); if (finalPgrouRelationMap != null && finalPgrouRelationMap.containsKey(role.getId())) { pGroup = finalPgrouRelationMap.get(role.getId()) - .stream() - .map(SaasPgroupRoleRelation::getGroupId) - .map(finalPGroupMap::get) - .filter(Objects::nonNull) - .flatMap(List::stream) - .collect(Collectors.toList()); + .stream() + .map(SaasPgroupRoleRelation::getGroupId) + .map(finalPGroupMap::get) + .filter(Objects::nonNull) + .flatMap(List::stream) + .collect(Collectors.toList()); } SaasRoleVO saasRoleVO = BeanUtil.copyProperties(role, SaasRoleVO.class); saasRoleVO.setPermissionGroup(pGroup); @@ -166,10 +174,10 @@ public class RoleServiceImpl implements RoleService { List roleGroup = new ArrayList<>(); if (CollectionUtils.isNotEmpty(req.getWorkspaceTypeCode()) || CollectionUtils.isNotEmpty(req.getOuTypeCode())) { roleGroup = saasRoleGroupDao.query(QuerySaasRoleGroupReq.builder() - .ids(req.getSassRoleGroupIds()) - .workspaceTypeCode(req.getWorkspaceTypeCode()) - .ouTypeCode(req.getOuTypeCode()) - .build()); + .ids(req.getSassRoleGroupIds()) + .workspaceTypeCode(req.getWorkspaceTypeCode()) + .ouTypeCode(req.getOuTypeCode()) + .build()); if (CollectionUtils.isEmpty(roleGroup)) { return new ArrayList<>(); } @@ -178,21 +186,21 @@ public class RoleServiceImpl implements RoleService { List groupRelation = new ArrayList<>(); if (CollectionUtils.isNotEmpty(roleGroup)) { groupRelation = roleGroupRelationDao.lambdaQuery() - .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())) - .list(); + .in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroup.stream().map(BaseEntity::getId).collect(Collectors.toList())) + .list(); if (CollectionUtils.isEmpty(groupRelation)) { return new ArrayList<>(); } } // 查询角色 List list = saasRoleDao.lambdaQuery() - .in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds()) - .in(CollectionUtils.isNotEmpty(groupRelation), BaseEntity::getId, groupRelation.stream().map(SaasRoleGroupRelation::getRoleId).collect(Collectors.toList())) - .in(CollectionUtils.isNotEmpty(req.getRoleType()), SaasRole::getRoleType, req.getRoleType()) - .in(CollectionUtils.isNotEmpty(req.getWorkspaceId()),SaasRole::getWorkspaceId,req.getWorkspaceId()) - .in(CollectionUtils.isNotEmpty(req.getOuId()),SaasRole::getOwnerOuId,req.getOuId()) - .orderByDesc(BaseEntity::getId) - .list(); + .in(CollectionUtils.isNotEmpty(req.getIds()), BaseEntity::getId, req.getIds()) + .in(CollectionUtils.isNotEmpty(groupRelation), BaseEntity::getId, groupRelation.stream().map(SaasRoleGroupRelation::getRoleId).collect(Collectors.toList())) + .in(CollectionUtils.isNotEmpty(req.getRoleType()), SaasRole::getRoleType, req.getRoleType()) + .in(CollectionUtils.isNotEmpty(req.getWorkspaceId()),SaasRole::getWorkspaceId,req.getWorkspaceId()) + .in(CollectionUtils.isNotEmpty(req.getOuId()),SaasRole::getOwnerOuId,req.getOuId()) + .orderByDesc(BaseEntity::getId) + .list(); return getByIds(list.stream().map(BaseEntity::getId).collect(Collectors.toList()), req.getIsCommon(),req.getWorkspaceId(),req.getOuId(),req.getIncludePermissionGroup()); } @@ -201,12 +209,12 @@ public class RoleServiceImpl implements RoleService { List result = new ArrayList<>(); req.forEach(e -> { result.add(QueryBatchByIdentityIdTypeRes.builder() - .identityId(e.getIdentityId()) - .identityType(e.getIdentityType()) - .workspaceId(e.getWorkspaceId()) - .ouId(e.getOuId()) - .role(queryByIdentityIdType(e.getIdentityId(),e.getIdentityType(),e.getWorkspaceId(),e.getOuId())) - .build()); + .identityId(e.getIdentityId()) + .identityType(e.getIdentityType()) + .workspaceId(e.getWorkspaceId()) + .ouId(e.getOuId()) + .role(queryByIdentityIdType(e.getIdentityId(),e.getIdentityType(),e.getWorkspaceId(),e.getOuId())) + .build()); }); return result; } @@ -268,17 +276,17 @@ public class RoleServiceImpl implements RoleService { List list = new ArrayList<>(); if (CollectionUtils.isNotEmpty(roleIds)) { list = saasRoleDao.lambdaQuery() - .in(BaseEntity::getId, roleIds) - .eq(SaasRole::getRoleType, RoleTypeEnum.SUPER_ADMIN.getValue()) - .list(); + .in(BaseEntity::getId, roleIds) + .eq(SaasRole::getRoleType, RoleTypeEnum.SUPER_ADMIN.getValue()) + .list(); } result.add(IsSuperAdminRes.builder() - .identityId(e.getIdentityId()) - .identityType(e.getIdentityType()) - .workspaceId(e.getWorkspaceId()) - .ouId(e.getOuId()) - .isSuperAdmin(CollectionUtils.isNotEmpty(list)?true:false) - .build()); + .identityId(e.getIdentityId()) + .identityType(e.getIdentityType()) + .workspaceId(e.getWorkspaceId()) + .ouId(e.getOuId()) + .isSuperAdmin(CollectionUtils.isNotEmpty(list)?true:false) + .build()); }); return result; } @@ -411,9 +419,9 @@ public class RoleServiceImpl implements RoleService { */ public List queryPermissionGroupRelation(List roleIds) { return saasPgroupRoleRelationDao.lambdaQuery() - .in(SaasPgroupRoleRelation::getRoleId, roleIds) - .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) - .list(); + .in(SaasPgroupRoleRelation::getRoleId, roleIds) + .eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value) + .list(); } @Override @@ -426,7 +434,7 @@ public class RoleServiceImpl implements RoleService { Set initRoleId = new HashSet<>(); //有标准角,查询角色分组 if (role.stream().anyMatch(r -> Objects.equals(RoleTypeEnum.INIT.getValue(), r.getRoleType()))) { - List roleGroupList = saasRoleGroupService.getList(QuerySaasRoleGroupReq.builder() + List roleGroupList = saasRoleGroupService.getList(QuerySaasRoleGroupReq.builder() .workspaceTypeCode(Collections.singletonList(userRoleInfoMap.getWorkspaceType().toString())) .ouTypeCode(Collections.singletonList(userRoleInfoMap.getWorkspaceJoinType().getValue().toString())) .build()); @@ -440,9 +448,51 @@ public class RoleServiceImpl implements RoleService { .collect(Collectors.toList()); return resultRole.stream().map( - e -> e.getMatchFeature(userRoleInfoMap.workspaceId, userRoleInfoMap.getOuId())) + e -> e.getMatchFeature(userRoleInfoMap.workspaceId, userRoleInfoMap.getOuId())) .flatMap(List::stream) .map(PermissionPointTreeNode::getPermissionPointId) .collect(Collectors.toSet()); } + + @Override + public PageResp queryRoleWithUser(RoleWithUserQueryReq req) { + //按role进行分页查询 + Page rolePage = saasRoleDao + .page(new Page<>(req.getPage(), req.getPageSize()), + new LambdaQueryWrapper() + .eq(SaasRole::getOwnerOuId, req.getOuId()) + .eq(SaasRole::getWorkspaceId, req.getWorkspaceId())); + if (CollectionUtil.isEmpty(rolePage.getRecords())) { + return PageResp.list(req.getPage(), req.getPageSize(), 0L, Collections.emptyList()); + } + + //反查relation + List roleIds = rolePage.getRecords().stream().map(SaasRole::getId).collect(Collectors.toList()); + List relationList = saasRoleUserRelationDao.list(new LambdaQueryWrapper(). + in(SaasRoleUserRelation::getRoleId, roleIds)); + Map> relationMap = relationList.stream().collect(Collectors.groupingBy(SaasRoleUserRelation::getRoleId)); + + // 结果组装 - 用户信息到yoke组装 + List resultData = new ArrayList<>(); + for (SaasRole role : rolePage.getRecords()) { + RoleWithUserRes roleWithUser = new RoleWithUserRes(); + roleWithUser.setRoleId(role.getId()); + roleWithUser.setRoleName(role.getName()); + roleWithUser.setRoleType(role.getRoleType()); + + List relations = relationMap.get(role.getId()); + if (CollectionUtil.isNotEmpty(relations)) { + List users = relations.stream().map(e -> { + RoleWithUserRes.UserVO user = new RoleWithUserRes.UserVO(); + user.setIdentityId(e.getIdentityId()); + user.setIdentityType(e.getIdentityType()); + return user; + }).collect(Collectors.toList()); + roleWithUser.setUsers(users); + } + resultData.add(roleWithUser); + } + + return PageResp.list(req.getPage(), req.getPageSize(), rolePage.getTotal(), resultData); + } } From f75742137500b8e28d1982024303d35c314bbf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BC=98=E6=98=8A?= Date: Wed, 18 Oct 2023 16:24:56 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E9=80=9A=E8=BF=87=E5=90=8D=E5=AD=97?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=A7=92=E8=89=B2=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/tyr/client/feign/TyrSaasRoleApi.java | 9 ++++++++ .../client/model/req/QueryRoleByNameReq.java | 21 ++++++++++++++++++ .../req/CreateSuperAdminRoleParam.java | 22 ------------------- .../controller/role/SaasRoleController.java | 6 +++++ .../server/repository/dao/SaasRoleDao.java | 11 +++++++++- .../axzo/tyr/server/service/RoleService.java | 8 ++++++- .../server/service/impl/RoleServiceImpl.java | 19 +++++++--------- 7 files changed, 61 insertions(+), 35 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryRoleByNameReq.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java index 9894c45f..cf1a3ea5 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/TyrSaasRoleApi.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.client.feign; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; +import cn.axzo.tyr.client.model.req.QueryRoleByNameReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; @@ -72,4 +74,11 @@ public interface TyrSaasRoleApi { @PostMapping("/api/saasRole/isSuperAdmin") ApiResult> isSuperAdmin(@RequestBody List req); + /** + * 通过角色名字获取角色信息 + * @return + */ + @PostMapping("/api/saasRole/findRoleByName") + ApiResult> findRoleByName(@RequestBody @Valid QueryRoleByNameReq req); + } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryRoleByNameReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryRoleByNameReq.java new file mode 100644 index 00000000..8fac7a6f --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QueryRoleByNameReq.java @@ -0,0 +1,21 @@ +package cn.axzo.tyr.client.model.req; + +import cn.axzo.tyr.client.model.base.BaseWorkspaceAndOuModel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @author honghao.zhang + * @since 2023/10/18 16:08 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class QueryRoleByNameReq extends BaseWorkspaceAndOuModel { + + @NotEmpty(message = "角色名字不能为空") + private List roleNames; + +} \ No newline at end of file diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java index 37714d17..3901cddf 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/roleuser/req/CreateSuperAdminRoleParam.java @@ -1,6 +1,5 @@ package cn.axzo.tyr.client.model.roleuser.req; -import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.enums.IdentityType; import lombok.Data; @@ -21,27 +20,6 @@ public class CreateSuperAdminRoleParam { @NotNull(message = "ouId不能为空") private Long ouId; - /** - * 适用单位类型 1:总包 2:建设单位 4:监理单位 8:劳务分包 16:专业分包 0都可以用 只会挂在最末级 - *

- * 业务层,这个字段不要直接用。有变种的getter、setter,或者直接用解释工具。 - */ - private Long fitOuTypeBit; - - /** - * - * 适用节点类型 1:部门 2:班组 4:小组 只会挂在最末级 - * - * 业务层,这个字段不要直接用 - */ - private Long fitOuNodeTypeBit; - - /** - * 角色Id,必填 - * 只能传SUPER_ADMIN,ADMIN - */ - private RoleTypeEnum roleType; - /** * 身份id */ diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java index 45f3dd69..c9364c55 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/role/SaasRoleController.java @@ -4,6 +4,7 @@ import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.feign.TyrSaasRoleApi; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; +import cn.axzo.tyr.client.model.req.QueryRoleByNameReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; @@ -74,4 +75,9 @@ public class SaasRoleController implements TyrSaasRoleApi { return ApiResult.ok(roleService.isSuperAdmin(req)); } + @Override + public ApiResult> findRoleByName(QueryRoleByNameReq req) { + return ApiResult.ok(roleService.findRoleByName(req)); + } + } 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 d615b1e4..bd044f10 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 @@ -8,7 +8,6 @@ import cn.axzo.tyr.server.repository.entity.SaasRole; import cn.axzo.tyr.server.repository.entity.SaasRoleWithUser; import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Repository; @@ -81,5 +80,15 @@ public class SaasRoleDao extends ServiceImpl { .select(SaasRole::getId) .list(); } + + public List findRoleByName(Long ouId, Long workspaceId, + List roleNames) { + return this.lambdaQuery() + .eq(workspaceId != null && workspaceId != 0, SaasRole::getWorkspaceId, workspaceId) + .eq(ouId != null && ouId != 0, SaasRole::getOwnerOuId, ouId) + .in(CollectionUtils.isNotEmpty(roleNames), SaasRole::getName, roleNames) + .eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value).list(); + } + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java index dd53ae73..5bfbec45 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java @@ -1,8 +1,8 @@ package cn.axzo.tyr.server.service; -import cn.axzo.tyr.client.common.enums.WorkspaceJoinType; import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; +import cn.axzo.tyr.client.model.req.QueryRoleByNameReq; import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; @@ -51,4 +51,10 @@ public interface RoleService { */ Set filterPermissionPoint(Set role, TyrSaasAuthServiceImpl.UserRoleInfoMap userRoleInfoMap); + /** + * 通过角色名字获取角色信息 + * @param req + * @return + */ + List findRoleByName(QueryRoleByNameReq req); } 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 d1448da1..defd504b 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 @@ -4,15 +4,10 @@ import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.exception.ServiceException; import cn.axzo.pokonyan.config.mybatisplus.BaseEntity; import cn.axzo.tyr.client.common.enums.RoleTypeEnum; -import cn.axzo.tyr.client.common.enums.WorkspaceJoinType; -import cn.axzo.tyr.client.feign.SaasRoleGroupApi; import cn.axzo.tyr.client.model.enums.IdentityType; import cn.axzo.tyr.client.model.enums.PermissionGroupType; import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; -import cn.axzo.tyr.client.model.req.QueryByIdentityIdTypeReq; -import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq; -import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; -import cn.axzo.tyr.client.model.req.QuerySaasRoleReq; +import cn.axzo.tyr.client.model.req.*; import cn.axzo.tyr.client.model.res.IsSuperAdminRes; import cn.axzo.tyr.client.model.res.QueryBatchByIdentityIdTypeRes; import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO; @@ -21,11 +16,7 @@ import cn.axzo.tyr.client.model.vo.SaasRoleVO; import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO; import cn.axzo.tyr.server.repository.dao.*; import cn.axzo.tyr.server.repository.entity.*; -import cn.axzo.tyr.server.service.PermissionGroupService; -import cn.axzo.tyr.server.service.RoleService; -import cn.axzo.tyr.server.service.SaasPgroupPermissionRelationService; -import cn.axzo.tyr.server.service.SaasRoleGroupRelationService; -import cn.axzo.tyr.server.service.SaasRoleGroupService; +import cn.axzo.tyr.server.service.*; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import com.google.common.collect.Lists; @@ -446,4 +437,10 @@ public class RoleServiceImpl implements RoleService { .map(PermissionPointTreeNode::getPermissionPointId) .collect(Collectors.toSet()); } + + @Override + public List findRoleByName(QueryRoleByNameReq req) { + List roleList = saasRoleDao.findRoleByName(req.getOuId(), req.getWorkspaceId(), req.getRoleNames()); + return BeanUtil.copyToList(roleList, SaasRoleVO.class); + } } From eb7d2e30053d2ba532c52c1ab42b103b8c5d3ef7 Mon Sep 17 00:00:00 2001 From: zhansihu Date: Wed, 18 Oct 2023 16:38:29 +0800 Subject: [PATCH 7/7] =?UTF-8?q?refactor(role-query):=20test=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/tyr/client/feign/ProductApi.java | 1 + .../server/service/impl/RoleServiceImpl.java | 3 ++- .../tyr/server/permission/RoleUserTest.java | 20 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java index 603db227..2a0faf78 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/ProductApi.java @@ -111,5 +111,6 @@ public interface ProductApi { * @param workspaceIds * @return */ + @PostMapping("/temp") ApiResult>> queryProductFeatureRelationByWorkspace(Set workspaceIds); } 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 56c32ec7..3d5d0ca3 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 @@ -457,7 +457,8 @@ public class RoleServiceImpl implements RoleService { .page(new Page<>(req.getPage(), req.getPageSize()), new LambdaQueryWrapper() .eq(SaasRole::getOwnerOuId, req.getOuId()) - .eq(SaasRole::getWorkspaceId, req.getWorkspaceId())); + .eq(SaasRole::getWorkspaceId, req.getWorkspaceId()) + .ne(SaasRole::getRoleType, RoleTypeEnum.SUPER_ADMIN.getValue())); if (CollectionUtil.isEmpty(rolePage.getRecords())) { return PageResp.list(req.getPage(), req.getPageSize(), 0L, Collections.emptyList()); } diff --git a/tyr-server/src/test/java/cn/axzo/tyr/server/permission/RoleUserTest.java b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/RoleUserTest.java index 256fd9d6..01c6ccda 100644 --- a/tyr-server/src/test/java/cn/axzo/tyr/server/permission/RoleUserTest.java +++ b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/RoleUserTest.java @@ -1,11 +1,17 @@ package cn.axzo.tyr.server.permission; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.feign.TyrSaasRoleApi; import cn.axzo.tyr.client.model.BaseWorkspaceModel; import cn.axzo.tyr.client.model.enums.FeatureType; import cn.axzo.tyr.client.model.enums.IdentityType; +import cn.axzo.tyr.client.model.req.RoleWithUserQueryReq; +import cn.axzo.tyr.client.model.res.RoleWithUserRes; +import cn.axzo.tyr.server.controller.role.SaasRoleController; import cn.axzo.tyr.server.repository.dao.SaasFeatureDao; import cn.axzo.tyr.server.repository.dao.SaasRoleUserRelationDao; +import com.alibaba.fastjson.JSON; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -27,6 +33,9 @@ public class RoleUserTest { @Autowired private SaasFeatureDao saasFeatureDao; + @Autowired + private SaasRoleController controller; + @Test public void testList() { saasRoleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder() @@ -39,5 +48,16 @@ public class RoleUserTest { .build(), Arrays.asList(4l)); } + @Test + public void testQuery() { + RoleWithUserQueryReq request = new RoleWithUserQueryReq(); + request.setOuId(5195L); + request.setWorkspaceId(232L); + request.setPage(1L); + request.setPageSize(5L); + ApiPageResult result = controller.queryRoleWithUser(request); + System.out.println(JSON.toJSONString(result)); + } + }