【8.1.0】【role】更新用户角色绑定过程中,增加角色的类型和公司id

pull/60/head
fengshuonan 2024-01-17 17:29:41 +08:00
parent 8f2013dc8e
commit 0e12886b86
3 changed files with 42 additions and 9 deletions

View File

@ -60,4 +60,10 @@ public class SysRoleDTO {
@ChineseDescription("角色类型10-系统角色20-公司角色")
private Integer roleType;
/**
* id20
*/
@ChineseDescription("角色所属公司id当角色类型为20时传此值")
private Long roleCompanyId;
}

View File

@ -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;
}
}

View File

@ -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)) {