首先点击编辑按钮会显示编辑框(包含当前用户的基本信息以及角色、状态,角色、状态在后台是以数字的形式显示的,所以需要根据用户的id查询当前用户的基本信息、角色和状态)
SysUserController
/**
* 根据标识查询系统管理员信息
* @param id 管理员标识
* @return
*/
@ApiOperation("根据标识查询系统管理员信息")
@GetMapping("info/{id}")
@PreAuthorize("hasAuthority('sys:user:info')")
public Result<SysUser> loadSysUserInfo(@PathVariable Long id) {
SysUser sysUser = sysUserService.querySysUserInfoByUserId(id);
return Result.success(sysUser);
}
SysUserServiceImpl
@Override
public SysUser querySysUserInfoByUserId(Long id) {
// 根据标识查询管理员信息
SysUser sysUser = sysUserMapper.selectById(id);
// 根据用户标识查询管理员与角色的关系集合
List<SysUserRole> sysUserRoleList = sysUserRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getUserId, id)
);
// 判断是否有值
if (CollectionUtil.isNotEmpty(sysUserRoleList) && sysUserRoleList.size() != 0) {
// 从管理员与角色关系集合中获取角色id集合
List<Long> roldIdList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
sysUser.setRoleIdList(roldIdList);
}
return sysUser;
}