Files
hzdyjs/docs/开发文档/API/学工管理学生信息管理API.md
T
2025-07-26 17:54:01 +08:00

25 KiB

学工管理学生信息管理API文档

1. 文档说明

1.1 API基础信息

  • 模块名称: 学工管理 - 学生信息管理
  • 模块代码: ruoyi-xg-xx
  • 基础路径: /xg/studentInfo
  • 权限前缀: xg:studentInfo
  • 版本: 1.1.0
  • 更新时间: 2025-01-12(新增选项接口)

1.2 通用规范

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

1.3 响应格式

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

2. 学生信息管理接口

2.1 查询学生信息列表

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

请求参数

参数名 类型 必填 说明
pageNum integer 否 页码,默认1
pageSize integer 否 每页大小,默认10
studentNo string 否 学号
name string 否 姓名(模糊查询)
idCard string 否 身份证号
gender string 否 性别:0-男,1-女
studentStatus string 否 学籍状态
enrollmentYear integer 否 入学年份
majorCode string 否 专业代码
majorName string 否 专业名称(模糊查询)
classCode string 否 班级代码
className string 否 班级名称(模糊查询)
collegeCode string 否 学院代码
collegeName string 否 学院名称(模糊查询)
phone string 否 联系电话(模糊查询)
infoStatus string 否 信息状态

响应数据

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

2.2 获取学生信息详情

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

请求参数

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

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "studentNo": "2023001001",
    "name": "张三",
    "namePinyin": "zhangsan",
    "gender": "M",
    "birthDate": "2000-01-01",
    "nation": "汉族",
    "politicalStatus": "团员",
    "idCard": "110101199901010001",
    "phone": "13800138000",
    "email": "zhangsan@example.com",
    "qq": "123456789",
    "wechat": "zhangsan_wx",
    "dormBuilding": "1号楼",
    "dormRoom": "101",
    "homeAddress": "北京市朝阳区xxx",
    "emergencyContact": "张父",
    "emergencyPhone": "13900139000",
    "emergencyRelation": "父亲",
    "majorCode": "CS001",
    "majorName": "计算机科学与技术",
    "classCode": "CS2023001",
    "className": "计算机2023-1班",
    "collegeCode": "CS",
    "collegeName": "计算机学院",
    "counselorName": "李老师",
    "classTeacherName": "王老师",
    "enrollmentYear": 2023,
    "enrollmentDate": "2023-09-01",
    "schoolSystem": 4,
    "educationLevel": "本科",
    "trainingType": "全日制",
    "studentStatus": "1",
    "infoStatus": "1",
    "dataSource": "1",
    "createTime": "2025-01-12 10:00:00",
    "updateTime": "2025-01-12 10:00:00"
  }
}

2.3 根据学号查询学生信息

  • 接口路径: GET /xg/studentInfo/byStudentNo/{studentNo}
  • 权限标识: xg:studentInfo:query
  • 功能描述: 根据学号查询学生信息

请求参数

参数名 类型 必填 说明
studentNo string 是 学号

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "studentNo": "2023001001",
    "name": "张三",
    "gender": "M",
    "classCode": "CS2023001",
    "className": "计算机2023-1班"
  }
}

2.4 根据身份证号查询学生信息

  • 接口路径: GET /xg/studentInfo/byIdCard/{idCard}
  • 权限标识: xg:studentInfo:query
  • 功能描述: 根据身份证号查询学生信息

请求参数

参数名 类型 必填 说明
idCard string 是 身份证号

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "studentNo": "2023001001",
    "name": "张三",
    "idCard": "110101199901010001",
    "gender": "M",
    "classCode": "CS2023001",
    "className": "计算机2023-1班"
  }
}

2.5 查询班级学生列表

  • 接口路径: GET /xg/studentInfo/byClass/{classCode}
  • 权限标识: xg:studentInfo:list
  • 功能描述: 根据班级代码查询学生列表

请求参数

参数名 类型 必填 说明
classCode string 是 班级代码

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "id": 1,
      "studentNo": "2023001001",
      "name": "张三",
      "gender": "M",
      "classCode": "CS2023001",
      "className": "计算机2023-1班",
      "phone": "13800138000",
      "email": "zhangsan@example.com"
    }
  ]
}

