本文最后更新于 2026年4月1日 晚上
获取用户信息接口的实现
获取用户信息接口接口的需求
当用户登录时获取当前用户id
根据用户id查询用户权限信息
根据用户id查询用户角色信息
因为这里涉及到用户权限和用户角色的查询
这里需要创建用户权限和用户角色接口的接口服务类(SysMenuServiceImpl,SysRoleServiceImpl)
也是为后续开发做准备
代码实现
先创建AdminUserController类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @RestController @RequestMapping("/users") @Api(tags = "用户信息", description = "后台用户信息相关接口") public class AdminUserController { @Autowired private AdminUserService adminUserService;
@GetMapping("/info") @SystemLog(businessName = "获取后台用户信息") @ApiOperation(value = "获取后台用户信息", notes = "获取当前登录后台用户的个人信息", response = SysUserInfoVo.class) public ResponseResult getInfo() { return adminUserService.getAdminInfo(); } }
|
然后使用插件生成有关实体类
再生成有关mapper
再生成有关服务类和有关接口
由于后面要写联表查询语句,所以提前将MyBatisX插件下载好,方便后面生成查询语句的.xml文件
再创建AdminUserInfoVo类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@Data @Accessors(chain = true) @ApiModel(description = "后台用户信息响应对象") @AllArgsConstructor @NoArgsConstructor public class AdminUserInfoVo { @ApiModelProperty(value = "用户信息") private SysUserInfoVo user;
@ApiModelProperty(value = "角色列表") private List<String> roles;
@ApiModelProperty(value = "菜单列表") private List<String> perms;
}
|
在SysMenuServiceImpl类中写关于根据用户id查询用户权限的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
@Service("sysMenuService") public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
@Override public List<String> selectPermByUserId(Long id) { if (id == 1L){ LambdaQueryWrapper<SysMenu> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysMenu :: getType, SystemConstants.MENU_TYPE_M,SystemConstants.MENU_TYPE_B); queryWrapper.eq(SysMenu :: getStatus, SystemConstants.STATUS_NORMAL); List<SysMenu> menuList = list(queryWrapper); List<String> perms = menuList.stream() .map(SysMenu::getPerm) .collect(Collectors.toList()); return perms;
}
return getBaseMapper().selectPermByUserId(id); } }
|
在SysRoleServiceImpl类中写关于根据用户id查询用户角色的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
@Service("sysRoleService") public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
@Override public List<String> selectRoleCodeByUserId(Long id) { if(id == 1L){ List<String> roleCode = new ArrayList<>(); roleCode.add("admin"); return roleCode; } return getBaseMapper().selectRoleCodeByUserId(id); } }
|
上面提到查询用户权限和用户角色需要涉及到联表查询
所以还要在SysMenuMapper.xml和SysRoleMapper.xml中编写相应的查询语句
最后测试接口成功
PS:该系列只做为作者学习开发项目做的笔记用
不一定符合读者来学习,仅供参考
预告
后续会记录博客的开发过程
每次学习会做一份笔记来进行发表
“一花一世界,一叶一菩提”
版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/