@Override public Map<String, Object> getRolesByUserId(long userId) { //获取所有角色 List roles = sysRoleMapper.selectList(null); //根据用户id查询 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq('user_id',userId); //获取用户已分配的角色 List userRoles = sysUserRoleMapper.selectList(queryWrapper); //获取用户已分配的角色id List userRoleIds = new ArrayList<>(); for (SysUserRole userRole : userRoles) { userRoleIds.add(userRole.getRoleId()); } //创建返回的Map Map<String, Object> returnMap = new HashMap<>(); returnMap.put('allRoles',roles); returnMap.put('userRoleIds',userRoleIds); return returnMap; }

解析内容:这段代码是一个Java方法,用于根据用户ID获取用户拥有的角色信息。

首先,通过sysRoleMapper.selectList(null)方法获取所有角色信息,并将结果保存在roles列表中。

然后,创建一个QueryWrapper对象,并使用eq('user_id',userId)方法设置查询条件,用于查询指定用户ID的用户角色信息。

接下来,通过sysUserRoleMapper.selectList(queryWrapper)方法查询用户已分配的角色信息,并将结果保存在userRoles列表中。

然后,创建一个空的userRoleIds列表,用于保存用户已分配的角色ID。

接下来,使用一个循环遍历userRoles列表,将每个用户角色的角色ID添加到userRoleIds列表中。

最后,创建一个returnMap对象,用于保存返回的结果。将roles列表保存在allRoles键下,将userRoleIds列表保存在userRoleIds键下,并将returnMap返回。

这段代码的作用是返回一个Map对象,其中包含了所有角色信息和用户已分配的角色ID。

Java 获取用户角色信息方法代码解析

原文地址: https://www.cveoy.top/t/topic/qfQ0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录