pangu-user-platform/docs/05-模块技术方案/学生管理/01-学生管理模块技术方案.md

31 KiB
Raw Blame History

学生管理模块 - 技术方案


文档信息 内容
文档版本 V1.0
项目名称 盘古用户平台Pangu User Platform
模块名称 学生管理模块
编写团队 pangu
创建日期 2026-01-31
审核状态 待审核

修订记录

版本 日期 修订人 修订内容
V1.0 2026-01-31 pangu 初稿

目录

  1. 模块概述
  2. 功能清单
  3. 业务流程
  4. 业务规则
  5. 数据模型
  6. 接口设计概览
  7. 技术架构
  8. 开发计划
  9. 风险分析
  10. 验收标准

1. 模块概述

1.1 模块定位

学生管理模块是盘古用户平台的核心业务模块之一负责管理学生基本信息、学生与会员的绑定关系、以及支持批量导入功能。该模块为其他业务系统如AI智慧平台提供学生数据查询服务。

1.2 模块边界

┌────────────────────────────────────────────────────────────────┐
│                       学生管理模块                              │
├────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────┐  ┌─────────────────┐  ┌────────────────┐  │
│  │   学生列表查询   │  │   学生信息维护   │  │   批量导入     │  │
│  │  - 多条件筛选   │  │  - 新增学生     │  │  - 模板下载    │  │
│  │  - 学校树筛选   │  │  - 编辑学生     │  │  - Excel导入   │  │
│  │  - 分页查询    │  │  - 删除学生     │  │  - 数据校验    │  │
│  └─────────────────┘  └─────────────────┘  └────────────────┘  │
│                              │                                  │
│                              ▼                                  │
│  ┌──────────────────────────────────────────────────────────┐  │
│  │                    数据关联                                │  │
│  │  - 学生 → 会员(归属关系)                                  │  │
│  │  - 学生 → 学校/年级/班级(组织关系)                        │  │
│  │  - 学生 → 学科(教学关系)                                  │  │
│  └──────────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────────┘
                              │
            ┌─────────────────┼─────────────────┐
            ▼                 ▼                 ▼
      ┌──────────┐      ┌──────────┐      ┌──────────┐
      │ 会员模块  │      │ 学校模块  │      │ 开放API  │
      └──────────┘      └──────────┘      └──────────┘

1.3 用户角色

角色 权限范围
超级管理员 查看/管理所有学生数据
分公司用户 查看/管理所属区域的学生数据
学校用户 查看/管理本校学生数据

1.4 相关文档

文档 路径 说明
需求规格说明书 docs/01-需求文档/需求规格说明书_v1.0.md 第4.3章 学生管理
系统设计文档 docs/02-系统设计/系统设计文档_v1.0.md 整体架构设计
数据库设计文档 docs/03-数据库设计/数据库设计文档_v1.0.md pg_student表
接口设计文档 docs/04-接口文档/接口设计文档_v1.0.md 第5章 学生管理接口
墨刀原型 https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing 学生管理页面

2. 功能清单

2.1 功能列表

功能编号 功能名称 功能描述 优先级 复杂度
STU-001 学生列表查询 按姓名、学号、性别、手机号、学科等筛选 P0
STU-002 学校树筛选 通过左侧学校树快速定位学生 P0
STU-003 新增学生 手动创建学生信息 P0
STU-004 编辑学生 修改学生基本信息 P0
STU-005 删除学生 软删除学生信息 P1
STU-006 批量导入 通过Excel模板批量导入学生 P0
STU-007 下载导入模板 下载标准Excel导入模板 P0

2.2 功能依赖

┌─────────────────────────────────────────────────────────┐
│                     功能依赖关系                         │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  STU-001 学生列表查询                                     │
│     ├── 依赖:区域树数据(区域模块)                       │
│     ├── 依赖:学校树数据(学校模块)                       │
│     └── 依赖:学科列表(学科模块)                         │
│                                                          │
│  STU-002 学校树筛选                                       │
│     └── 依赖:学校-年级-班级树形结构(学校模块)            │
│                                                          │
│  STU-003/004 新增/编辑学生                                │
│     ├── 依赖:区域级联选择器                               │
│     ├── 依赖:学校-年级-班级级联选择器                      │
│     ├── 依赖:学科下拉列表                                 │
│     └── 依赖:会员选择器(会员模块)                        │
│                                                          │
│  STU-006 批量导入                                         │
│     ├── 依赖:区域数据校验                                 │
│     ├── 依赖:学校数据校验                                 │
│     └── 依赖:会员自动创建(会员模块)                      │
│                                                          │
└─────────────────────────────────────────────────────────┘

3. 业务流程

