fix(code2identity): 处理合并冲突

This commit is contained in:
zhansihu 2023-10-21 15:32:24 +08:00
parent a47ff15c4a
commit ce880c2686

View File

@ -11,6 +11,7 @@ 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.CreateAgencyAdminRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.CreateSuperAdminRoleParam;
import cn.axzo.tyr.client.model.roleuser.req.DeleteUserRoleIncludeAdminParam;
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;
@ -229,74 +230,6 @@ public class RoleUserService implements SaasRoleUserService {
}).collect(Collectors.toList());
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteUserRoleIncludeAdmin(List<DeleteUserRoleIncludeAdminParam> params) {
if (CollectionUtils.isEmpty(params)) {
return false;
}
params.forEach(param -> {
List<SaasRole> roles = saasRoleDao.lambdaQuery()
.eq(SaasRole::getWorkspaceId, param.getWorkspaceId()).eq(SaasRole::getOwnerOuId, param.getOuId()).eq(SaasRole::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
if (CollectionUtils.isEmpty(roles)) {
return;
}
List<Long> roleIds = roles.stream().map(SaasRole::getId).sorted().collect(Collectors.toList());
List<SaasRoleUserRelation> relations = roleUserRelationDao.lambdaQuery().in(SaasRoleUserRelation::getRoleId, roleIds)
.eq(SaasRoleUserRelation::getIdentityId, param.getIdentityId()).eq(SaasRoleUserRelation::getIdentityType, param.getIdentityType().getCode())
.eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list();
if (CollectionUtils.isNotEmpty(relations)) {
relations.forEach(r -> r.setIsDelete(r.getId()));
roleUserRelationDao.updateBatchById(relations);
}
});
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void createAgencyAdminRole(CreateAgencyAdminRoleParam param) {
/*
* 根据传入的角色id和适用单位类型筛选出符合添加权限的角色
*/
List<SaasRoleGroupRelation> matchedRelations = filterAgencyAdminRoleGroupRelation(param);
List<Long> matchedRoleIds = matchedRelations.stream().map(SaasRoleGroupRelation::getRoleId).sorted().collect(Collectors.toList());
// 如果用户已经存在对应的权限忽略如果不存在添加
List<Long> existUserRoleIds = roleUserRelationDao.lambdaQuery().in(SaasRoleUserRelation::getRoleId, matchedRoleIds).eq(SaasRoleUserRelation::getWorkspaceId, param.getWorkspaceId())
.eq(SaasRoleUserRelation::getOuId, param.getOuId()).eq(SaasRoleUserRelation::getIdentityId, param.getIdentityId()).eq(SaasRoleUserRelation::getIdentityType, param.getIdentityType())
.eq(SaasRoleUserRelation::getIsDelete, TableIsDeleteEnum.NORMAL.value).list().stream().map(SaasRoleUserRelation::getRoleId).collect(Collectors.toList());
Collection<Long> insertRoleIds = org.apache.commons.collections4.CollectionUtils.subtract(matchedRoleIds, existUserRoleIds);
if (CollectionUtils.isEmpty(insertRoleIds)) {
return;
}
List<SaasRoleUserRelation> newUserRoleRelations = insertRoleIds.stream().map(rid -> {
SaasRoleUserRelation roleUserRelation = new SaasRoleUserRelation();
roleUserRelation.setIdentityId(param.getIdentityId());
roleUserRelation.setIdentityType(param.getIdentityType().getCode());
roleUserRelation.setRoleId(rid);
roleUserRelation.setNaturalPersonId(param.getNaturalPersonId());
roleUserRelation.setCreateBy(0L);
roleUserRelation.setUpdateBy(0L);
roleUserRelation.setOuId(param.getOuId());
roleUserRelation.setWorkspaceId(param.getWorkspaceId());
roleUserRelation.setResourceType(0);
roleUserRelation.setResourceId(0L);
return roleUserRelation;
}).collect(Collectors.toList());
roleUserRelationDao.saveBatch(newUserRoleRelations);
}
@Override
public List<SaasRoleUserRelation> listByRoleIds(List<Long> roleIds) {
if (CollectionUtil.isEmpty(roleIds)) {
return new ArrayList<>();
}
return roleUserRelationDao.list(new LambdaQueryWrapper<SaasRoleUserRelation>()
.in(SaasRoleUserRelation::getRoleId, roleIds));
}
private List<SaasRoleGroupRelation> filterAgencyAdminRoleGroupRelation(CreateAgencyAdminRoleParam param) {
// 根据传入的角色id筛选出内置角色
List<SaasRole> saasRoles = saasRoleDao.lambdaQuery().in(SaasRole::getId, param.getUpdateRoleIds())
@ -333,4 +266,14 @@ public class RoleUserService implements SaasRoleUserService {
}
return roleGroupRelations.stream().filter(r -> matchedRoleGroupIds.contains(r.getSaasRoleGroupId())).collect(Collectors.toList());
}
@Override
public List<SaasRoleUserRelation> listByRoleIds(List<Long> roleIds) {
if (CollectionUtil.isEmpty(roleIds)) {
return new ArrayList<>();
}
return roleUserRelationDao.list(new LambdaQueryWrapper<SaasRoleUserRelation>()
.in(SaasRoleUserRelation::getRoleId, roleIds));
}
}