Merge branch 'feature/REQ-1502' of axzsource.com:universal/infrastructure/backend/tyr into feature/REQ-1502
# Conflicts: # tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleUserService.java
This commit is contained in:
commit
a47ff15c4a
@ -2,7 +2,7 @@ package cn.axzo.tyr.client.feign;
|
||||
|
||||
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.SuperAdminInfoDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.*;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@ -24,58 +24,23 @@ public interface TyrSaasRoleUserApi {
|
||||
@PostMapping("/api/saas-role-user/save-or-update")
|
||||
ApiResult<Void> saveOrUpdate(@RequestBody @Valid RoleUserReq req);
|
||||
|
||||
/**
|
||||
* 创建超管
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/create-super-admin-role")
|
||||
ApiResult<Void> createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param);
|
||||
|
||||
/**
|
||||
* 用户角色列表 限制1000条
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/list")
|
||||
ApiResult<List<SaasRoleUserDTO>> roleUserList(@RequestBody @Valid RoleUserParam param);
|
||||
|
||||
/**
|
||||
* 移除某个人在某个工作台的所有角色(除超管)
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/delete")
|
||||
ApiResult<Boolean> deleteUserAllRoles(@RequestBody @Valid List<DeleteRoleUserParam> param);
|
||||
|
||||
/**
|
||||
* 删除某个用户非超管角色(新)
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/delete-user-role")
|
||||
ApiResult<Boolean> deleteUserRoles(@RequestBody @Valid DeleteUserRoleParam param);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/create-agency-admin-role")
|
||||
ApiResult<Void> createAgencyAdminRole(@RequestBody @Valid CreateAgencyAdminRoleParam param);
|
||||
|
||||
@PostMapping("/api/saas-role-user/create-super-admin-role")
|
||||
ApiResult<Void> createSuperAdminRole(@RequestBody @Valid @NotEmpty CreateSuperAdminRoleParam param);
|
||||
|
||||
/**
|
||||
* 移除用户权限,包含超管,一般用于移除超管权限
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/delete-user-role-include-admin")
|
||||
ApiResult<Boolean> deleteUserRoleIncludeAdmin(@RequestBody @Valid @NotEmpty List<DeleteUserRoleIncludeAdminParam> params);
|
||||
|
||||
/**
|
||||
* 批量查询超管, 只能批量获取单个工作台台下的超管,业务系统需要根据返回的identityId和identityType查询identityProfile查询用户明细信息
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/super-admin-list")
|
||||
ApiResult<List<SuperAdminInfoDTO>> superAdminList(@RequestBody @Valid SuperAdminParam param);
|
||||
ApiResult<List<SuperAminInfoResp>> superAdminList(@RequestBody @Valid SuperAdminParam param);
|
||||
|
||||
/**
|
||||
* 批量查询超管, 多工作台
|
||||
@ -83,6 +48,6 @@ public interface TyrSaasRoleUserApi {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/api/saas-role-user/batch-super-admin-list")
|
||||
ApiResult<List<SuperAdminInfoDTO>> batchSuperAdminList(@RequestBody @Valid List<SuperAdminParam> param);
|
||||
ApiResult<List<SuperAminInfoResp>> batchSuperAdminList(@RequestBody @Valid List<SuperAdminParam> param);
|
||||
|
||||
}
|
||||
|
||||
@ -14,7 +14,12 @@ import lombok.NoArgsConstructor;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SuperAdminInfoDTO {
|
||||
public class SuperAminInfoResp {
|
||||
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 身份ID
|
||||
@ -36,4 +41,16 @@ public class SuperAdminInfoDTO {
|
||||
*/
|
||||
private Long ouId;
|
||||
|
||||
/**
|
||||
* 没有值需要自己从档案域查询
|
||||
*/
|
||||
@Deprecated
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 没有值需要自己从档案域查询
|
||||
*/
|
||||
@Deprecated
|
||||
private String realName;
|
||||
|
||||
}
|
||||
@ -35,6 +35,7 @@ public class CreateSuperAdminRoleParam {
|
||||
@NotNull(message = "workspaceType不能为空")
|
||||
private Integer workspaceType;
|
||||
|
||||
@NotNull(message = "自然人id不能为空")
|
||||
private Long naturalPersonId;
|
||||
|
||||
}
|
||||
|
||||
@ -34,14 +34,18 @@ public class RoleUserReq {
|
||||
@NotNull
|
||||
private Long ouId;
|
||||
|
||||
|
||||
private Long personId;
|
||||
/**
|
||||
* 身份id
|
||||
*/
|
||||
@NotNull
|
||||
private Long identityId;
|
||||
|
||||
/**
|
||||
* 自然人id
|
||||
*/
|
||||
@NotNull
|
||||
private Long personId;
|
||||
|
||||
/**
|
||||
* 身份类型
|
||||
*/
|
||||
@ -51,7 +55,6 @@ public class RoleUserReq {
|
||||
/**
|
||||
* 完整的update,所有RoleId都被更新
|
||||
*/
|
||||
@NotEmpty
|
||||
private Set<Long> updateRoleIds;
|
||||
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ package cn.axzo.tyr.server.controller.roleuser;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.TyrSaasRoleUserApi;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SaasRoleUserDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.*;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserRelationService;
|
||||
import cn.axzo.tyr.server.service.SaasRoleUserService;
|
||||
@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.validation.Valid;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
@ -32,7 +31,6 @@ public class RoleUserController implements TyrSaasRoleUserApi {
|
||||
public ApiResult<Void> saveOrUpdate(@Valid RoleUserReq req) {
|
||||
saasRoleUserService.saveOrUpdate(req);
|
||||
return ApiResult.ok();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -40,55 +38,27 @@ public class RoleUserController implements TyrSaasRoleUserApi {
|
||||
return ApiResult.ok(saasRoleUserRelationService.list(param));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Boolean> deleteUserAllRoles(@RequestBody @Valid List<DeleteRoleUserParam> param) {
|
||||
return ApiResult.ok(saasRoleUserService.deleteUserAllRoles(param));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户非超管角色
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ApiResult<Boolean> deleteUserRoles(DeleteUserRoleParam param) {
|
||||
return ApiResult.ok(saasRoleUserService.deleteUserRoles(param));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> createAgencyAdminRole(CreateAgencyAdminRoleParam param) {
|
||||
saasRoleUserService.createAgencyAdminRole(param);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> createSuperAdminRole(CreateSuperAdminRoleParam param) {
|
||||
saasRoleUserService.createSuperAdminRole(param);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Boolean> deleteUserRoleIncludeAdmin(List<DeleteUserRoleIncludeAdminParam> params) {
|
||||
saasRoleUserService.deleteUserRoleIncludeAdmin(params);
|
||||
return ApiResult.ok(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* cn.axzo.basics.auth.api.SaasRoleApi#batchFindSuperAdmin
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ApiResult<List<SuperAdminInfoDTO>> superAdminList(SuperAdminParam param) {
|
||||
public ApiResult<List<SuperAminInfoResp>> superAdminList(SuperAdminParam param) {
|
||||
return ApiResult.ok(saasRoleUserService.superAdminList(param));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<SuperAdminInfoDTO>> batchSuperAdminList(List<SuperAdminParam> param) {
|
||||
public ApiResult<List<SuperAminInfoResp>> batchSuperAdminList(List<SuperAdminParam> param) {
|
||||
if (CollectionUtils.isEmpty(param)) {
|
||||
return ApiResult.ok(Collections.EMPTY_LIST);
|
||||
}
|
||||
return ApiResult.ok(param.stream().map(saasRoleUserService::superAdminList).flatMap(x -> x.stream()).collect(Collectors.toList()));
|
||||
return ApiResult.ok(saasRoleUserService.batchSuperAdminList(param));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package cn.axzo.tyr.server.service;
|
||||
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.*;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAdminInfoDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.*;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleUserRelation;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
* @date 2023/9/13 15:36
|
||||
@ -16,14 +16,6 @@ public interface SaasRoleUserService {
|
||||
|
||||
void saveOrUpdate( RoleUserReq req);
|
||||
|
||||
/**
|
||||
* 删除用户角色,但是不能删除超管
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
boolean deleteUserAllRoles(List<DeleteRoleUserParam> param);
|
||||
|
||||
/**
|
||||
* 是超管
|
||||
*
|
||||
@ -34,14 +26,6 @@ public interface SaasRoleUserService {
|
||||
*/
|
||||
boolean isSuperAdmin(Long identityId, IdentityType identityType, Long workspaceId, Long ouId);
|
||||
|
||||
/**
|
||||
* 删除用户非超管角色
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
boolean deleteUserRoles(DeleteUserRoleParam param);
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 查询人所在的工作台或者单位中的数据
|
||||
@ -69,20 +53,15 @@ public interface SaasRoleUserService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
List<SuperAdminInfoDTO> superAdminList(SuperAdminParam param);
|
||||
List<SuperAminInfoResp> superAdminList(SuperAdminParam param);
|
||||
|
||||
/**
|
||||
* 移除用户角色包含超管
|
||||
* @param params
|
||||
* 批量获取超管
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
boolean deleteUserRoleIncludeAdmin(List<DeleteUserRoleIncludeAdminParam> params);
|
||||
|
||||
/**
|
||||
* 创建机构账户类型
|
||||
* @param param
|
||||
*/
|
||||
void createAgencyAdminRole(CreateAgencyAdminRoleParam param);
|
||||
List<SuperAminInfoResp> batchSuperAdminList(List<SuperAdminParam> param);
|
||||
|
||||
List<SaasRoleUserRelation> listByRoleIds(List<Long> roleIds);
|
||||
}
|
||||
@ -8,8 +8,11 @@ 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.dto.SuperAdminInfoDTO;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.*;
|
||||
import cn.axzo.tyr.client.model.roleuser.dto.SuperAminInfoResp;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.CreateAgencyAdminRoleParam;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.CreateSuperAdminRoleParam;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.RoleUserReq;
|
||||
import cn.axzo.tyr.client.model.roleuser.req.SuperAdminParam;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupDao;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasRoleGroupRelationDao;
|
||||
@ -23,7 +26,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -54,35 +57,41 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveOrUpdate(RoleUserReq req) {
|
||||
|
||||
if (CollectionUtil.isEmpty(req.getUpdateRoleIds())) {
|
||||
throw new ServiceException("当前不支持空角色");
|
||||
}
|
||||
|
||||
List<SaasRole> roles = saasRoleDao.listByIds(req.getUpdateRoleIds());
|
||||
if (roles.stream().anyMatch(e -> RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole())) {
|
||||
throw new ServiceException("暂不支持更换管理员角色");
|
||||
Set<Long> updateRoleIds = req.getUpdateRoleIds();
|
||||
// 角色校验(不能将角色修改为管理员角色)
|
||||
if(CollectionUtils.isNotEmpty(updateRoleIds)){
|
||||
List<SaasRole> roles = saasRoleDao.listByIds(updateRoleIds);
|
||||
if (roles.stream().anyMatch(e -> RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole())) {
|
||||
throw new ServiceException("暂不支持更换管理员角色");
|
||||
}
|
||||
}
|
||||
|
||||
// 查询用户所有角色
|
||||
List<SaasRoleUserRelation> existsRoleUser = roleUserRelationDao.query(req.getIdentityId(), req.getIdentityType().getCode(), req.getWorkspaceId(), req.getOuId());
|
||||
// 当前用户非超管的角色
|
||||
List<Long> notAdminRole = Collections.emptyList();
|
||||
if (CollectionUtils.isNotEmpty(existsRoleUser)) {
|
||||
List<SaasRole> existsRole = saasRoleDao.listByIds(existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().collect(Collectors.toList()));
|
||||
List<SaasRole> notAdminRole = existsRole.stream().filter(e -> !RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).collect(Collectors.toList());
|
||||
// 删除现有非管理员的角色
|
||||
roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder()
|
||||
.workspaceId(req.getWorkspaceId())
|
||||
.ouId(req.getOuId())
|
||||
.identityId(req.getIdentityId())
|
||||
.identityType(req.getIdentityType())
|
||||
.build()
|
||||
, notAdminRole
|
||||
.stream()
|
||||
.mapToLong(BaseEntity::getId)
|
||||
.boxed()
|
||||
.collect(Collectors.toList()));
|
||||
// 管理员角色
|
||||
List<Long> adminRole = existsRole.stream().filter(e -> RoleTypeEnum.getRoleType(e.getRoleType()).isAdminRole()).mapToLong(SaasRole::getId).boxed().collect(Collectors.toList());
|
||||
// 排除管理员角色(普通角色) 这里用过滤的方式,是为了防止脏数据产生(saas_role_user_relation表有用户数据但是角色表已经被删除)
|
||||
notAdminRole = existsRoleUser.stream().mapToLong(SaasRoleUserRelation::getRoleId).boxed().filter(roleId -> !adminRole.contains(roleId)).collect(Collectors.toList());
|
||||
}
|
||||
BaseWorkspaceModel workspaceModel = BaseWorkspaceModel.builder()
|
||||
.workspaceId(req.getWorkspaceId()).ouId(req.getOuId())
|
||||
.identityId(req.getIdentityId()).identityType(req.getIdentityType())
|
||||
.build();
|
||||
|
||||
// 删除现有非管理员的角色
|
||||
if (CollectionUtils.isNotEmpty(existsRoleUser)) {
|
||||
roleUserRelationDao.deleteByUser(workspaceModel, notAdminRole);
|
||||
}
|
||||
// 清空所有角色
|
||||
if (CollectionUtil.isEmpty(updateRoleIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
roleUserRelationDao.saveBatch(req.getUpdateRoleIds().stream().map(e -> {
|
||||
roleUserRelationDao.saveBatch(updateRoleIds.stream().map(e -> {
|
||||
SaasRoleUserRelation saasRoleUserRelation = new SaasRoleUserRelation();
|
||||
saasRoleUserRelation.setIdentityId(req.getIdentityId());
|
||||
saasRoleUserRelation.setIdentityType(req.getIdentityType().getCode());
|
||||
@ -96,23 +105,6 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteUserAllRoles(List<DeleteRoleUserParam> param) {
|
||||
param.forEach(item -> {
|
||||
if (isSuperAdmin(item.getIdentityId(), item.getIdentityType(), item.getWorkspaceId(), item.getOuId())) {
|
||||
throw new ServiceException("超级管理员无法被删除");
|
||||
}
|
||||
roleUserRelationDao.deleteByUser(BaseWorkspaceModel.builder()
|
||||
.workspaceId(item.getWorkspaceId())
|
||||
.ouId(item.getOuId())
|
||||
.identityId(item.getIdentityId())
|
||||
.identityType(item.getIdentityType())
|
||||
.build(), null);
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSuperAdmin(Long identityId, IdentityType identityType, Long workspaceId, Long ouId) {
|
||||
List<SaasRole> roleList = saasRoleDao.lambdaQuery()
|
||||
@ -129,26 +121,6 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
return saasRoleUserRelations.size() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean deleteUserRoles(DeleteUserRoleParam param) {
|
||||
List<SaasRole> roleList = saasRoleDao.lambdaQuery()
|
||||
.eq(Objects.nonNull(param.getOuId()), SaasRole::getOwnerOuId, param.getOuId())
|
||||
.eq(Objects.nonNull(param.getWorkspaceId()), SaasRole::getWorkspaceId, param.getWorkspaceId())
|
||||
.eq(SaasRole::getRoleType, RoleTypeEnum.SUPER_ADMIN.getValue())
|
||||
.list();
|
||||
|
||||
List<Long> roleIds = roleList.stream().map(SaasRole::getId).collect(Collectors.toList());
|
||||
roleUserRelationDao.remove(Wrappers.lambdaQuery(SaasRoleUserRelation.class)
|
||||
.eq(SaasRoleUserRelation::getNaturalPersonId, param.getPersonId())
|
||||
.eq(Objects.nonNull(param.getOuId()), SaasRoleUserRelation::getOuId, param.getOuId())
|
||||
.eq(Objects.nonNull(param.getWorkspaceId()), SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId())
|
||||
.eq(Objects.nonNull(param.getIdentityId()), SaasRoleUserRelation::getIdentityId, param.getIdentityId())
|
||||
.eq(Objects.nonNull(param.getIdentityType()), SaasRoleUserRelation::getIdentityType, param.getIdentityType())
|
||||
.notIn(CollectionUtil.isNotEmpty(roleIds), SaasRoleUserRelation::getRoleId, roleIds));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SaasRoleUserRelation> queryByWorkspaceIdOrOu(Long identityId, IdentityType identityType, Set<Long> workspaceIds, Set<Long> ouIds) {
|
||||
return roleUserRelationDao.queryByWorkspaceIdOrOu(identityId, identityType, workspaceIds, ouIds);
|
||||
@ -195,7 +167,44 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SuperAdminInfoDTO> superAdminList(SuperAdminParam param) {
|
||||
public List<SuperAminInfoResp> batchSuperAdminList(List<SuperAdminParam> param) {
|
||||
LambdaQueryChainWrapper<SaasRole> roleWrapper = saasRoleDao.lambdaQuery();
|
||||
roleWrapper.and(w ->
|
||||
param.forEach(c -> w.or()
|
||||
.eq(SaasRole::getOwnerOuId, c.getOuId())
|
||||
.eq(SaasRole::getWorkspaceId, c.getWorkspaceId())));
|
||||
roleWrapper.eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.eq(SaasRole::getRoleType, RoleTypeEnum.SUPER_ADMIN.getValue());
|
||||
List<SaasRole> roleList = roleWrapper.list();
|
||||
if (CollectionUtils.isEmpty(roleList)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
LambdaQueryChainWrapper<SaasRoleUserRelation> userRoleWrapper = roleUserRelationDao.lambdaQuery();
|
||||
userRoleWrapper.and(w ->
|
||||
roleList.forEach(c -> w.or()
|
||||
.eq(SaasRoleUserRelation::getOuId, c.getOwnerOuId())
|
||||
.eq(SaasRoleUserRelation::getWorkspaceId, c.getWorkspaceId())
|
||||
.eq(SaasRoleUserRelation::getRoleId, c.getId())
|
||||
));
|
||||
userRoleWrapper.eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value);
|
||||
List<SaasRoleUserRelation> relations = userRoleWrapper.list();
|
||||
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return relations.stream().map(r -> SuperAminInfoResp.builder()
|
||||
.workspaceId(r.getWorkspaceId())
|
||||
.ouId(r.getOuId())
|
||||
.identityId(r.getIdentityId())
|
||||
.identityType(r.getIdentityType())
|
||||
.personId(r.getNaturalPersonId())
|
||||
.build()
|
||||
).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SuperAminInfoResp> superAdminList(SuperAdminParam param) {
|
||||
if (param.getWorkspaceId() == null || Objects.isNull(param.getOuId())) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
@ -210,11 +219,12 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return relations.stream().map(r -> {
|
||||
SuperAdminInfoDTO superAdminInfo = new SuperAdminInfoDTO();
|
||||
SuperAminInfoResp superAdminInfo = new SuperAminInfoResp();
|
||||
superAdminInfo.setWorkspaceId(r.getWorkspaceId());
|
||||
superAdminInfo.setOuId(r.getOuId());
|
||||
superAdminInfo.setIdentityId(r.getIdentityId());
|
||||
superAdminInfo.setIdentityType(r.getIdentityType());
|
||||
superAdminInfo.setPersonId(r.getNaturalPersonId());
|
||||
return superAdminInfo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -38,6 +38,7 @@ public class SaasRoleUserRelationServiceImpl implements SaasRoleUserRelationServ
|
||||
|
||||
@Override
|
||||
public List<SaasRoleUserDTO> list(RoleUserParam param) {
|
||||
// TODO jhy 角色查询 需要验证标准角色和自定义角色的查询逻辑
|
||||
List<SaasRoleUserRelation> saasRoleUserRelations = saasRoleUserRelationDao.lambdaQuery()
|
||||
.eq(Objects.nonNull(param.getIdentityId()), SaasRoleUserRelation::getIdentityId, param.getIdentityId())
|
||||
.eq(Objects.nonNull(param.getIdentityType()), SaasRoleUserRelation::getIdentityType, param.getIdentityType())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user