2.6 查询学院学生列表

  • 接口路径: GET /xg/studentInfo/byCollege/{collegeCode}
  • 权限标识: xg:studentInfo:list
  • 功能描述: 根据学院代码查询学生列表

请求参数

参数名 类型 必填 说明
collegeCode string 是 学院代码

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "id": 1,
      "studentNo": "2023001001",
      "name": "张三",
      "gender": "M",
      "classCode": "CS2023001",
      "className": "计算机2023-1班",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    }
  ]
}

2.7 新增学生信息

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

请求参数

{
  "studentNo": "2023001001",
  "name": "张三",
  "gender": "M",
  "birthDate": "2000-01-01",
  "idCard": "110101199901010001",
  "phone": "13800138000",
  "email": "zhangsan@example.com",
  "majorCode": "CS001",
  "majorName": "计算机科学与技术",
  "classCode": "CS2023001",
  "className": "计算机2023-1班",
  "collegeCode": "CS",
  "collegeName": "计算机学院",
  "enrollmentYear": 2023,
  "enrollmentDate": "2023-09-01",
  "schoolSystem": 4,
  "educationLevel": "本科",
  "trainingType": "全日制",
  "studentStatus": "1",
  "nation": "汉族",
  "politicalStatus": "团员",
  "dormBuilding": "1号楼",
  "dormRoom": "101",
  "homeAddress": "北京市朝阳区xxx",
  "emergencyContact": "张父",
  "emergencyPhone": "13900139000",
  "emergencyRelation": "父亲"
}

响应数据

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

2.8 修改学生信息

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

请求参数

{
  "id": 1,
  "studentNo": "2023001001",
  "name": "张三",
  "gender": "M",
  "birthDate": "2000-01-01",
  "idCard": "110101199901010001",
  "phone": "13800138000",
  "email": "zhangsan@example.com",
  "majorCode": "CS001",
  "majorName": "计算机科学与技术",
  "classCode": "CS2023001",
  "className": "计算机2023-1班",
  "collegeCode": "CS",
  "collegeName": "计算机学院"
}

响应数据

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

2.9 删除学生信息

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

请求参数

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

响应数据

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

2.10 导出学生信息

  • 接口路径: POST /xg/studentInfo/export
  • 权限标识: xg:studentInfo:export
  • 功能描述: 导出学生信息Excel文件

请求参数

{
  "studentNo": "2023001001",
  "name": "张三",
  "classCode": "CS2023001",
  "collegeCode": "CS",
  "enrollmentYear": 2023
}

响应数据

  • 直接返回Excel文件流

2.11 批量导入学生信息

  • 接口路径: POST /xg/studentInfo/importData
  • 权限标识: xg:studentInfo:import
  • 功能描述: 批量导入学生信息

请求参数

  • Content-Type: multipart/form-data
  • file: Excel文件
  • updateSupport: 是否更新已存在数据(true/false)

响应数据

{
  "code": 200,
  "msg": "导入成功: 10条, 失败: 0条",
  "data": "导入成功: 10条, 失败: 0条<br/>详细信息:<br/>1、学号 2023001001 导入成功<br/>2、学号 2023001002 导入成功"
}

2.12 获取导入模板

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

响应数据

  • 直接返回Excel模板文件流

2.13 批量更新学生信息状态

  • 接口路径: PUT /xg/studentInfo/batchUpdateStatus
  • 权限标识: xg:studentInfo:edit
  • 功能描述: 批量更新学生信息状态

请求参数

参数名 类型 必填 说明
ids string 是 学生ID,多个用逗号分隔
infoStatus string 是 信息状态:1-正常,2-待审核,3-审核中,4-已驳回,5-已锁定

响应数据

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

2.14 提交学生信息审核

  • 接口路径: POST /xg/studentInfo/submitAudit
  • 权限标识: xg:studentInfo:audit
  • 功能描述: 提交学生信息审核

请求参数

