学生信息管理API.md 26 KB

学生信息管理API文档

1. 文档说明

1.1 API基础信息

  • 模块名称: 学工管理 - 学生信息管理
  • 模块代码: ruoyi-xg
  • 基础路径: /studentMsg/studentMsg
  • 权限前缀: studentMsg:studentMsg
  • 版本: 1.0.0
  • 更新时间: 2025-01-27(新增班级学生查询接口)

1.2 通用规范

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

1.3 响应格式

{
  "code": 200,
  "msg": "操作成功",
  "data": {},
  "timestamp": "2025-01-27T18:00:00"
}

2. 学生信息管理接口

2.1 查询学生信息列表

  • 接口路径: GET /studentMsg/studentMsg/list
  • 权限标识: studentMsg:studentMsg:list
  • 功能描述: 分页查询学生信息列表,支持多条件筛选

请求参数

参数名 类型 必填 说明
pageNum integer 否 页码,默认1
pageSize integer 否 每页大小,默认10
studentNo string 否 学号
name string 否 姓名(模糊查询)
idCard string 否 身份证号
gender string 否 性别:0-男,1-女
studentStatus string 否 学籍状态
phone string 否 联系电话(模糊查询)
email string 否 邮箱
classId string 否 班级ID
className string 否 班级名称
majorId string 否 专业ID
majorName string 否 专业名称
collegeId string 否 学院ID
collegeName string 否 学院名称

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "studentNo": "2023001001",
      "name": "张三",
      "gender": "0",
      "birthDate": "2000-01-01",
      "idCard": "110101199901010001",
      "phone": "13800138000",
      "email": "zhangsan@example.com",
      "classId": "101",
      "className": "计算机2023-1班",
      "majorId": "CS001",
      "majorName": "计算机科学与技术",
      "collegeId": "CS",
      "collegeName": "计算机学院",
      "studentStatus": "1",
      "createTime": "2025-01-27 10:00:00",
      "updateTime": "2025-01-27 10:00:00"
    }
  ],
  "total": 1
}

2.2 根据组织ID查询学生信息列表

  • 接口路径: POST /studentMsg/studentMsg/listByDeptId
  • 权限标识: studentMsg:studentMsg:list
  • 功能描述: 根据部门ID查询该组织下所有学生信息

请求参数

{
  "dept_id": 101,
  "name": "张",
  "studentNo": "2023001",
  "phone": "138",
  "studentStatus": "1",
  "beginTime": "2025-01-01",
  "endTime": "2025-01-27"
}

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "rows": [...],
  "total": 10
}

2.3 查询班级中所有学生信息 ⭐ 新增

  • 接口路径: GET /studentMsg/studentMsg/listByClassId
  • 权限标识: studentMsg:studentMsg:query
  • 功能描述: 查询指定班级中所有在籍学生信息

请求参数

参数名 类型 必填 说明
classId string 是 班级ID
name string 否 学生姓名(模糊查询)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "id": 1,
      "studentNo": "2023001001",
      "name": "张三",
      "gender": "0",
      "birthDate": "2000-01-01",
      "idCard": "110101199901010001",
      "phone": "13800138000",
      "email": "zhangsan@example.com",
      "classId": "101",
      "className": "计算机2023-1班",
      "majorId": "CS001",
      "majorName": "计算机科学与技术",
      "collegeId": "CS",
      "collegeName": "计算机学院",
      "studentStatus": "1",
      "createTime": "2025-01-27 10:00:00",
      "updateTime": "2025-01-27 10:00:00"
    }
  ]
}

业务逻辑

  1. 在 xg_student_msg 表中查询:
    • deleted = 0 (未删除)
    • student_status = '1' (在籍状态)
    • class_id = 入参的classId (班级ID)
    • name LIKE '%入参的name%' (姓名模糊查询,可选)
    • 按创建时间倒序排列

2.4 获取学生信息详情

  • 接口路径: GET /studentMsg/studentMsg/{id}
  • 权限标识: studentMsg:studentMsg:query
  • 功能描述: 根据ID获取学生详细信息

请求参数

