添加用户数据预加载
前端入口
reset():表单重置,把表单里的内容清空
getTreeselect():获取部门树状图(因为在点击新增用户后,有一个下拉列表是选部门的
getUser(): 获取用户其他的一些信息,进行回调,进行下拉列表的预填充
后端:查询到预加载的数据,传给前端,回填到表单中
/**
* 根据用户编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping(value = { "/", "/{userId}" })
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
{
// 检查用户数据范围权限
userService.checkUserDataScope(userId);
// 创建成功的Ajax响应对象
AjaxResult ajax = AjaxResult.success();
// 获取所有角色列表
List<SysRole> roles = roleService.selectRoleAll();
// 如果用户是管理员,返回所有角色,否则返回非管理员角色
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
// 获取所有岗位列表
ajax.put("posts", postService.selectPostAll());
// 如果userId不为空,则获取该用户的详细信息
if (StringUtils.isNotNull(userId))
{
// 通过userId获取用户信息
SysUser sysUser = userService.selectUserById(userId);
// 将用户信息添加到响应中
ajax.put(AjaxResult.DATA_TAG, sysUser);
// 获取用户的岗位ID列表
ajax.put("postIds", postService.selectPostListByUserId(userId));
// 获取用户的角色ID列表
ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
}
// 返回Ajax响应对象
return ajax;
}
@PreAuthorize("@ss.hasPermi('system:user:query')")
: 这是一个安全注解,用于检查调用该方法的用户是否具有system:user:query
权限。@GetMapping(value = { "/", "/{userId}" })
: 这是一个映射注解,表示该方法响应HTTP GET请求,URL路径可以是/
或者带有用户编号的/{userId}
。@PathVariable(value = "userId", required = false) Long userId
: 这是一个路径变量,它从URL中获取userId
参数。required = false
表示这个参数是可选的,如果URL中没有提供,userId
将为null
。userService.checkUserDataScope(userId)
: 调用userService
中的方法来检查用户数据范围权限。AjaxResult.success()
: 创建一个表示成功的AjaxResult
对象