这段代码用于判断当前登录用户是否为管理员,如果不是,则会尝试获取指定部门信息。

代码首先判断当前登录用户是否为管理员,使用 SysUser.isAdmin(SecurityUtils.getUserId()) 方法进行判断。如果用户不是管理员,代码会创建一个 SysDept 对象,并设置其 deptId 属性为传入的 deptId 值。

然后,代码调用当前对象的 selectDeptList 方法,该方法会从数据库中查询指定 deptId 的部门数据并返回一个部门列表。

最后,代码判断返回的部门列表是否为空。如果为空,说明用户没有权限访问该部门,代码会抛出一个 ServiceException 异常,提示当前用户没有权限访问部门数据。

代码示例:

if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
    SysDept dept = new SysDept();
    dept.setDeptId(deptId);
    List<SysDept> depts = SpringUtils.getAopProxy(this).selectDeptList(dept);
    if (StringUtils.isEmpty(depts)) {
        throw new ServiceException('没有权限访问部门数据!');
    }
}

代码解析:

  • SysUser.isAdmin(SecurityUtils.getUserId()): 判断当前登录用户是否为管理员。
  • SysDept dept = new SysDept(): 创建一个 SysDept 对象。
  • dept.setDeptId(deptId): 设置 SysDept 对象的 deptId 属性。
  • SpringUtils.getAopProxy(this).selectDeptList(dept): 调用 selectDeptList 方法查询部门数据。
  • StringUtils.isEmpty(depts): 判断部门列表是否为空。
  • throw new ServiceException('没有权限访问部门数据!'): 抛出异常提示用户没有权限访问部门数据。

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

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