参数名 类型 必填 说明
id long 是 学生ID

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "studentNo": "2023001001",
    "name": "张三",
    "gender": "0",
    "birthDate": "2000-01-01",
    "idCard": "110101199901010001",
    "phone": "13800138000",
    "email": "zhangsan@example.com",
    "classId": "101",
    "className": "计算机2023-1班",
    "majorId": "CS001",
    "majorName": "计算机科学与技术",
    "collegeId": "CS",
    "collegeName": "计算机学院",
    "studentStatus": "1",
    "createTime": "2025-01-27 10:00:00",
    "updateTime": "2025-01-27 10:00:00"
  }
}

2.5 新增学生信息

  • 接口路径: POST /studentMsg/studentMsg
  • 权限标识: studentMsg:studentMsg:add
  • 功能描述: 新增学生信息

请求参数

{
  "studentNo": "2023001001",
  "name": "张三",
  "gender": "0",
  "birthDate": "2000-01-01",
  "idCard": "110101199901010001",
  "phone": "13800138000",
  "email": "zhangsan@example.com",
  "classId": "101",
  "className": "计算机2023-1班",
  "majorId": "CS001",
  "majorName": "计算机科学与技术",
  "collegeId": "CS",
  "collegeName": "计算机学院",
  "studentStatus": "1"
}

响应数据

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

2.6 修改学生信息

  • 接口路径: PUT /studentMsg/studentMsg
  • 权限标识: studentMsg:studentMsg:edit
  • 功能描述: 修改学生信息

请求参数

{
  "id": 1,
  "studentNo": "2023001001",
  "name": "张三",
  "gender": "0",
  "birthDate": "2000-01-01",
  "idCard": "110101199901010001",
  "phone": "13800138000",
  "email": "zhangsan@example.com",
  "classId": "101",
  "className": "计算机2023-1班",
  "majorId": "CS001",
  "majorName": "计算机科学与技术",
  "collegeId": "CS",
  "collegeName": "计算机学院",
  "studentStatus": "1"
}

响应数据

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

2.7 删除学生信息

  • 接口路径: DELETE /studentMsg/studentMsg/{ids}
  • 权限标识: studentMsg:studentMsg:remove
  • 功能描述: 批量删除学生信息

请求参数

参数名 类型 必填 说明
ids string 是 学生ID列表,多个用逗号分隔

响应数据

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

2.8 导出学生信息

  • 接口路径: POST /studentMsg/studentMsg/export
  • 权限标识: studentMsg:studentMsg:export
  • 功能描述: 导出学生信息列表

请求参数

参数名 类型 必填 说明
studentNo string 否 学号
name string 否 姓名
studentStatus string 否 学籍状态

响应数据

返回Excel文件流

2.8.1 高级检索导出学生信息

  • 接口路径: POST /studentMsg/studentMsg/advancedSearchExport
  • 权限标识: studentMsg:studentMsg:export
  • 功能描述: 根据高级检索条件导出学生信息列表,支持多维度复合查询条件
  • 版本: 1.2.1 (2025-01-07修复MapStruct转换错误)
  • 修复: 解决 XgStudentMsgVo 到 XgStudentMsgExportVo 转换器缺失问题

请求参数

支持以下高级检索条件:

基础信息检索 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | studentNo | string | 否 | 学号(模糊查询) | | name | string | 否 | 姓名(模糊查询) | | idCard | string | 否 | 身份证号(模糊查询) | | phone | string | 否 | 手机号码(模糊查询) | | email | string | 否 | 邮箱(模糊查询) | | gender | array | 否 | 性别数组:0-男,1-女 | | nationality | array | 否 | 民族数组 | | politicalStatus | array | 否 | 政治面貌数组 | | birthDateStart | string | 否 | 出生日期开始:yyyy-MM-dd | | birthDateEnd | string | 否 | 出生日期结束:yyyy-MM-dd |

学籍信息检索 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | studentStatus | array | 否 | 学籍状态数组:1-在籍,2-休学,3-复学,4-退学,5-毕业 | | enrollmentYearStart | integer | 否 | 入学年份开始 | | enrollmentYearEnd | integer | 否 | 入学年份结束 | | admissionCategory | array | 否 | 录取类别数组 |

