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 46b3b7b6..6b5ff55d 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,12 +4,15 @@ import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO; import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp; import cn.axzo.tyr.client.model.roleuser.req.*; +import cn.azxo.framework.common.model.CommonResponse; import org.springframework.cloud.openfeign.FeignClient; 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.NotEmpty; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -25,17 +28,18 @@ public interface TyrSaasRoleUserApi { @PostMapping("/api/saas-role-user/save-or-update") ApiResult saveOrUpdate(@RequestBody @Valid RoleUserReq req); + /** + * 删除单位参与的工作台的所有的人员与角色。 目前主要是用于移除参与单位的地方 + */ + @PostMapping("api/saas/role/remove-workspace-ou-all-user") + ApiResult removeWorkspaceOuAllUserRole(@NotNull @RequestParam("workspaceId") Long workspaceId, @NotNull @RequestParam("ouId") Long ouId); + /** * 创建超管 */ @PostMapping("/api/saas-role-user/create-super-admin-role") ApiResult createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param); - /** - * 删除超管的所有角色 - */ - @PostMapping("/api/saas-role-user/delete-super-admin-all-role") - ApiResult deleteSuperAdminAllRole(@RequestBody @Valid @NotEmpty DeleteSuperAdminRoleParam param); /** * 用户角色列表 限制1000条 */ 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 a6fc3c13..f7e0429c 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 @@ -33,6 +33,12 @@ public class RoleUserController implements TyrSaasRoleUserApi { return ApiResult.ok(); } + @Override + public ApiResult removeWorkspaceOuAllUserRole(Long workspaceId, Long ouId) { + saasRoleUserService.removeWorkspaceOuAllUserRole(workspaceId, ouId); + return ApiResult.ok(); + } + @Override public ApiResult> roleUserList(@RequestBody @Valid RoleUserParam param) { return ApiResult.ok(saasRoleUserRelationService.list(param)); @@ -44,12 +50,6 @@ public class RoleUserController implements TyrSaasRoleUserApi { return ApiResult.ok(); } - @Override - public ApiResult deleteSuperAdminAllRole(DeleteSuperAdminRoleParam param) { - saasRoleUserService.deleteSuperAdminAllRole(param); - return ApiResult.ok(); - } - /** * cn.axzo.basics.auth.api.SaasRoleApi#batchFindSuperAdmin * @param param 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 fb518669..8fce8811 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 @@ -97,5 +97,13 @@ public class SaasRoleDao extends ServiceImpl { public List listForOUWorkspace(Long ouId, Long workspaceId, Integer workspaceJoinType) { return this.baseMapper.listForOUWorkspace(ouId, workspaceId, workspaceJoinType); } + + public void removeWorkspaceOuAllRole(Long workspaceId, Long ouId) { + lambdaUpdate() + .eq(SaasRole::getWorkspaceId, workspaceId) + .eq(SaasRole::getOwnerOuId, ouId) + .setSql(" is_delete = id") + .update(); + } } 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 ffd8b20b..533f84f7 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 @@ -72,8 +72,12 @@ public class SaasRoleUserRelationDao extends ServiceImpl batchSuperAdminList(List param); List listByRoleIds(List roleIds); + /** - * 删除超管的所有角色 + * 删除单位参与的工作台的所有的人员与角色。 目前主要是用于移除参与单位的地方 */ - void deleteSuperAdminAllRole(DeleteSuperAdminRoleParam param); + void removeWorkspaceOuAllUserRole(Long workspaceId, Long ouId); } \ 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 b4320f46..b5ea949b 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 @@ -234,18 +234,10 @@ public class RoleUserService implements SaasRoleUserService { .in(SaasRoleUserRelation::getRoleId, roleIds)); } - @Override - public void deleteSuperAdminAllRole(DeleteSuperAdminRoleParam req) { - // 查询用户所有角色 - List existsRoleUser = roleUserRelationDao.query(req.getIdentityId(), req.getIdentityType().getCode(), req.getWorkspaceId(), req.getOuId()); - if (CollectionUtils.isNotEmpty(existsRoleUser)) { - List existsRoleIds = existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList()); - BaseWorkspaceModel workspaceModel = BaseWorkspaceModel.builder() - .workspaceId(req.getWorkspaceId()).ouId(req.getOuId()) - .identityId(req.getIdentityId()).identityType(req.getIdentityType()) - .build(); - roleUserRelationDao.deleteByUser(workspaceModel, existsRoleIds); - } + public void removeWorkspaceOuAllUserRole(Long workspaceId, Long ouId) { + saasRoleDao.removeWorkspaceOuAllRole(workspaceId, ouId); + roleUserRelationDao.removeWorkspaceOuAllUserRole(workspaceId, ouId); } + }