学生管理员授权关系API.md 10 KB

学生管理员授权关系API文档

1. 文档说明

1.1 API基础信息

  • 模块名称: 学工管理 - 学生管理员授权关系
  • 模块代码: ruoyi-xg
  • 基础路径: /xgStudentManagerSource/studentManagerSource
  • 权限前缀: xgStudentManagerSource:studentManagerSource
  • 版本: 1.0.0
  • 更新时间: 2025-07-24

1.2 通用规范

  • 请求方式: 支持GET、POST、PUT、DELETE
  • 数据格式: JSON
  • 字符编码: UTF-8
  • 认证方式: Bearer Token
  • 权限控制: Sa-Token + 数据权限

1.3 响应格式

{
  "code": 200,
  "msg": "操作成功",
  "data": {},
  "timestamp": "2025-07-24T10:00:00"
}

2. 学生管理员授权关系接口

2.1 查询学生管理员授权关系列表

  • 接口路径: GET /xgStudentManagerSource/studentManagerSource/list
  • 权限标识: xgStudentManagerSource:studentManagerSource:list
  • 功能描述: 分页查询学生管理员授权关系列表

请求参数

参数名 类型 必填 说明
pageNum integer 否 页码,默认1
pageSize integer 否 每页大小,默认10
managerId long 否 管理员ID
permissionType string 否 权限类型(1查看 2编辑 3完全管理)
authType string 否 授权类型(1全校级 2自定义 3班主任)
authSource long 否 授权来源ID(对应班级id)
status string 否 状态(0有效 1已撤销)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "total": 10,
  "rows": [
    {
      "id": 1,
      "managerId": 123,
      "permissionType": "2",
      "authType": "2",
      "authSource": 456,
      "status": "0",
      "remark": "自定义管理员权限",
      "createTime": "2025-07-24 10:00:00"
    }
  ]
}

2.2 获取学生管理员授权关系详细信息

  • 接口路径: GET /xgStudentManagerSource/studentManagerSource/{id}
  • 权限标识: xgStudentManagerSource:studentManagerSource:query
  • 功能描述: 根据主键查询学生管理员授权关系详情

请求参数

参数名 类型 必填 说明
id long 是 主键ID

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "managerId": 123,
    "permissionType": "2",
    "authType": "2",
    "authSource": 456,
    "status": "0",
    "remark": "自定义管理员权限",
    "createTime": "2025-07-24 10:00:00",
    "updateTime": "2025-07-24 10:00:00"
  }
}

2.3 新增学生管理员授权关系

  • 接口路径: POST /xgStudentManagerSource/studentManagerSource
  • 权限标识: xgStudentManagerSource:studentManagerSource:add
  • 功能描述: 新增学生管理员授权关系

请求参数

{
  "managerId": 123,
  "permissionType": "2",
  "authType": "2",
  "authSource": 456,
  "status": "0",
  "remark": "自定义管理员权限"
}

响应数据

{
  "code": 200,
  "msg": "新增成功"
}

2.4 修改学生管理员授权关系

  • 接口路径: PUT /xgStudentManagerSource/studentManagerSource
  • 权限标识: xgStudentManagerSource:studentManagerSource:edit
  • 功能描述: 修改学生管理员授权关系

请求参数

{
  "id": 1,
  "managerId": 123,
  "permissionType": "3",
  "authType": "2",
  "authSource": 456,
  "status": "0",
  "remark": "修改后的权限说明"
}

响应数据

{
  "code": 200,
  "msg": "修改成功"
}

2.5 删除学生管理员授权关系

  • 接口路径: DELETE /xgStudentManagerSource/studentManagerSource/{ids}
  • 权限标识: xgStudentManagerSource:studentManagerSource:remove
  • 功能描述: 删除学生管理员授权关系(支持批量删除)

请求参数

参数名 类型 必填 说明
ids long[] 是 主键ID数组

响应数据

{
  "code": 200,
  "msg": "删除成功"
}

2.6 自定义学生管理员授予部门权限

  • 接口路径: POST /xgStudentManagerSource/studentManagerSource/grantDeptAuth
  • 权限标识: xgStudentManagerSource:studentManagerSource:grantDeptAuth
  • 功能描述: 为指定管理员批量授予多个部门的权限

请求参数

参数名 类型 必填 说明
managerId long 是 管理员ID
authSourceIds long[] 是 资源ID列表(部门ID数组)

响应数据

{
  "code": 200,
  "msg": "授权成功"
}

2.7 获取指定管理员的授权资源名称列表

  • 接口路径: GET /xgStudentManagerSource/studentManagerSource/authSourceNames
  • 权限标识: xgStudentManagerSource:studentManagerSource:query
  • 功能描述: 获取指定管理员已授权的资源名称列表

