feat:(REQ-2750) 还原一个项目一个超管角色的代码,因为影响点太多,单独拉分支做开发
This commit is contained in:
parent
5210de5c3a
commit
fc0ca81207
@ -18,6 +18,7 @@ import cn.axzo.pokonyan.util.KeysUtil;
|
||||
import cn.axzo.tyr.client.common.enums.RoleResourceTypeEnum;
|
||||
import cn.axzo.tyr.client.common.enums.RoleTypeEnum;
|
||||
import cn.axzo.tyr.client.model.BaseWorkspaceModel;
|
||||
import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum;
|
||||
import cn.axzo.tyr.client.model.enums.IdentityType;
|
||||
import cn.axzo.tyr.client.model.enums.WorkerLeaderRoleEnum;
|
||||
import cn.axzo.tyr.client.model.req.ListRoleReq;
|
||||
@ -81,7 +82,6 @@ import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 角色
|
||||
*
|
||||
@ -286,19 +286,22 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void createSuperAdminRole(CreateSuperAdminRoleParam param) {
|
||||
//获取超管角色
|
||||
// 因为以前一个项目一个超管,但是上线为了保证兼容,所以这里要根据workspaceId = -1,ouId = -1,
|
||||
// 不根据code查询,是因为增加一个业务的超管,就需要维护
|
||||
ListRoleReq listRoleReq = ListRoleReq.builder()
|
||||
.roleTypes(Lists.newArrayList(RoleTypeEnum.SUPER_ADMIN.getValue()))
|
||||
.workspaceType(param.getWorkspaceType())
|
||||
.needPresetRole(true)
|
||||
.build();
|
||||
SaasRoleRes superAdmin = roleService.list(listRoleReq).stream()
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
AssertUtil.notNull(superAdmin, "超管角色不存在,请联系业务初始化超管角色");
|
||||
SaasRole superAdmin = findSuperAdmin(param.getWorkspaceId(), param.getOuId(), param.getWorkspaceType());
|
||||
if (superAdmin == null) {
|
||||
superAdmin = new SaasRole();
|
||||
superAdmin.setDescription(RoleTypeEnum.SUPER_ADMIN.getDesc());
|
||||
superAdmin.setName(RoleTypeEnum.SUPER_ADMIN.getDesc());
|
||||
superAdmin.setWorkspaceId(param.getWorkspaceId());
|
||||
superAdmin.setWorkspaceType(param.getWorkspaceType());
|
||||
superAdmin.setOwnerOuId(param.getOuId());
|
||||
superAdmin.setRoleType(RoleTypeEnum.SUPER_ADMIN.getValue());
|
||||
superAdmin.setIsDelete(0L);
|
||||
DictWorkSpaceTypeEnum dictWorkSpaceTypeEnum = DictWorkSpaceTypeEnum.getByValueWorkspaceType(param.getWorkspaceType());
|
||||
superAdmin.setProductUnitType(dictWorkSpaceTypeEnum == null ? 0 : dictWorkSpaceTypeEnum.getSuperAdminProductType());
|
||||
|
||||
checkRoleName(RoleTypeEnum.SUPER_ADMIN.getDesc(), param.getWorkspaceId(), param.getOuId());
|
||||
saasRoleDao.save(superAdmin);
|
||||
}
|
||||
//删除当前超管角色
|
||||
removeOldSuperAdmin(superAdmin.getId(), param.getWorkspaceId(), param.getOuId());
|
||||
|
||||
@ -345,29 +348,25 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
|
||||
@Override
|
||||
public List<SuperAminInfoResp> batchSuperAdminList(List<SuperAdminParam> param) {
|
||||
// 兼容上线历史数据还没清洗的间隙,查询超管角色需要根据workspaceId和预设的超管一起
|
||||
ListRoleReq listRoleReq = ListRoleReq.builder()
|
||||
.roleTypes(Lists.newArrayList(RoleTypeEnum.SUPER_ADMIN.getValue()))
|
||||
.workspaceOuPairs(param.stream()
|
||||
.map(e -> ListRoleUserRelationParam.WorkspaceOuPair.builder()
|
||||
.workspaceId(e.getWorkspaceId())
|
||||
.ouId(e.getOuId())
|
||||
.build())
|
||||
.collect(Collectors.toList()))
|
||||
.needPresetRole(true)
|
||||
.build();
|
||||
List<SaasRoleRes> roleList = roleService.list(listRoleReq);
|
||||
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 ->
|
||||
param.forEach(c -> w.or()
|
||||
.eq(SaasRoleUserRelation::getOuId, c.getOuId())
|
||||
roleList.forEach(c -> w.or()
|
||||
.eq(SaasRoleUserRelation::getOuId, c.getOwnerOuId())
|
||||
.eq(SaasRoleUserRelation::getWorkspaceId, c.getWorkspaceId())
|
||||
.eq(SaasRoleUserRelation::getRoleId, c.getId())
|
||||
));
|
||||
userRoleWrapper.in(SaasRoleUserRelation::getRoleId, roleList.stream().map(SaasRoleRes::getId).collect(Collectors.toList()));
|
||||
userRoleWrapper.eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value);
|
||||
List<SaasRoleUserRelation> relations = userRoleWrapper.list();
|
||||
|
||||
@ -389,24 +388,15 @@ public class RoleUserService implements SaasRoleUserService {
|
||||
if (param.getWorkspaceId() == null || Objects.isNull(param.getOuId())) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
// 兼容上线历史数据还没清洗的间隙,查询超管角色需要根据workspaceId和预设的超管一起
|
||||
ListRoleReq listRoleReq = ListRoleReq.builder()
|
||||
.roleTypes(Lists.newArrayList(RoleTypeEnum.SUPER_ADMIN.getValue()))
|
||||
.workspaceOuPairs(Lists.newArrayList(ListRoleUserRelationParam.WorkspaceOuPair.builder()
|
||||
.workspaceId(param.getWorkspaceId())
|
||||
.ouId(param.getOuId())
|
||||
.build()))
|
||||
.needPresetRole(true)
|
||||
.build();
|
||||
List<SaasRoleRes> saasRoles = roleService.list(listRoleReq);
|
||||
if (CollectionUtils.isEmpty(saasRoles)) {
|
||||
SaasRole saasRole = saasRoleDao.findRoleByTypeAndWorkspaceIdAndOuId(RoleTypeEnum.SUPER_ADMIN.getValue(),
|
||||
param.getWorkspaceId(), param.getOuId());
|
||||
if (Objects.isNull(saasRole)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<SaasRoleUserRelation> relations = roleUserRelationDao.lambdaQuery()
|
||||
.eq(SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId())
|
||||
.eq(SaasRoleUserRelation::getOuId, param.getOuId())
|
||||
.in(SaasRoleUserRelation::getRoleId, saasRoles.stream().map(SaasRoleRes::getId).collect(Collectors.toList()))
|
||||
.in(SaasRoleUserRelation::getRoleId, saasRole.getId())
|
||||
.eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
|
||||
if (CollectionUtils.isEmpty(relations)) {
|
||||
return Collections.emptyList();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user