学院专业班级检索 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | collegeName | string | 否 | 学院名称(模糊查询) | | majorName | string | 否 | 专业名称(模糊查询) | | className | string | 否 | 班级名称(模糊查询) | | grade | array | 否 | 年级数组 | | counselorName | string | 否 | 辅导员姓名(模糊查询) | | classTeacherName | string | 否 | 班主任姓名(模糊查询) |

家庭信息检索 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | fatherName | string | 否 | 父亲姓名(模糊查询) | | motherName | string | 否 | 母亲姓名(模糊查询) | | familyEconomicStatus | array | 否 | 家庭经济状况数组 | | familyIncomeMin | number | 否 | 家庭收入最小值 | | familyIncomeMax | number | 否 | 家庭收入最大值 |

特殊身份检索 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | isPoorStudent | array | 否 | 是否贫困生:0-否,1-是 | | isMinority | array | 否 | 是否少数民族:0-否,1-是 | | isDisabled | array | 否 | 是否残疾:0-否,1-是 | | isOrphan | array | 否 | 是否孤儿:0-否,1-是 |

权限范围 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | deptIds | array | 否 | 部门ID数组,用于权限控制 |

响应数据

返回Excel文件流,包含完整的学生信息数据

修复记录

  • 2025-01-07 v1.2.1: 修复MapStruct转换错误,解决 XgStudentMsgVo 到 XgStudentMsgExportVo 转换器缺失问题
    • 问题: MapstructUtils.convert() 无法找到两个VO类之间的转换器,导致导出功能报错
    • 解决: 在Controller中添加手动转换方法 convertToExportVo() 和 convertToExportVoList()
    • 影响: 导出功能正常工作,所有字段完整映射
  • 2025-01-07 v1.2.0: 修复分页限制问题,导出时pageSize设置为50000,确保能导出所有符合条件的记录
    • 问题: 之前由于BO类默认pageSize=10,导致只能导出10条记录
    • 解决: 取消注释Controller中的分页参数设置代码

2.9 查询学生个人信息

  • 接口路径: GET /studentMsg/studentMsg/personalInfo
  • 权限标识: studentMsg:studentMsg:query
  • 功能描述: 查询当前登录学生的个人信息

请求参数

参数名 类型 必填 说明
userId long 否 用户ID,为空时使用当前登录用户ID

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "studentNo": "2023001001",
    "name": "张三",
    "gender": "0",
    "birthDate": "2000-01-01",
    "idCard": "110101199901010001",
    "phone": "13800138000",
    "email": "zhangsan@example.com",
    "classId": "101",
    "className": "计算机2023-1班",
    "majorId": "CS001",
    "majorName": "计算机科学与技术",
    "collegeId": "CS",
    "collegeName": "计算机学院",
    "studentStatus": "1",
    "createTime": "2025-01-27 10:00:00",
    "updateTime": "2025-01-27 10:00:00"
  }
}

2.10 根据班级ID查询学生信息列表

  • 接口路径: GET /studentMsg/studentMsg/listByClassId
  • 权限标识: studentMsg:studentMsg:query
  • 功能描述: 查询指定班级中所有在籍学生信息

请求参数

参数名 类型 必填 说明
classId string 是 班级ID
name string 否 学生姓名(模糊查询)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "id": 1,
      "studentNo": "2023001001",
      "name": "张三",
      "gender": "0",
      "birthDate": "2000-01-01",
      "idCard": "110101199901010001",
      "phone": "13800138000",
      "email": "zhangsan@example.com",
      "classId": "101",
      "className": "计算机2023-1班",
      "majorId": "CS001",
      "majorName": "计算机科学与技术",
      "collegeId": "CS",
      "collegeName": "计算机学院",
      "studentStatus": "1",
      "createTime": "2025-01-27 10:00:00",
      "updateTime": "2025-01-27 10:00:00"
    }
  ]
}

2.11 导入学生信息数据

  • 接口路径: POST /studentMsg/studentMsg/importData
  • 权限标识: studentMsg:studentMsg:import
  • 功能描述: 批量导入学生信息数据,支持Excel文件上传

请求参数