参数名 类型 必填 说明
studentId long 是 学生ID
batchId long 是 批次ID

响应数据

{
  "code": 200,
  "msg": "提交审核成功"
}

2.15 审核学生信息

  • 接口路径: POST /xg/studentInfo/audit
  • 权限标识: xg:studentInfo:audit
  • 功能描述: 审核学生信息

请求参数

参数名 类型 必填 说明
studentId long 是 学生ID
auditResult string 是 审核结果:PASS-通过,REJECT-驳回
auditComment string 否 审核意见

响应数据

{
  "code": 200,
  "msg": "审核成功"
}

2.16 查询学生统计信息

  • 接口路径: GET /xg/studentInfo/statistics
  • 权限标识: xg:studentInfo:query
  • 功能描述: 查询学生统计信息

请求参数

参数名 类型 必填 说明
collegeCode string 否 学院代码
classCode string 否 班级代码
enrollmentYear integer 否 入学年份
studentStatus string 否 学籍状态

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "collegeCode": "CS",
      "collegeName": "计算机学院",
      "totalCount": 120,
      "maleCount": 80,
      "femaleCount": 40,
      "activeCount": 115,
      "suspendedCount": 3,
      "graduatedCount": 2,
      "poorFamilyCount": 15,
      "minorityCount": 8,
      "disabledCount": 2,
      "orphanCount": 1
    }
  ]
}

2.17 检查学号是否存在

  • 接口路径: GET /xg/studentInfo/checkStudentNo
  • 权限标识: xg:studentInfo:query
  • 功能描述: 检查学号是否已存在

请求参数

参数名 类型 必填 说明
studentNo string 是 学号
studentId long 否 学生ID(修改时排除自己)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": false
}

2.18 检查身份证号是否存在

  • 接口路径: GET /xg/studentInfo/checkIdCard
  • 权限标识: xg:studentInfo:query
  • 功能描述: 检查身份证号是否已存在

请求参数

参数名 类型 必填 说明
idCard string 是 身份证号
studentId long 否 学生ID(修改时排除自己)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": false
}

2.19 获取学院选项列表

  • 接口路径: GET /xg/studentInfo/collegeOptions
  • 权限标识: xg:studentInfo:list
  • 功能描述: 获取学院选项列表(用于下拉框)
  • 更新时间: 2025-01-12(新增)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "value": "CS",
      "label": "计算机学院",
      "code": "CS"
    },
    {
      "value": "EE",
      "label": "电子信息学院",
      "code": "EE"
    },
    {
      "value": "ME",
      "label": "机械工程学院",
      "code": "ME"
    }
  ]
}

2.20 获取班级选项列表

  • 接口路径: GET /xg/studentInfo/classOptions
  • 权限标识: xg:studentInfo:list
  • 功能描述: 获取班级选项列表(用于下拉框),支持按学院过滤
  • 更新时间: 2025-01-12(新增)

请求参数

参数名 类型 必填 说明
collegeCode string 否 学院代码(用于过滤)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "value": "CS2023001",
      "label": "计算机2023-1班",
      "code": "CS2023001",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    },
    {
      "value": "CS2023002",
      "label": "计算机2023-2班",
      "code": "CS2023002",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    }
  ]
}

2.21 获取专业选项列表

  • 接口路径: GET /xg/studentInfo/majorOptions
  • 权限标识: xg:studentInfo:list
  • 功能描述: 获取专业选项列表(用于下拉框),支持按学院过滤
  • 更新时间: 2025-01-12(新增)

请求参数

参数名 类型 必填 说明
collegeCode string 否 学院代码(用于过滤)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "value": "CS001",
      "label": "计算机科学与技术",
      "code": "CS001",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    },
    {
      "value": "CS002",
      "label": "软件工程",
      "code": "CS002",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    }
  ]
}

2.22 获取学生选项列表

  • 接口路径: GET /xg/studentInfo/studentOptions
  • 权限标识: xg:studentInfo:list
  • 功能描述: 获取学生选项列表(用于下拉选择),支持多种过滤条件
  • 更新时间: 2025-01-12(新增)

请求参数