3.1 学生信息维护流程

┌─────────────────────────────────────────────────────────────────┐
│                     学生信息维护流程                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  用户 ──► 选择学校树节点 ──► 查看学生列表                         │
│                                   │                              │
│           ┌───────────────────────┼───────────────────────┐      │
│           ▼                       ▼                       ▼      │
│       新增学生                编辑学生                删除学生    │
│           │                       │                       │      │
│           ▼                       ▼                       ▼      │
│     填写学生信息            修改学生信息            确认删除      │
│           │                       │                       │      │
│           ▼                       ▼                       ▼      │
│     选择归属会员            保存修改                软删除处理    │
│           │                       │                       │      │
│           ▼                       │                       │      │
│     保存学生信息                  │                       │      │
│           │                       │                       │      │
│           └───────────────────────┴───────────────────────┘      │
│                                   │                              │
│                                   ▼                              │
│                             刷新列表数据                          │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

3.2 批量导入流程

┌─────────────────────────────────────────────────────────────────┐
│                       批量导入流程                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────┐    ┌──────────────┐    ┌─────────────────────┐    │
│  │ 下载模板  │───▶│ 填写学生数据  │───▶│ 上传Excel文件       │    │
│  └──────────┘    └──────────────┘    └──────────┬──────────┘    │
│                                                  │               │
│                                                  ▼               │
│                                      ┌─────────────────────┐    │
│                                      │   解析Excel文件      │    │
│                                      └──────────┬──────────┘    │
│                                                  │               │
│                                                  ▼               │
│                                      ┌─────────────────────┐    │
│                                      │   数据格式校验       │    │
│                                      │  - 必填字段检查      │    │
│                                      │  - 数据格式检查      │    │
│                                      └──────────┬──────────┘    │
│                                                  │               │
│                                   ┌──────────────┴──────────┐   │
│                                   ▼                         ▼   │
│                           ┌─────────────┐           ┌──────────┐│
│                           │  格式错误    │           │ 格式正确  ││
│                           │  返回错误信息│           │ 继续处理  ││
│                           └─────────────┘           └────┬─────┘│
│                                                          │      │
│                                                          ▼      │
│                                              ┌─────────────────┐│
│                                              │  业务数据校验    ││
│                                              │ - 区域/学校匹配  ││
│                                              │ - 学号唯一性    ││
│                                              └───────┬─────────┘│
│                                                      │          │
│                                                      ▼          │
│                                              ┌─────────────────┐│
│                                              │  处理会员关联    ││
│                                              │ - 手机号已存在:  ││
│                                              │   挂载到已有会员 ││
│                                              │ - 手机号不存在:  ││
│                                              │   创建新会员    ││
│                                              └───────┬─────────┘│
│                                                      │          │
│                                                      ▼          │
│                                              ┌─────────────────┐│
│                                              │  批量保存学生    ││
│                                              └───────┬─────────┘│
│                                                      │          │
│                                                      ▼          │
│                                              ┌─────────────────┐│
│                                              │  返回导入结果    ││
│                                              │ - 成功数量      ││
│                                              │ - 失败数量及原因 ││
│                                              └─────────────────┘│
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

3.3 数据权限控制流程

┌─────────────────────────────────────────────────────────────────┐
│                     数据权限控制流程                              │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  请求进入 ──► 获取当前用户角色                                    │
│                     │                                            │
│         ┌───────────┼───────────┬───────────┐                   │
│         ▼           ▼           ▼           ▼                   │
│    超级管理员    分公司用户    学校用户    其他用户               │
│         │           │           │           │                   │
│         ▼           ▼           ▼           ▼                   │
│    无限制       按区域过滤    按学校过滤   拒绝访问               │
│    查询所有     查询所属区域   查询本校    返回403                │
│    学生数据     学生数据      学生数据                           │
│         │           │           │                               │
│         └───────────┴───────────┘                               │
│                     │                                            │
│                     ▼                                            │
│               返回过滤后的数据                                    │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

4. 业务规则

4.1 基础规则

规则编号 规则描述 验证时机
STU-R01 学号在系统内不允许重复,可为空 新增/编辑/导入时校验
STU-R02 姓名为必填项最大长度50字符 新增/编辑/导入时校验
STU-R03 学校信息(区域/学校/年级/班级)为必填项 新增/编辑/导入时校验
STU-R04 出生日期和性别为选填项 -
STU-R05 学生需归属于某个会员(家长/教师) 新增/编辑/导入时校验
STU-R06 所有删除操作均为软删除,保留历史数据 删除时执行

4.2 批量导入规则