参数名 类型 必填 说明
file MultipartFile 是 Excel文件(.xlsx格式)
updateSupport boolean 否 是否支持更新已存在数据,默认false

请求示例

POST /studentMsg/studentMsg/importData
Content-Type: multipart/form-data

file: [Excel文件]
updateSupport: true

响应数据

{
  "code": 200,
  "msg": "恭喜您,数据已全部导入成功!共 10 条,数据如下:",
  "data": null
}

错误响应示例

{
  "code": 500,
  "msg": "很抱歉,导入失败!共 2 条数据格式不正确,错误如下:<br/>1、学号 2023001001 已存在<br/>2、学号 2023001002 导入失败:手机号码格式不正确",
  "data": null
}

2.12 获取导入模板

  • 接口路径: POST /studentMsg/studentMsg/importTemplate
  • 权限标识: studentMsg:studentMsg:import
  • 功能描述: 下载学生信息导入模板文件

请求参数

无

响应数据

返回Excel模板文件(.xlsx格式)

模板字段说明

字段名 类型 必填 说明
学号 string 是 学生学号,必须唯一
姓名 string 是 学生姓名
性别 string 是 0-男,1-女
身份证号 string 否 身份证号码
手机号码 string 否 手机号码,必须唯一
电子邮箱 string 否 邮箱地址,必须唯一
出生日期 date 否 出生日期
民族 string 否 民族代码
政治面貌 string 否 政治面貌代码
家庭地址 string 否 家庭住址
现住址 string 否 现居住地址
班级ID string 否 班级编号
班级名称 string 否 班级名称
专业ID string 否 专业编号
专业名称 string 否 专业名称
学院ID string 否 学院编号
学院名称 string 否 学院名称
学籍状态 string 否 1-在籍,2-休学,3-复学,4-退学,5-毕业

3. 数据字典

3.1 性别字典

字典值 字典标签
0 男
1 女

3.2 学籍状态字典

字典值 字典标签
1 在籍
2 休学
3 复学
4 退学
5 毕业

3.3 信息状态字典

字典值 字典标签
1 正常
2 待审核
3 审核中
4 已驳回
5 已锁定

4. 错误码说明

错误码 说明
200 操作成功
400 请求参数错误
401 未授权
403 无权限
404 资源不存在
500 服务器内部错误

5. 权限说明

5.1 数据权限控制

  • 超级管理员: 可查看所有学生信息
  • 学工管理员: 可查看所有学生信息
  • 二级学院管理员: 只能查看本学院学生信息
  • 辅导员: 只能查看负责班级的学生信息
  • 班主任: 只能查看负责班级的学生信息
  • 学生: 只能查看自己的信息

5.2 操作权限控制

  • 新增: 学工管理员、二级学院管理员
  • 修改: 学工管理员、二级学院管理员、辅导员、班主任(限制范围)
  • 删除: 学工管理员、二级学院管理员
  • 导入: 学工管理员、二级学院管理员
  • 导出: 学工管理员、二级学院管理员、辅导员、班主任
  • 查询: 所有有权限的用户

6. 注意事项

  1. 所有接口都需要Bearer Token认证
  2. 删除操作为逻辑删除,不会物理删除数据
  3. 学号和身份证号必须唯一
  4. 新增学生时会自动创建对应的系统用户账号
  5. 支持多租户数据隔离
  6. 所有时间字段使用yyyy-MM-dd HH:mm:ss格式
  7. 数据权限按照用户角色自动过滤
  8. 班级学生查询接口只返回在籍状态的学生

7. 更新日志

2025-01-27 - 新增学生信息导入功能

  • 新增功能: 新增学生信息批量导入功能
  • 新增接口:
    • POST /studentMsg/studentMsg/importData - 学生信息导入接口
    • POST /studentMsg/studentMsg/importTemplate - 导入模板下载接口
  • 功能特性:
    • 支持Excel文件批量导入
    • 支持新增和更新两种模式
    • 自动验证学号、手机号、邮箱唯一性
    • 完整的错误处理和结果统计
    • 自动创建对应的系统用户账号
  • 技术实现:
    • 使用自定义Listener处理Excel解析
    • 事务保证数据一致性
    • 详细的导入结果反馈