参数名 类型 必填 说明
name string 否 姓名(模糊查询)
classCode string 否 班级代码(过滤)
collegeCode string 否 学院代码(过滤)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "value": 1,
      "label": "张三(2023001001)",
      "studentNo": "2023001001",
      "className": "计算机2023-1班",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    },
    {
      "value": 2,
      "label": "李四(2023001002)",
      "studentNo": "2023001002",
      "className": "计算机2023-1班",
      "collegeCode": "CS",
      "collegeName": "计算机学院"
    }
  ]
}

2.23 获取部门下拉树结构

  • 接口路径: GET /system/user/deptTree
  • 权限标识: xg:studentInfo:list
  • 功能描述: 获取部门下拉树结构数据
  • 更新时间: 2025-07-24(更新:添加deptId参数)

请求参数

参数名 类型 必填 说明
deptId integer 否 部门ID,用于筛选特定部门下的数据,默认不传则获取所有部门

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "id": 101,
      "label": "计算机学院",
      "children": [
        {
          "id": 1001,
          "label": "计算机科学与技术专业"
        },
        {
          "id": 1002,
          "label": "软件工程专业"
        }
      ]
    },
    {
      "id": 102,
      "label": "电子信息学院",
      "children": [
        {
          "id": 2001,
          "label": "电子信息工程专业"
        }
      ]
    }
  ]
}

3. 班级信息管理接口

3.1 查询班级信息列表

  • 接口路径: GET /xg/classInfo/list
  • 权限标识: xg:classInfo:list
  • 功能描述: 分页查询班级信息列表

请求参数

参数名 类型 必填 说明
pageNum integer 否 页码,默认1
pageSize integer 否 每页大小,默认10
classCode string 否 班级代码
className string 否 班级名称(模糊查询)
collegeCode string 否 学院代码
majorCode string 否 专业代码
grade string 否 年级
classStatus string 否 班级状态

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "rows": [
    {
      "id": 1,
      "classCode": "CS2023001",
      "className": "计算机2023-1班",
      "classType": "本科",
      "grade": "2023",
      "enrollmentYear": 2023,
      "graduationYear": 2027,
      "majorCode": "CS001",
      "majorName": "计算机科学与技术",
      "collegeCode": "CS",
      "collegeName": "计算机学院",
      "counselorName": "李老师",
      "classTeacherName": "王老师",
      "classStatus": "1",
      "currentStudentCount": 30,
      "maxStudentCount": 35,
      "maleCount": 18,
      "femaleCount": 12
    }
  ],
  "total": 1
}

3.2 获取班级信息详情

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

请求参数

参数名 类型 必填 说明
id long 是 班级ID

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "id": 1,
    "classCode": "CS2023001",
    "className": "计算机2023-1班",
    "classType": "本科",
    "grade": "2023",
    "enrollmentYear": 2023,
    "graduationYear": 2027,
    "majorCode": "CS001",
    "majorName": "计算机科学与技术",
    "collegeCode": "CS",
    "collegeName": "计算机学院",
    "counselorId": 1,
    "counselorName": "李老师",
    "classTeacherId": 2,
    "classTeacherName": "王老师",
    "classStatus": "1",
    "currentStudentCount": 30,
    "maxStudentCount": 35,
    "maleCount": 18,
    "femaleCount": 12,
    "classDescription": "计算机科学与技术专业2023级1班",
    "classNotes": "班级备注信息",
    "createTime": "2025-01-12 10:00:00",
    "updateTime": "2025-01-12 10:00:00"
  }
}

3.3 新增班级信息

  • 接口路径: POST /xg/classInfo
  • 权限标识: xg:classInfo:add
  • 功能描述: 新增班级信息

请求参数

{
  "classCode": "CS2023001",
  "className": "计算机2023-1班",
  "classType": "本科",
  "grade": "2023",
  "enrollmentYear": 2023,
  "graduationYear": 2027,
  "majorCode": "CS001",
  "majorName": "计算机科学与技术",
  "collegeCode": "CS",
  "collegeName": "计算机学院",
  "counselorId": 1,
  "counselorName": "李老师",
  "classTeacherId": 2,
  "classTeacherName": "王老师",
  "maxStudentCount": 35,
  "classDescription": "计算机科学与技术专业2023级1班"
}