规则编号 规则描述 验证时机
IMP-R01 批量导入时需校验必填字段完整性 解析Excel后校验
IMP-R02 批量导入时需校验区域/学校/年级/班级数据一致性 解析Excel后校验
IMP-R03 批量导入时,若用户手机号已存在,则挂载到已有用户 保存数据时处理
IMP-R04 批量导入时若用户手机号不存在自动创建家长用户初始密码123456 保存数据时处理
IMP-R05 单次导入数据量限制≤1000条 上传文件时校验
IMP-R06 Excel文件大小限制≤5MB 上传文件时校验

4.3 导入模板规范

序号 字段名称 必填 格式说明 示例
1 姓名 最大50字符 张小明
2 学号 最大32字符系统内唯一 STU20260001
3 用户手机号 11位手机号 13812345678
4 区域 格式:省-市-区 湖北省-武汉市-武昌区
5 学校 学校名称,需与系统数据匹配 武汉市第一中学
6 年级 年级名称,需与系统数据匹配 七年级
7 班级 班级名称,需与系统数据匹配 1班
8 性别 - 男/女/空
9 出生年月 - 格式YYYY-MM 2015-03

4.4 数据权限规则

规则编号 角色 查询范围 操作权限
AUTH-R01 超级管理员 所有学生数据 增删改查
AUTH-R02 分公司用户 所属区域学生数据 增删改查
AUTH-R03 学校用户 本校学生数据 增删改查

5. 数据模型

5.1 核心实体关系

┌─────────────────────────────────────────────────────────────────┐
│                       学生数据模型                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌───────────┐     ┌───────────┐     ┌───────────┐             │
│  │ pg_region │ 1 n │ pg_school │ 1 n │pg_school_ │             │
│  │   区域    │────▶│    学校   │────▶│  grade    │             │
│  └───────────┘     └───────────┘     │ 学校年级  │             │
│                                       └─────┬─────┘             │
│                                             │ 1                 │
│                                             │                   │
│                                             ▼ n                 │
│  ┌───────────┐     ┌───────────┐     ┌───────────┐             │
│  │ pg_member │ 1 n │pg_student │ n 1 │pg_school_ │             │
│  │   会员    │────▶│   学生    │◀────│  class    │             │
│  └───────────┘     └─────┬─────┘     │ 学校班级  │             │
│                          │           └───────────┘             │
│                          │ n                                    │
│                          │                                      │
│                          ▼ 1                                    │
│                    ┌───────────┐                                │
│                    │pg_subject │                                │
│                    │   学科    │                                │
│                    └───────────┘                                │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

5.2 学生表结构pg_student

字段名 类型 必填 说明
student_id bigint 学生ID主键自增
student_name varchar(50) 学生姓名
student_no varchar(32) - 学号,唯一索引
gender char(1) - 性别0未知 1男 2女
birthday date - 出生年月
region_id bigint 所属区域ID
region_path varchar(200) - 区域路径(冗余存储)
school_id bigint 所属学校ID
school_grade_id bigint 所属学校年级ID
school_class_id bigint 所属学校班级ID
subject_id bigint - 学科ID
member_id bigint 归属会员ID
status char(1) 状态0正常 1停用
create_by varchar(64) - 创建者
create_time datetime - 创建时间
update_by varchar(64) - 更新者
update_time datetime - 更新时间
del_flag char(1) 删除标志0存在 1删除
remark varchar(500) - 备注

5.3 索引设计

索引名 索引字段 索引类型 说明
PRIMARY student_id 主键 主键索引
uk_student_no student_no 唯一 学号唯一性保证
idx_member_id member_id 普通 按会员查询学生
idx_school_id school_id 普通 按学校查询学生
idx_school_class_id school_class_id 普通 按班级查询学生
idx_student_name student_name 普通 按姓名模糊查询

6. 接口设计概览

6.1 接口清单

接口编号 请求方式 接口路径 功能描述
API-001 GET /api/student/list 查询学生列表(分页)
API-002 GET /api/student/{studentId} 获取学生详情
API-003 POST /api/student 新增学生
API-004 PUT /api/student 修改学生
API-005 DELETE /api/student/{studentId} 删除学生
API-006 POST /api/student/import 批量导入学生
API-007 GET /api/student/template 下载导入模板

6.2 接口与功能映射

功能编号 功能名称 前端操作 调用接口
STU-001 学生列表查询 查询表单+分页 API-001
STU-002 学校树筛选 点击树节点 API-001
STU-003 新增学生 弹窗表单提交 API-003
STU-004 编辑学生 弹窗表单提交 API-002, API-004
STU-005 删除学生 确认弹窗删除 API-005
STU-006 批量导入 上传Excel API-006
STU-007 下载导入模板 点击下载 API-007

7. 技术架构

7.1 前端技术栈