2025-01-27 - 新增班级学生查询接口

  • 新增功能: 新增 GET /studentMsg/studentMsg/listByClassId 接口
  • 功能描述: 查询指定班级中所有在籍学生信息
  • 过滤条件:
    • deleted = 0 (未删除)
    • student_status = '1' (在籍状态)
    • class_id = 入参的classId (班级ID)
    • name LIKE '%入参的name%' (姓名模糊查询,可选)
  • 排序方式: 按创建时间倒序排列

17. 获取学生信息树 ⭐ 新增

接口描述

获取按年级、学院、专业、班级层级组织的学生信息树结构,用于宿舍分配等场景的学生选择。

接口URL

GET /studentMsg/studentMsg/getStudentTree

请求参数

参数名 类型 是否必填 说明 示例值
secondaryCollegeId Long 否 二级学院ID,默认为101 101

请求示例

// GET请求
/studentMsg/studentMsg/getStudentTree?secondaryCollegeId=101

响应参数

参数名 类型 说明 示例值
code Integer 响应码,200表示成功 200
msg String 响应消息 "操作成功"
data Array 学生信息树数据 见下方详细结构

学生树节点结构

参数名 类型 说明 示例值
id String 节点唯一标识 "college-101"
label String 节点显示名称 "计算机学院"
type String 节点类型:college/major/class "college"
maleAssigned Integer 已分配男生数量 45
maleTotal Integer 男生总数 120
femaleAssigned Integer 已分配女生数量 25
femaleTotal Integer 女生总数 60
grade String 年级信息(仅班级节点有值) "2025"
collegeId Long 学院ID 101
collegeName String 学院名称 "计算机学院"
majorId Long 专业ID(专业和班级节点有值) 1001
majorName String 专业名称(专业和班级节点有值) "计算机科学与技术"
classId Long 班级ID(仅班级节点有值) 10001
className String 班级名称(仅班级节点有值) "计算机科学与技术1班"
sortOrder Integer 排序序号 1
children Array 子节点数组 []

后端实现

// Controller
@GetMapping("/getStudentTree")
@SaCheckPermission("studentMsg:studentMsg:query")
public R<List<XgStudentTreeVo>> getStudentTree(@RequestParam(defaultValue = "101") Long secondaryCollegeId) {
    List<XgStudentTreeVo> tree = studentService.getStudentTree(secondaryCollegeId);
    return R.ok(tree);
}

// Service实现
@Override
public List<XgStudentTreeVo> getStudentTree(Long secondaryCollegeId) {
    return baseMapper.getStudentTree(secondaryCollegeId);
}

数据库查询

<select id="getCollegeStudentStats" resultType="java.util.Map">
    SELECT 
        s.college_id,
        s.college_name,
        s.major_id,
        s.major_name,
        s.class_id,
        s.class_name,
        s.grade,
        COUNT(CASE WHEN s.gender = '1' THEN 1 END) as male_total,
        COUNT(CASE WHEN s.gender = '0' THEN 1 END) as female_total,
        COUNT(CASE WHEN s.gender = '1' AND s.is_boarder = 1 THEN 1 END) as male_assigned,
        COUNT(CASE WHEN s.gender = '0' AND s.is_boarder = 1 THEN 1 END) as female_assigned
    FROM xg_student s
    WHERE s.secondary_college_id = #{secondaryCollegeId}
    AND s.deleted = 0
    AND s.student_status = '1'
    GROUP BY s.college_id, s.college_name, s.major_id, s.major_name, s.class_id, s.class_name, s.grade
    ORDER BY s.college_id, s.major_id, s.class_id
</select>

前端调用

// API定义
export function getStudentTree(secondaryCollegeId: number = 101): AxiosPromise<R<XgStudentTreeVO[]>> {
  return request({
    url: '/studentMsg/studentMsg/getStudentTree',
    method: 'get',
    params: {
      secondaryCollegeId
    }
  });
}

