mirror of https://gitee.com/stylefeng/roses
【8.1.0】【role】更新用户角色绑定过程中,增加角色的类型和公司id
parent
8f2013dc8e
commit
0e12886b86
|
@ -60,4 +60,10 @@ public class SysRoleDTO {
|
|||
@ChineseDescription("角色类型:10-系统角色,20-公司角色")
|
||||
private Integer roleType;
|
||||
|
||||
/**
|
||||
* 角色所属公司id,当角色类型为20时传此值
|
||||
*/
|
||||
@ChineseDescription("角色所属公司id,当角色类型为20时传此值")
|
||||
private Long roleCompanyId;
|
||||
|
||||
}
|
||||
|
|
|
@ -67,15 +67,12 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
|
|||
// 清空已有的用户角色绑定
|
||||
this.removeRoleAlreadyBind(sysUserRoleRequest);
|
||||
|
||||
// 重新绑定用户角色信息
|
||||
// 获取角色的详情
|
||||
Set<Long> roleIdList = sysUserRoleRequest.getRoleIdList();
|
||||
ArrayList<SysUserRole> newUserRoles = new ArrayList<>();
|
||||
for (Long newRoleId : roleIdList) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(sysUserRoleRequest.getUserId());
|
||||
sysUserRole.setRoleId(newRoleId);
|
||||
newUserRoles.add(sysUserRole);
|
||||
}
|
||||
List<SysRoleDTO> sysRoleDTOList = sysRoleServiceApi.getRolesByIds(new ArrayList<>(roleIdList));
|
||||
|
||||
// 重新绑定用户角色信息
|
||||
List<SysUserRole> newUserRoles = this.createUserRoleBinds(sysUserRoleRequest, roleIdList, sysRoleDTOList);
|
||||
this.saveBatch(newUserRoles);
|
||||
|
||||
// 发布修改用户绑定角色的事件
|
||||
|
@ -294,4 +291,34 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
|
|||
return resultRoleIdList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建用户角色的绑定
|
||||
*
|
||||
* @param sysUserRoleRequest 接口请求参数
|
||||
* @param roleIdList 用户绑定的角色列表
|
||||
* @param sysRoleDTOList 用来获取角色的公司id和角色类型,补充信息用
|
||||
* @author fengshuonan
|
||||
* @since 2024-01-17 17:27
|
||||
*/
|
||||
private List<SysUserRole> createUserRoleBinds(SysUserRoleRequest sysUserRoleRequest, Set<Long> roleIdList, List<SysRoleDTO> sysRoleDTOList) {
|
||||
List<SysUserRole> newUserRoles = new ArrayList<>();
|
||||
for (Long newRoleId : roleIdList) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(sysUserRoleRequest.getUserId());
|
||||
sysUserRole.setRoleId(newRoleId);
|
||||
|
||||
// 填充角色的类型和所属公司
|
||||
for (SysRoleDTO sysRoleDTO : sysRoleDTOList) {
|
||||
if (sysRoleDTO.getRoleId().equals(newRoleId)) {
|
||||
sysUserRole.setRoleType(sysRoleDTO.getRoleType());
|
||||
sysUserRole.setRoleCompanyId(sysRoleDTO.getRoleCompanyId());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
newUserRoles.add(sysUserRole);
|
||||
}
|
||||
return newUserRoles;
|
||||
}
|
||||
|
||||
}
|
|
@ -332,7 +332,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
|
||||
LambdaQueryWrapper<SysRole> sysRoleLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysRoleLambdaQueryWrapper.in(SysRole::getRoleId, roleIds);
|
||||
sysRoleLambdaQueryWrapper.select(SysRole::getRoleName, SysRole::getRoleId, SysRole::getRoleCode);
|
||||
sysRoleLambdaQueryWrapper.select(SysRole::getRoleName, SysRole::getRoleId, SysRole::getRoleCode, SysRole::getRoleType, SysRole::getRoleCompanyId);
|
||||
List<SysRole> sysRoleList = this.list(sysRoleLambdaQueryWrapper);
|
||||
|
||||
if (ObjectUtil.isEmpty(sysRoleList)) {
|
||||
|
|
Loading…
Reference in New Issue