技术 版本 用途
Vue 3.5.x 前端框架
Element Plus 2.x UI组件库
Axios 1.x HTTP请求
Pinia 3.x 状态管理
Vue Router 4.x 路由管理
XLSX 0.18.x Excel解析

7.2 后端技术栈

技术 版本 用途
Spring Boot 3.3.x 应用框架
Spring Security 6.x 安全框架
MyBatis Plus 3.5.x ORM框架
EasyExcel 4.x Excel处理
Hutool 5.x 工具库
JDK 17+ 运行环境

7.3 组件划分

前端组件:

src/views/student/
├── index.vue                      # 学生管理主页面
├── components/
│   ├── StudentDialog.vue          # 新增/编辑学生弹窗
│   ├── ImportDialog.vue           # 批量导入弹窗
│   └── SchoolTree.vue             # 学校树组件(可复用)
src/api/
└── student.js                     # 学生管理API
src/mock/
└── student.js                     # Mock数据

后端组件:

pangu-admin/
└── controller/
    └── StudentController.java     # 学生管理控制器
pangu-system/
├── domain/
│   ├── Student.java               # 学生实体
│   ├── dto/
│   │   ├── StudentDTO.java        # 学生DTO
│   │   └── StudentImportDTO.java  # 导入DTO
│   └── vo/
│       └── StudentVO.java         # 学生VO
├── mapper/
│   └── StudentMapper.java         # 学生Mapper
├── service/
│   ├── IStudentService.java       # 学生服务接口
│   └── impl/
│       └── StudentServiceImpl.java# 学生服务实现
└── listener/
    └── StudentImportListener.java # Excel导入监听器

8. 开发计划

8.1 里程碑

阶段 任务 交付物
第一阶段 基础功能开发 列表查询、新增、编辑、删除
第二阶段 批量导入开发 模板下载、Excel导入、数据校验
第三阶段 联调测试 前后端联调、功能测试
第四阶段 验收交付 文档完善、验收评审

8.2 任务分解

第一阶段:基础功能开发

序号 任务 负责端 依赖
1.1 创建学生表、初始化数据 后端
1.2 学生服务层开发CRUD 后端 1.1
1.3 学生Controller开发 后端 1.2
1.4 学生列表页面开发 前端 Mock数据
1.5 学校树组件开发 前端 Mock数据
1.6 新增/编辑弹窗开发 前端 Mock数据

第二阶段:批量导入开发

序号 任务 负责端 依赖
2.1 导入模板生成 后端
2.2 Excel解析与校验 后端 2.1
2.3 会员自动创建逻辑 后端 2.2
2.4 批量保存与事务处理 后端 2.3
2.5 导入弹窗开发 前端 Mock数据
2.6 导入结果展示 前端 2.5

第三阶段:联调测试

序号 任务 负责人 依赖
3.1 前后端接口联调 前端+后端 1.x, 2.x
3.2 功能测试 测试 3.1
3.3 Bug修复 前端+后端 3.2
3.4 回归测试 测试 3.3

9. 风险分析

9.1 技术风险

风险项 风险等级 影响 应对措施
Excel大文件导入性能 导入超时 使用EasyExcel流式读取分批处理
批量导入数据校验复杂 校验不完整 设计完善的校验规则,编写单元测试
学校树数据量大 页面加载慢 使用懒加载,按需加载子节点
并发导入冲突 数据重复 使用乐观锁,学号唯一索引

9.2 业务风险

风险项 风险等级 影响 应对措施
导入模板格式变更 用户导入失败 模板版本控制,兼容处理
会员自动创建失败 学生无法关联 事务回滚,返回详细错误
数据权限配置错误 数据泄露 完善权限测试用例

10. 验收标准

10.1 功能验收

验收项 验收标准
学生列表查询 支持多条件筛选,分页正确,学校树筛选有效
新增学生 必填校验正确,学号唯一性校验,关联数据正确
编辑学生 数据回显正确,修改保存成功
删除学生 确认提示,软删除,列表刷新
批量导入 模板下载正确Excel解析正确校验完整会员自动创建
数据权限 三种角色权限控制正确

10.2 性能验收

验收项 验收标准
列表查询 响应时间 ≤ 500ms
学校树加载 首次加载 ≤ 1s
批量导入 1000条数据 ≤ 30s
单条保存 响应时间 ≤ 200ms

10.3 质量验收

验收项 验收标准
代码规范 符合团队编码规范
单元测试 核心业务覆盖率 ≥ 80%
接口文档 Swagger文档完整
日志记录 关键操作有审计日志

审核签字

角色 姓名 日期 签字
技术负责人
产品负责人
测试负责人
项目经理

文档结束