// 组件中使用
const getStudentTreeData = async () => {
  try {
    const res = await getStudentTree(101);
    if (res.data.code === 200) {
      studentTreeData.value = res.data.data || [];
    } else {
      ElMessage.error(res.data.msg || '获取学生信息树失败');
    }
  } catch (error) {
    console.error('获取学生信息树失败:', error);
    ElMessage.error('获取学生信息树失败');
  }
};

响应示例

{
  "code": 200,
  "msg": "操作成功",
  "data": [
    {
      "id": "college-101",
      "label": "计算机学院",
      "type": "college",
      "collegeId": 101,
      "collegeName": "计算机学院",
      "maleAssigned": 45,
      "maleTotal": 120,
      "femaleAssigned": 25,
      "femaleTotal": 60,
      "children": [
        {
          "id": "major-1001",
          "label": "计算机科学与技术",
          "type": "major",
          "collegeId": 101,
          "collegeName": "计算机学院",
          "majorId": 1001,
          "majorName": "计算机科学与技术",
          "maleAssigned": 45,
          "maleTotal": 80,
          "femaleAssigned": 15,
          "femaleTotal": 40,
          "children": [
            {
              "id": "class-10001",
              "label": "计算机科学与技术1班",
              "type": "class",
              "collegeId": 101,
              "collegeName": "计算机学院",
              "majorId": 1001,
              "majorName": "计算机科学与技术",
              "classId": 10001,
              "className": "计算机科学与技术1班",
              "grade": "2025",
              "maleAssigned": 20,
              "maleTotal": 40,
              "femaleAssigned": 10,
              "femaleTotal": 20
            },
            {
              "id": "class-10002",
              "label": "计算机科学与技术2班",
              "type": "class",
              "collegeId": 101,
              "collegeName": "计算机学院",
              "majorId": 1001,
              "majorName": "计算机科学与技术",
              "classId": 10002,
              "className": "计算机科学与技术2班",
              "grade": "2025",
              "maleAssigned": 25,
              "maleTotal": 40,
              "femaleAssigned": 5,
              "femaleTotal": 20
            }
          ]
        }
      ]
    }
  ]
}

错误响应

{
  "code": 500,
  "msg": "获取学生信息树失败",
  "data": null
}

注意事项

  1. 权限控制: 需要 studentMsg:studentMsg:query 权限
  2. 树结构: 按学院->专业->班级的层级组织(移除年级分组)
  3. 统计信息: 每个节点包含已分配和总数的男女生统计信息
  4. 排序规则: 按学院ID、专业ID、班级ID顺序排列
  5. 应用场景: 主要用于宿舍分配时显示各班级的入住统计
  6. 数据过滤: 支持按二级学院过滤数据范围,默认为101
  7. 逻辑删除: 查询时排除已删除的学生记录
  8. 学籍状态: 只统计在籍学生(student_status='1')
  9. 住宿统计逻辑:
    • total: 需要住宿的学生总数(is_boarder=1)
    • assigned: 实际已分配住宿的学生数(通过xg_dorm_bed_student表关联,status='0')

📋 更新日志

2025-01-27 - 学生信息树接口优化

  • 功能优化: 优化 GET /studentMsg/studentMsg/getStudentTree 接口
  • 结构调整: 移除年级分组,调整为学院->专业->班级的三级层级结构
  • 性能优化: 减少嵌套层级,提升前端渲染性能
  • 统计信息: 保持各层级男女生人数和住宿分配统计
  • 逻辑修正: 修正住宿统计逻辑,通过xg_dorm_bed_student表准确统计已分配住宿学生数

2025-01-27 - 新增班级学生查询接口

  • 新增功能: 新增 GET /studentMsg/studentMsg/listByClassId 接口
  • 功能描述: 查询指定班级中所有在籍学生信息
  • 过滤条件: 支持按班级ID和学生姓名查询
  • 排序方式: 按创建时间倒序排列

文档更新时间: 2025-01-27
文档版本: 1.4.0
维护人员: Cursor AI
更新说明:

  • 优化学生信息树接口,移除年级分组,简化层级结构
  • 新增学生信息树查询接口,支持宿舍分配场景
  • 新增高级检索导出接口文档
  • 修复高级检索导出分页限制问题
  • 之前版本:新增学生信息导入功能,完善学生信息管理API文档