五、若依管理系统——添加用户数据预加载(流程、代码理解

添加用户数据预加载

前端入口

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对象

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值