请求参数

参数名 类型 必填 说明
managerId long 是 管理员ID

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    "计算机学院",
    "计算机2023-1班",
    "计算机2023-2班"
  ]
}

2.8 获取当前用户的学生管理权限部门树 🆕

  • 接口路径: GET /xgStudentManagerSource/studentManagerSource/currentUserAuthTree
  • 权限标识: xgStudentManagerSource:studentManagerSource:query
  • 功能描述: 获取当前登录用户的学生管理权限部门树形结构,只有班级节点可以点击

请求参数

无需入参,自动获取当前登录用户信息

接口逻辑

  1. 第一步: 通过当前登录用户ID,关联 xg_student_manager 与 xg_student_manager_source 表,获取授权来源信息

    • 查询条件:xg_student_manager.user_id = 当前用户ID AND xg_student_manager.deleted = '0' AND xg_student_manager.status = '0'
    • 关联条件:xg_student_manager_source.manager_id = xg_student_manager.id AND xg_student_manager_source.status = '0' AND xg_student_manager_source.deleted = '0'
  2. 第二步: 根据授权来源关联 sys_dept 表获取部门数据和所有子节点

    • 查询条件:sys_dept.dept_id IN (auth_source列表) AND sys_dept.status = '0' AND sys_dept.del_flag = '0'
    • 同时获取所有子部门:通过 ancestors 字段查找子节点
  3. 第三步: 向上查找父节点直到根节点(id=101)

    • 通过 ancestors 字段解析父节点层级关系
    • 构建完整的部门树结构

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "deptId": 101,
      "parentId": null,
      "deptName": "杭州职业技术学院",
      "deptCategory": "university",
      "orderNum": 1,
      "clickable": false,
      "children": [
        {
          "deptId": 102,
          "parentId": 101,
          "deptName": "计算机学院",
          "deptCategory": "college",
          "orderNum": 1,
          "clickable": false,
          "children": [
            {
              "deptId": 103,
              "parentId": 102,
              "deptName": "计算机科学与技术专业",
              "deptCategory": "major",
              "orderNum": 1,
              "clickable": false,
              "children": [
                {
                  "deptId": 104,
                  "parentId": 103,
                  "deptName": "计算机2023-1班",
                  "deptCategory": "class",
                  "orderNum": 1,
                  "clickable": true,
                  "children": []
                },
                {
                  "deptId": 105,
                  "parentId": 103,
                  "deptName": "计算机2023-2班",
                  "deptCategory": "class",
                  "orderNum": 2,
                  "clickable": true,
                  "children": []
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

响应字段说明

字段名 类型 说明
deptId long 部门ID
parentId long 父部门ID
deptName string 部门名称
deptCategory string 部门类别编码
orderNum integer 显示顺序
clickable boolean 是否可点击(只有班级节点可点击)
children array 子部门列表

使用说明

  • 该接口无需传参,自动获取当前登录用户的权限范围
  • 返回的树形结构包含完整的层级关系,从根节点到叶子节点
  • clickable 字段标识节点是否可点击,只有班级节点(包含"班"字或dept_category包含"class")设置为true
  • 前端可根据 clickable 字段控制节点的交互行为
  • 树形结构按 orderNum 字段排序

3. 数据字典

3.1 权限类型 (permissionType)

值 说明
1 查看
2 编辑
3 完全管理

3.2 授权类型 (authType)

值 说明
1 全校级
2 自定义
3 班主任

3.3 状态 (status)

值 说明
0 有效
1 已撤销

4. 权限说明

4.1 数据权限控制

  • 超级管理员: 可管理所有学生管理员授权关系
  • 学工管理员: 可管理所有学生管理员授权关系
  • 二级学院管理员: 只能管理本学院相关的授权关系
  • 普通用户: 只能查看自己的权限信息

4.2 操作权限控制

  • 查询: 所有有相关权限的用户
  • 新增: 学工管理员、二级学院管理员
  • 修改: 学工管理员、二级学院管理员
  • 删除: 学工管理员、二级学院管理员
  • 授权: 学工管理员、二级学院管理员

5. 注意事项

  1. 所有接口都需要Bearer Token认证
  2. 删除操作为逻辑删除,不会物理删除数据
  3. 授权关系具有层级性,上级权限包含下级权限
  4. 支持多租户数据隔离
  5. 获取当前用户权限树接口会自动过滤无权限的部门
  6. 部门树构建时会自动补全父节点层级关系

文档更新时间: 2025-07-24
文档版本: 1.0.0
维护人员: Cursor AI
更新说明: 新增学生管理员授权关系管理接口,包含获取当前用户权限部门树功能