响应数据

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

3.4 修改班级信息

  • 接口路径: PUT /xg/classInfo
  • 权限标识: xg:classInfo:edit
  • 功能描述: 修改班级信息

请求参数

{
  "id": 1,
  "classCode": "CS2023001",
  "className": "计算机2023-1班",
  "classType": "本科",
  "grade": "2023",
  "enrollmentYear": 2023,
  "graduationYear": 2027,
  "majorCode": "CS001",
  "majorName": "计算机科学与技术",
  "collegeCode": "CS",
  "collegeName": "计算机学院",
  "counselorId": 1,
  "counselorName": "李老师",
  "classTeacherId": 2,
  "classTeacherName": "王老师",
  "maxStudentCount": 35,
  "classDescription": "计算机科学与技术专业2023级1班"
}

响应数据

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

3.5 删除班级信息

  • 接口路径: DELETE /xg/classInfo/{ids}
  • 权限标识: xg:classInfo:remove
  • 功能描述: 删除班级信息(支持批量删除)

请求参数

参数名 类型 必填 说明
ids string 是 班级ID,多个用逗号分隔

响应数据

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

3.6 查询班级选项列表

  • 接口路径: GET /xg/classInfo/options
  • 权限标识: xg:classInfo:query
  • 功能描述: 查询班级选项列表(用于下拉框)

响应数据

{
  "code": 200,
  "msg": "查询成功",
  "data": [
    {
      "value": 1,
      "code": "CS2023001",
      "label": "计算机2023-1班",
      "text": "CS2023001 - 计算机2023-1班",
      "collegeCode": "CS",
      "collegeName": "计算机学院",
      "grade": "2023",
      "enrollmentYear": 2023
    }
  ]
}

3.7 更新班级人数统计

  • 接口路径: PUT /xg/classInfo/updateStudentCount/{classId}
  • 权限标识: xg:classInfo:edit
  • 功能描述: 更新班级人数统计

请求参数

参数名 类型 必填 说明
classId long 是 班级ID

响应数据

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

4. 错误码说明

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

5. 数据字典

5.1 性别字典 (xg_student_gender)

字典值 字典标签
M 男
F 女

5.2 学籍状态字典 (xg_student_status)

字典值 字典标签
1 在籍
2 休学
3 复学
4 退学
5 毕业
6 肄业
7 转学
8 其他

5.3 信息状态字典 (xg_info_status)

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

5.4 政治面貌字典 (xg_political_status)

字典值 字典标签
01 中共党员
02 中共预备党员
03 共青团员
04 民革党员
05 民盟盟员
06 民建会员
07 民进会员
08 农工党党员
09 致公党党员
10 九三学社社员
11 台盟盟员
12 无党派人士
13 群众

5.5 数据来源字典 (xg_data_source)

字典值 字典标签
1 学生录入
2 批量导入
3 系统迁移
4 第三方同步

6. 权限说明

6.1 数据权限控制

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

6.2 操作权限控制

  • 新增: 学工管理员、二级学院管理员
  • 修改: 学工管理员、二级学院管理员、辅导员、班主任(限制范围)
  • 删除: 学工管理员、二级学院管理员
  • 导入: 学工管理员、二级学院管理员
  • 导出: 学工管理员、二级学院管理员、辅导员、班主任
  • 审核: 学工管理员、二级学院管理员

7. 注意事项

  1. 所有接口都需要Bearer Token认证
  2. 删除操作为逻辑删除,不会物理删除数据
  3. 学号和身份证号必须唯一
  4. 批量操作建议单次不超过1000条记录
  5. 导入文件大小限制为10MB
  6. 支持多租户数据隔离
  7. 所有时间字段使用yyyy-MM-dd HH:mm:ss格式
  8. 数据权限按照用户角色自动过滤

文档更新时间: 2025-01-12
文档版本: 1.1.0
维护人员: Cursor AI
更新说明: 新增4个选项接口,修复前端路由参数类型错误问题