diff --git a/docs/01-需求文档/需求规格说明书_v1.0.md b/docs/01-需求文档/需求规格说明书_v1.0.md
index e2e3630..ed4cbd8 100644
--- a/docs/01-需求文档/需求规格说明书_v1.0.md
+++ b/docs/01-需求文档/需求规格说明书_v1.0.md
@@ -18,6 +18,7 @@
| 版本 | 日期 | 修订人 | 修订内容 |
| ---- | ---------- | ----- | ---- |
| V1.0 | 2026-01-31 | pangu | 初稿 |
+| V1.1 | 2026-02-03 | pangu | 更新会员多教育身份模型、微信扫码登录流程 |
---
@@ -193,6 +194,8 @@
| 家长 | 通过小程序/H5注册的家长用户 | 可绑定多个学生(不限学校) |
| 教师 | 通过小程序/H5注册的教师用户 | 需绑定所属学校,只能绑定本校学生 |
+> **多教育身份说明**:一个会员可以同时拥有多个教育身份(如在多个班级任教),每个教育身份独立包含学校、年级、班级、学科信息。会员首次绑定学生时,如无教育身份则默认设为"家长"身份。
+
---
## 4. 功能需求
@@ -269,17 +272,18 @@
| 规则编号 | 规则描述 |
| ------- | ---------------------------- |
-| MEM-R01 | 会员编号由系统自动生成,格式:JS + 时间戳 |
-| MEM-R02 | 昵称未填写时,系统自动生成默认昵称 |
+| MEM-R01 | 会员编号由系统自动生成,格式:M + 时间戳 |
+| MEM-R02 | 昵称未填写时,系统自动生成默认昵称(user_手机号后4位)|
| MEM-R03 | 手机号为必填项,需验证格式有效性和唯一性 |
| MEM-R04 | 出生日期和性别为选填项 |
-| MEM-R05 | 身份类型为"教师"时,必须选择所属区域/学校/年级/班级 |
-| MEM-R06 | 身份类型为"教师"时,只能绑定同校学生 |
-| MEM-R07 | 身份类型为"家长"时,不显示区域信息,可绑定任意学生 |
+| MEM-R05 | 会员可添加多个教育身份,每个教育身份包含学校/年级/班级/学科 |
+| MEM-R06 | 有教育身份的会员绑定学生时,校验学生学校与教育身份学校一致 |
+| MEM-R07 | 无教育身份的会员可绑定任意学校的学生,首次绑定后默认设为"家长"身份 |
| MEM-R08 | 删除会员前需检查是否绑定学生,有则不允许删除 |
| MEM-R09 | 重置密码后,需弹窗显示新密码并提供复制功能 |
| MEM-R10 | 禁用会员后,该用户无法登录任何端 |
-| MEM-R11 | 使用RuoYi鉴权体系,区分后台用户和会员信息 |
+| MEM-R11 | 使用Sa-Token鉴权体系,区分后台用户和会员信息 |
+| MEM-R12 | 会员可设置一个默认教育身份,用于业务默认展示 |
#### 4.2.4 登录方式支持
@@ -287,7 +291,13 @@
| --------- | ----------------- |
| 手机号 + 验证码 | 发送短信验证码登录 |
| 手机号 + 密码 | 使用账号密码登录 |
-| 微信登录 | 通过微信授权登录,获取openId |
+| 微信扫码登录 | 扫描二维码授权登录,首次需绑定手机号 |
+
+> **微信扫码登录流程**:
+> 1. 用户点击微信登录,获取二维码
+> 2. 用户使用微信扫码确认
+> 3. 如已绑定手机号,直接登录成功
+> 4. 如未绑定手机号,需输入手机号和短信验证码完成绑定后登录
#### 4.2.5 数据项说明
@@ -298,18 +308,26 @@
| 会员编号 | 文本 | ✓ | 系统自动生成,唯一 |
| 手机号 | 文本 | ✓ | 11位手机号,唯一 |
| 昵称 | 文本 | - | 最大长度50字符 |
+| 头像 | URL | - | 头像图片地址 |
| 性别 | 枚举 | - | 男/女/未知 |
| 出生日期 | 日期 | - | 格式:YYYY-MM-DD |
-| 身份类型 | 枚举 | ✓ | 家长/教师 |
-| 所属区域 | 树形选择 | 条件必填 | 教师身份必填 |
-| 所属学校 | 下拉选择 | 条件必填 | 教师身份必填 |
-| 所属年级 | 下拉选择 | 条件必填 | 教师身份必填 |
-| 所属班级 | 下拉选择 | 条件必填 | 教师身份必填 |
| openId | 文本 | - | 微信用户标识 |
| 注册时间 | 日期时间 | - | 系统自动记录 |
| 注册来源 | 枚举 | - | 小程序/H5/后台新增 |
| 状态 | 开关 | ✓ | 启用/禁用 |
+**教育身份信息(多条)**
+
+| 字段名称 | 字段类型 | 必填 | 说明 |
+| ------ | ---- |:----:| ----------- |
+| 教育身份ID | 数字 | ✓ | 系统自动生成 |
+| 所属区域 | 树形选择 | ✓ | 省-市-区三级 |
+| 所属学校 | 下拉选择 | ✓ | 依赖区域 |
+| 所属年级 | 下拉选择 | ✓ | 依赖学校 |
+| 所属班级 | 下拉选择 | ✓ | 依赖年级 |
+| 任教学科 | 下拉选择 | ✓ | 学科列表 |
+| 是否默认 | 布尔 | ✓ | 默认教育身份 |
+
---
### 4.3 学生管理模块
@@ -619,8 +637,9 @@
| **参与者** | 会员(家长/教师) |
| **前置条件** | 用户已注册账号 |
| **后置条件** | 用户成功登录,获取访问Token |
-| **基本流程** | 1. 用户打开登录页面
2. 用户选择登录方式(验证码/密码/微信)
3. 用户输入登录信息
4. 系统验证登录信息
5. 验证通过,生成Token并返回
6. 跳转到首页 |
+| **基本流程** | 1. 用户打开登录页面
2. 用户选择登录方式(验证码/密码/微信扫码)
3. 用户输入登录信息或扫描二维码
4. 系统验证登录信息
5. 验证通过,生成Token并返回
6. 跳转到首页 |
| **异常流程** | 3a. 手机号格式错误,提示"请输入正确的手机号"
4a. 验证码错误,提示"验证码错误"
4b. 密码错误,提示"密码错误"
4c. 密码错误5次,锁定账号10分钟
4d. 账号被禁用,提示"账号已被禁用" |
+| **微信扫码流程** | 1. 用户点击微信登录
2. 系统生成二维码并展示
3. 用户使用微信扫码确认
4a. 已绑定手机号,直接登录成功
4b. 未绑定手机号,进入绑定流程
5. 用户输入手机号和短信验证码
6. 绑定成功并登录 |
### 6.2 UC-002 批量导入学生
@@ -792,8 +811,8 @@
| 7 | 昵称未填写时,自动生成 |
| 8 | 会员编号自动生成 |
| 9 | 出生日期和性别选填 |
-| 10 | 身份信息为老师时,需要选择对应的区域/学校/年级/班级,学生信息从学生管理的数据中选择绑定,只允许选择与老师所属学校一样的学生 |
-| 11 | 身份信息为家长时,不显示区域/学校/年级/班级,学生允许随便选择 |
+| 10 | 会员可添加多个教育身份(教师身份),每个教育身份需选择区域/学校/年级/班级/学科,绑定学生时校验学校一致性 |
+| 11 | 无教育身份的会员可绑定任意学校的学生,首次绑定后默认设为"家长"身份 |
**示例数据:**
- 会员编号:JS123123123
diff --git a/docs/02-技术方案/H5会员接口需求与技术方案.md b/docs/02-技术方案/H5会员接口需求与技术方案.md
index 7a15634..95087a6 100644
--- a/docs/02-技术方案/H5会员接口需求与技术方案.md
+++ b/docs/02-技术方案/H5会员接口需求与技术方案.md
@@ -2,7 +2,8 @@
> 作者:pangu
> 创建时间:2026-02-02
-> 版本:v1.1
+> 更新时间:2026-02-04
+> 版本:v1.2
---
@@ -57,6 +58,51 @@
|------|------|
| **接口** | `POST /h5/auth/logout` |
+#### 2.1.7 微信扫码登录
+
+##### 2.1.7.1 获取微信扫码登录二维码
+| 项目 | 说明 |
+|------|------|
+| **接口** | `GET /h5/auth/wechat/qrcode` |
+| **返回** | qrcodeUrl(二维码URL)、ticket(二维码凭证)、expireSeconds(有效期秒数) |
+| **有效期** | 默认5分钟 |
+
+##### 2.1.7.2 查询微信扫码状态
+| 项目 | 说明 |
+|------|------|
+| **接口** | `GET /h5/auth/wechat/status/{ticket}` |
+| **返回** | status(waiting/scanned/confirmed/expired)、tempCode(确认后返回) |
+| **轮询建议** | 每2秒查询一次 |
+
+##### 2.1.7.3 微信扫码登录
+| 项目 | 说明 |
+|------|------|
+| **接口** | `POST /h5/auth/wechat/login` |
+| **请求参数** | ticket(二维码凭证)、tempCode(临时登录码) |
+| **返回** | needBindPhone=false时返回Token;needBindPhone=true时返回bindToken需绑定手机号 |
+
+##### 2.1.7.4 发送微信绑定手机号短信验证码
+| 项目 | 说明 |
+|------|------|
+| **接口** | `POST /h5/auth/wechat/sms/send` |
+| **请求参数** | phone(手机号)、captchaCode(图形验证码)、uuid |
+| **业务场景** | 微信首次登录时绑定手机号 |
+
+##### 2.1.7.5 微信登录绑定手机号
+| 项目 | 说明 |
+|------|------|
+| **接口** | `POST /h5/auth/wechat/bindPhone` |
+| **请求参数** | bindToken、phone、smsCode、captchaCode、uuid |
+| **业务逻辑** | 手机号已存在则绑定到现有账号,否则创建新会员 |
+| **返回** | accessToken、refreshToken |
+
+##### 2.1.7.6 微信回调处理
+| 项目 | 说明 |
+|------|------|
+| **接口** | `GET /h5/auth/wechat/callback` |
+| **请求参数** | code(微信授权码)、state(即ticket) |
+| **业务场景** | 前端回调页面收到微信code后调用 |
+
---
### 2.2 注册模块
@@ -84,7 +130,7 @@
| 项目 | 说明 |
|------|------|
| **接口** | `GET /h5/member/info` |
-| **返回** | memberId、phone(脱敏)、nickname、avatar、gender、birthday、registerTime、identityType、教育信息、绑定学生列表 |
+| **返回** | memberId、memberCode、phone(脱敏)、nickname、avatar、gender、birthday、registerTime、educations(教育身份列表)、students(绑定学生列表) |
#### 2.3.2 修改会员基本信息
| 项目 | 说明 |
@@ -106,25 +152,41 @@
---
-### 2.5 教育身份管理(教师身份)
+### 2.5 教育身份管理(多教育身份)
-#### 2.5.1 添加/修改教育身份
+> **设计说明**:一个会员可以有多个教育身份(如同时在多个班级任教),每个教育身份独立管理。
+
+#### 2.5.1 添加教育身份
| 项目 | 说明 |
|------|------|
-| **接口** | `POST /h5/member/education` |
+| **接口** | `POST /h5/member/educations` |
| **请求参数** | schoolId(学校)、schoolGradeId(年级)、schoolClassId(班级)、subjectId(学科) |
-| **业务逻辑** | 设置会员身份为"教师",关联学校班级学科信息 |
+| **业务逻辑** | 添加一条教育身份记录,支持多条 |
-#### 2.5.2 获取教育身份信息
+#### 2.5.2 获取教育身份列表
| 项目 | 说明 |
|------|------|
-| **接口** | `GET /h5/member/education` |
-| **返回** | 学校、年级、班级、学科名称及ID |
+| **接口** | `GET /h5/member/educations` |
+| **返回** | 教育身份列表(每条包含:educationId、学校、年级、班级、学科名称及ID、是否默认) |
-#### 2.5.3 删除教育身份
+#### 2.5.3 修改教育身份
| 项目 | 说明 |
|------|------|
-| **接口** | `DELETE /h5/member/education` |
+| **接口** | `PUT /h5/member/educations/{educationId}` |
+| **请求参数** | schoolId(学校)、schoolGradeId(年级)、schoolClassId(班级)、subjectId(学科) |
+| **业务逻辑** | 修改指定教育身份的信息 |
+
+#### 2.5.4 删除教育身份
+| 项目 | 说明 |
+|------|------|
+| **接口** | `DELETE /h5/member/educations/{educationId}` |
+| **业务逻辑** | 删除指定的教育身份记录 |
+
+#### 2.5.5 设置默认教育身份
+| 项目 | 说明 |
+|------|------|
+| **接口** | `PUT /h5/member/educations/{educationId}/default` |
+| **业务逻辑** | 将指定教育身份设为默认,其他教育身份自动取消默认状态 |
---
@@ -168,7 +230,19 @@
---
-### 2.8 接口规范
+### 2.8 操作日志
+
+#### 2.8.1 获取操作日志列表
+| 项目 | 说明 |
+|------|------|
+| **接口** | `GET /h5/member/logs` |
+| **请求参数** | pageNum(页码,默认1)、pageSize(每页条数,默认10) |
+| **返回** | 分页的操作日志列表(操作类型、操作内容、操作时间、IP地址等) |
+| **业务场景** | 用户查看自己的操作记录 |
+
+---
+
+### 2.9 接口规范
| 规范项 | 说明 |
|------|------|
@@ -187,18 +261,18 @@
在 `pangu-business` 模块下新建 `h5` 包:
```
-backend/ruoyi-modules/pangu-business/src/main/java/org/dromara/pangu/
+backend/pangu-modules/pangu-business/src/main/java/org/dromara/pangu/
├── h5/ # H5接口模块
│ ├── config/
│ │ └── H5SmsProperties.java # 短信防刷配置类
│ ├── controller/
-│ │ ├── H5AuthController.java # 认证接口
-│ │ ├── H5MemberController.java # 会员信息接口
+│ │ ├── H5AuthController.java # 认证接口(含微信登录)
+│ │ ├── H5MemberController.java # 会员信息接口(含多教育身份)
│ │ └── H5BaseDataController.java # 基础数据接口
│ ├── service/
│ │ ├── H5AuthService.java # 认证服务接口
│ │ ├── impl/
-│ │ │ └── H5AuthServiceImpl.java # 认证服务实现
+│ │ │ └── H5AuthServiceImpl.java # 认证服务实现(含微信登录)
│ │ ├── H5MemberService.java # 会员服务接口
│ │ └── impl/
│ │ └── H5MemberServiceImpl.java # 会员服务实现
@@ -211,13 +285,19 @@ backend/ruoyi-modules/pangu-business/src/main/java/org/dromara/pangu/
│ │ ├── H5MemberUpdateDto.java # 会员信息修改
│ │ ├── H5PasswordUpdateDto.java # 密码修改
│ │ ├── H5EducationDto.java # 教育身份
-│ │ └── H5StudentBindDto.java # 绑定学生
+│ │ ├── H5StudentBindDto.java # 绑定学生
+│ │ ├── WechatLoginDto.java # 微信登录
+│ │ └── WechatBindPhoneDto.java # 微信绑定手机号
│ └── vo/ # 响应VO
│ ├── H5LoginVo.java # 登录响应
│ ├── H5CaptchaVo.java # 验证码响应
-│ ├── H5MemberInfoVo.java # 会员信息
+│ ├── H5MemberInfoVo.java # 会员信息(含教育身份列表)
│ ├── H5EducationVo.java # 教育身份
-│ └── H5StudentVo.java # 学生信息
+│ ├── H5StudentVo.java # 学生信息
+│ ├── H5MemberLogVo.java # 操作日志
+│ ├── WechatQrcodeVo.java # 微信二维码
+│ ├── WechatStatusVo.java # 微信扫码状态
+│ └── WechatLoginVo.java # 微信登录响应
```
### 3.2 接口路径规划
@@ -225,7 +305,11 @@ backend/ruoyi-modules/pangu-business/src/main/java/org/dromara/pangu/
| 模块 | 路径前缀 | 认证要求 |
|------|---------|---------|
| 认证接口 | `/h5/auth/*` | 无需认证 |
+| 微信登录 | `/h5/auth/wechat/*` | 无需认证 |
| 会员接口 | `/h5/member/*` | 需要Token |
+| 教育身份 | `/h5/member/educations/*` | 需要Token |
+| 学生管理 | `/h5/member/student/*` | 需要Token |
+| 操作日志 | `/h5/member/logs` | 需要Token |
| 基础数据 | `/h5/base/*` | 无需认证 |
### 3.3 认证方案(Sa-Token)
@@ -383,14 +467,15 @@ H5 Service(新建)
| 序号 | 内容 | 文件 |
|------|------|------|
-| 1 | DTO类 | H5PasswordLoginDto, H5SmsLoginDto, H5RegisterDto, H5SmsSendDto, H5MemberUpdateDto, H5PasswordUpdateDto, H5EducationDto, H5StudentBindDto |
-| 2 | VO类 | H5LoginVo, H5CaptchaVo, H5MemberInfoVo, H5EducationVo, H5StudentVo |
-| 3 | 认证服务 | H5AuthService, H5AuthServiceImpl |
-| 4 | 会员服务 | H5MemberService, H5MemberServiceImpl |
-| 5 | Controller | H5AuthController, H5MemberController, H5BaseDataController |
+| 1 | DTO类 | H5PasswordLoginDto, H5SmsLoginDto, H5RegisterDto, H5SmsSendDto, H5MemberUpdateDto, H5PasswordUpdateDto, H5EducationDto, H5StudentBindDto, WechatLoginDto, WechatBindPhoneDto |
+| 2 | VO类 | H5LoginVo, H5CaptchaVo, H5MemberInfoVo, H5EducationVo, H5StudentVo, H5MemberLogVo, WechatQrcodeVo, WechatStatusVo, WechatLoginVo |
+| 3 | 认证服务 | H5AuthService, H5AuthServiceImpl(含微信登录) |
+| 4 | 会员服务 | H5MemberService, H5MemberServiceImpl(含多教育身份、操作日志) |
+| 5 | Controller | H5AuthController(含微信登录), H5MemberController(含多教育身份), H5BaseDataController |
| 6 | 安全配置 | SecurityConfig(添加放行规则) |
| 7 | 短信配置 | application-dev.yml |
+| 8 | 微信配置 | 微信开放平台AppID、AppSecret配置 |
---
-*最后更新: 2026-02-02*
+*最后更新: 2026-02-03*
diff --git a/docs/接口清单.md b/docs/接口清单.md
new file mode 100644
index 0000000..010b82a
--- /dev/null
+++ b/docs/接口清单.md
@@ -0,0 +1,394 @@
+# 盘古用户认证中心 - 接口清单
+
+> 本文档列出系统所有接口的地址和说明
+> 作者: pangu
+> 更新日期: 2026-02-03
+
+---
+
+## 一、H5端接口
+
+### 1.1 H5认证接口
+
+| 接口说明 | 请求方式 | 接口地址 |
+| -------------- | ------ | ---------------------------------- |
+| 获取图形验证码 | GET | `/h5/auth/captcha` |
+| 发送短信验证码 | POST | `/h5/auth/sms/send` |
+| 密码登录 | POST | `/h5/auth/login/password` |
+| 短信验证码登录 | POST | `/h5/auth/login/sms` |
+| 会员注册 | POST | `/h5/auth/register` |
+| 刷新Token | POST | `/h5/auth/refresh` |
+| 退出登录 | POST | `/h5/auth/logout` |
+| 获取微信扫码登录二维码 | GET | `/h5/auth/wechat/qrcode` |
+| 查询微信扫码状态 | GET | `/h5/auth/wechat/status/{ticket}` |
+| 微信扫码登录 | POST | `/h5/auth/wechat/login` |
+| 发送微信绑定手机号短信验证码 | POST | `/h5/auth/wechat/sms/send` |
+| 微信登录绑定手机号 | POST | `/h5/auth/wechat/bindPhone` |
+| 微信回调处理 | GET | `/h5/auth/wechat/callback` |
+| 清除短信限制(调试用) | DELETE | `/h5/auth/debug/sms-limit/{phone}` |
+
+### 1.2 H5会员接口
+
+| 接口说明 | 请求方式 | 接口地址 |
+| --------- | ------ | --------------------------------------------- |
+| 获取当前会员信息 | GET | `/h5/member/info` |
+| 修改会员基本信息 | PUT | `/h5/member/info` |
+| 修改登录密码 | PUT | `/h5/member/password` |
+| 添加教育身份 | POST | `/h5/member/educations` |
+| 获取教育身份列表 | GET | `/h5/member/educations` |
+| 修改教育身份 | PUT | `/h5/member/educations/{educationId}` |
+| 删除教育身份 | DELETE | `/h5/member/educations/{educationId}` |
+| 设置默认教育身份 | PUT | `/h5/member/educations/{educationId}/default` |
+| 绑定学生 | POST | `/h5/member/student` |
+| 获取绑定的学生列表 | GET | `/h5/member/students` |
+| 修改学生信息 | PUT | `/h5/member/student/{studentId}` |
+| 解绑学生 | DELETE | `/h5/member/student/{studentId}` |
+| 获取操作日志列表 | GET | `/h5/member/logs` |
+
+### 1.3 H5基础数据接口
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ---- | ------------------- |
+| 获取区域树 | GET | `/h5/base/regions` |
+| 根据区域获取学校列表 | GET | `/h5/base/schools` |
+| 根据学校获取年级列表 | GET | `/h5/base/grades` |
+| 根据年级获取班级列表 | GET | `/h5/base/classes` |
+| 获取学科列表 | GET | `/h5/base/subjects` |
+
+---
+
+## 二、管理后台接口
+
+### 2.1 认证接口
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | ------------------------- |
+| 获取图形验证码 | GET | `/auth/code` |
+| 管理后台登录 | POST | `/auth/login` |
+| 退出登录 | POST | `/auth/logout` |
+| 用户注册 | POST | `/auth/register` |
+| 获取第三方登录跳转URL | GET | `/auth/binding/{source}` |
+| 前端回调绑定授权 | POST | `/auth/social/callback` |
+| 取消第三方授权 | DELETE | `/auth/unlock/{socialId}` |
+| 获取租户列表 | GET | `/auth/tenant/list` |
+
+### 2.2 验证码接口
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------- | ---- | ---------------------- |
+| 发送短信验证码 | GET | `/resource/sms/code` |
+| 发送邮箱验证码 | GET | `/resource/email/code` |
+
+---
+
+## 三、业务管理接口
+
+### 3.1 会员管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | -------------------------------------------------------------- |
+| 查询会员列表 | GET | `/business/member/list` |
+| 获取会员详情 | GET | `/business/member/{memberId}` |
+| 新增会员 | POST | `/business/member` |
+| 修改会员 | PUT | `/business/member` |
+| 删除会员 | DELETE | `/business/member/{memberIds}` |
+| 重置会员密码 | PUT | `/business/member/resetPwd/{memberId}` |
+| 修改会员状态 | PUT | `/business/member/changeStatus` |
+| 检查手机号是否唯一 | GET | `/business/member/checkPhoneUnique` |
+| 获取会员已绑定的学生列表 | GET | `/business/member/{memberId}/students` |
+| 批量绑定学生到会员 | POST | `/business/member/{memberId}/bindStudents` |
+| 解绑学生 | POST | `/business/member/{memberId}/unbindStudent/{studentId}` |
+| 获取会员教育身份列表 | GET | `/business/member/{memberId}/educations` |
+| 添加教育身份 | POST | `/business/member/{memberId}/educations` |
+| 修改教育身份 | PUT | `/business/member/{memberId}/educations/{educationId}` |
+| 删除教育身份 | DELETE | `/business/member/{memberId}/educations/{educationId}` |
+| 设置默认教育身份 | PUT | `/business/member/{memberId}/educations/{educationId}/default` |
+
+### 3.2 学生管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | --------------------------------------- |
+| 查询学生列表 | GET | `/business/student/list` |
+| 获取学校树结构 | GET | `/business/student/schoolTree` |
+| 获取学生详情 | GET | `/business/student/{studentId}` |
+| 新增学生 | POST | `/business/student` |
+| 修改学生 | PUT | `/business/student` |
+| 删除学生 | DELETE | `/business/student/{studentIds}` |
+| 查询可绑定的学生列表 | GET | `/business/student/available` |
+| 查询会员已绑定的学生列表 | GET | `/business/student/byMember/{memberId}` |
+| 下载学生导入模板 | GET | `/business/student/template` |
+| 批量导入学生 | POST | `/business/student/import` |
+
+### 3.3 学校管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | ------------------------------------------------ |
+| 查询学校列表(分页) | GET | `/business/school/list` |
+| 查询学校列表(全部) | GET | `/business/school/listAll` |
+| 获取学校树形结构 | GET | `/business/school/tree` |
+| 获取学校详情 | GET | `/business/school/{schoolId}` |
+| 新增学校 | POST | `/business/school` |
+| 修改学校 | PUT | `/business/school` |
+| 删除学校 | DELETE | `/business/school/{schoolIds}` |
+| 获取学校的年级列表 | GET | `/business/school/{schoolId}/grades` |
+| 获取年级下的班级列表 | GET | `/business/school/grade/{schoolGradeId}/classes` |
+| 为学校添加年级 | POST | `/business/school/grade` |
+| 为年级添加班级 | POST | `/business/school/class` |
+| 删除学校下的年级 | DELETE | `/business/school/grade/{schoolGradeId}` |
+| 删除年级下的班级 | DELETE | `/business/school/class/{schoolClassId}` |
+
+### 3.4 区域管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------- | ------ | -------------------------------------- |
+| 查询区域列表 | GET | `/business/region/list` |
+| 获取区域树 | GET | `/business/region/tree` |
+| 获取子区域列表 | GET | `/business/region/children/{parentId}` |
+| 获取区域详情 | GET | `/business/region/{regionId}` |
+| 获取区域路径 | GET | `/business/region/{regionId}/path` |
+| 新增区域 | POST | `/business/region` |
+| 修改区域 | PUT | `/business/region` |
+| 删除区域 | DELETE | `/business/region/{regionIds}` |
+
+### 3.5 年级管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | ---------------------------- |
+| 查询年级列表(分页) | GET | `/business/grade/list` |
+| 查询年级列表(全部) | GET | `/business/grade/listAll` |
+| 获取年级详情 | GET | `/business/grade/{gradeId}` |
+| 新增年级 | POST | `/business/grade` |
+| 修改年级 | PUT | `/business/grade` |
+| 删除年级 | DELETE | `/business/grade/{gradeIds}` |
+
+### 3.6 班级管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | ---------------------------- |
+| 查询班级列表(分页) | GET | `/business/class/list` |
+| 查询班级列表(全部) | GET | `/business/class/listAll` |
+| 获取班级详情 | GET | `/business/class/{classId}` |
+| 新增班级 | POST | `/business/class` |
+| 修改班级 | PUT | `/business/class` |
+| 删除班级 | DELETE | `/business/class/{classIds}` |
+
+### 3.7 学科管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | -------------------------------- |
+| 查询学科列表(分页) | GET | `/business/subject/list` |
+| 查询学科列表(全部) | GET | `/business/subject/listAll` |
+| 获取学科详情 | GET | `/business/subject/{subjectId}` |
+| 新增学科 | POST | `/business/subject` |
+| 修改学科 | PUT | `/business/subject` |
+| 删除学科 | DELETE | `/business/subject/{subjectIds}` |
+
+### 3.8 第三方应用管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| --------- | ------ | ------------------------------------------- |
+| 查询应用列表 | GET | `/business/application/list` |
+| 获取应用详情 | GET | `/business/application/{appId}` |
+| 新增应用 | POST | `/business/application` |
+| 修改应用 | PUT | `/business/application` |
+| 删除应用 | DELETE | `/business/application/{appIds}` |
+| 重置应用密钥 | PUT | `/business/application/resetSecret/{appId}` |
+| 获取API接口列表 | GET | `/business/application/apiList` |
+
+---
+
+## 四、系统管理接口
+
+### 4.1 用户管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | --------------------------------- |
+| 获取用户列表 | GET | `/system/user/list` |
+| 导出用户列表 | POST | `/system/user/export` |
+| 导入用户数据 | POST | `/system/user/importData` |
+| 获取导入模板 | POST | `/system/user/importTemplate` |
+| 获取当前登录用户信息 | GET | `/system/user/getInfo` |
+| 获取用户详情 | GET | `/system/user/{userId}` |
+| 新增用户 | POST | `/system/user` |
+| 修改用户 | PUT | `/system/user` |
+| 删除用户 | DELETE | `/system/user/{userIds}` |
+| 批量获取用户基础信息 | GET | `/system/user/optionselect` |
+| 重置用户密码 | PUT | `/system/user/resetPwd` |
+| 修改用户状态 | PUT | `/system/user/changeStatus` |
+| 获取用户授权角色 | GET | `/system/user/authRole/{userId}` |
+| 用户授权角色 | PUT | `/system/user/authRole` |
+| 获取部门树列表 | GET | `/system/user/deptTree` |
+| 获取部门下的所有用户 | GET | `/system/user/list/dept/{deptId}` |
+
+### 4.2 角色管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| --------- | ------ | --------------------------------------- |
+| 获取角色列表 | GET | `/system/role/list` |
+| 导出角色列表 | POST | `/system/role/export` |
+| 获取角色详情 | GET | `/system/role/{roleId}` |
+| 新增角色 | POST | `/system/role` |
+| 修改角色 | PUT | `/system/role` |
+| 修改数据权限 | PUT | `/system/role/dataScope` |
+| 修改角色状态 | PUT | `/system/role/changeStatus` |
+| 删除角色 | DELETE | `/system/role/{roleIds}` |
+| 获取角色选择框列表 | GET | `/system/role/optionselect` |
+| 查询已分配用户列表 | GET | `/system/role/authUser/allocatedList` |
+| 查询未分配用户列表 | GET | `/system/role/authUser/unallocatedList` |
+| 取消授权用户 | PUT | `/system/role/authUser/cancel` |
+| 批量取消授权用户 | PUT | `/system/role/authUser/cancelAll` |
+| 批量选择用户授权 | PUT | `/system/role/authUser/selectAll` |
+| 获取角色部门树列表 | GET | `/system/role/deptTree/{roleId}` |
+
+### 4.3 部门管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | ------------------------------------ |
+| 获取部门列表 | GET | `/system/dept/list` |
+| 查询部门列表(排除节点) | GET | `/system/dept/list/exclude/{deptId}` |
+| 获取部门详情 | GET | `/system/dept/{deptId}` |
+| 新增部门 | POST | `/system/dept` |
+| 修改部门 | PUT | `/system/dept` |
+| 删除部门 | DELETE | `/system/dept/{deptId}` |
+| 获取部门选择框列表 | GET | `/system/dept/optionselect` |
+
+### 4.4 菜单管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ----------- | ------ | ------------------------------------------------------ |
+| 获取路由信息 | GET | `/system/menu/getRouters` |
+| 获取菜单列表 | GET | `/system/menu/list` |
+| 获取菜单详情 | GET | `/system/menu/{menuId}` |
+| 获取菜单下拉树列表 | GET | `/system/menu/treeselect` |
+| 加载角色菜单列表树 | GET | `/system/menu/roleMenuTreeselect/{roleId}` |
+| 加载租户套餐菜单列表树 | GET | `/system/menu/tenantPackageMenuTreeselect/{packageId}` |
+| 新增菜单 | POST | `/system/menu` |
+| 修改菜单 | PUT | `/system/menu` |
+| 删除菜单 | DELETE | `/system/menu/{menuId}` |
+| 批量级联删除菜单 | DELETE | `/system/menu/cascade/{menuIds}` |
+
+### 4.5 字典类型管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| --------- | ------ | -------------------------------- |
+| 查询字典类型列表 | GET | `/system/dict/type/list` |
+| 导出字典类型列表 | POST | `/system/dict/type/export` |
+| 获取字典类型详情 | GET | `/system/dict/type/{dictId}` |
+| 新增字典类型 | POST | `/system/dict/type` |
+| 修改字典类型 | PUT | `/system/dict/type` |
+| 删除字典类型 | DELETE | `/system/dict/type/{dictIds}` |
+| 刷新字典缓存 | DELETE | `/system/dict/type/refreshCache` |
+| 获取字典选择框列表 | GET | `/system/dict/type/optionselect` |
+
+### 4.6 字典数据管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | ----------------------------------- |
+| 查询字典数据列表 | GET | `/system/dict/data/list` |
+| 导出字典数据列表 | POST | `/system/dict/data/export` |
+| 获取字典数据详情 | GET | `/system/dict/data/{dictCode}` |
+| 根据字典类型查询字典数据 | GET | `/system/dict/data/type/{dictType}` |
+| 新增字典数据 | POST | `/system/dict/data` |
+| 修改字典数据 | PUT | `/system/dict/data` |
+| 删除字典数据 | DELETE | `/system/dict/data/{dictCodes}` |
+
+### 4.7 岗位管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| --------- | ------ | --------------------------- |
+| 获取岗位列表 | GET | `/system/post/list` |
+| 导出岗位列表 | POST | `/system/post/export` |
+| 获取岗位详情 | GET | `/system/post/{postId}` |
+| 新增岗位 | POST | `/system/post` |
+| 修改岗位 | PUT | `/system/post` |
+| 删除岗位 | DELETE | `/system/post/{postIds}` |
+| 获取岗位选择框列表 | GET | `/system/post/optionselect` |
+| 获取部门树列表 | GET | `/system/post/deptTree` |
+
+### 4.8 参数配置管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ------------ | ------ | -------------------------------------- |
+| 获取参数配置列表 | GET | `/system/config/list` |
+| 导出参数配置列表 | POST | `/system/config/export` |
+| 获取参数配置详情 | GET | `/system/config/{configId}` |
+| 根据参数键名查询参数值 | GET | `/system/config/configKey/{configKey}` |
+| 新增参数配置 | POST | `/system/config` |
+| 修改参数配置 | PUT | `/system/config` |
+| 根据参数键名修改参数配置 | PUT | `/system/config/updateByKey` |
+| 删除参数配置 | DELETE | `/system/config/{configIds}` |
+| 刷新参数缓存 | DELETE | `/system/config/refreshCache` |
+
+### 4.9 通知公告管理
+
+| 接口说明 | 请求方式 | 接口地址 |
+| -------- | ------ | ---------------------------- |
+| 获取通知公告列表 | GET | `/system/notice/list` |
+| 获取通知公告详情 | GET | `/system/notice/{noticeId}` |
+| 新增通知公告 | POST | `/system/notice` |
+| 修改通知公告 | PUT | `/system/notice` |
+| 删除通知公告 | DELETE | `/system/notice/{noticeIds}` |
+
+---
+
+## 五、日志监控接口
+
+### 5.1 操作日志
+
+| 接口说明 | 请求方式 | 接口地址 |
+| -------- | ------ | ---------------------------- |
+| 获取操作日志列表 | GET | `/monitor/operlog/list` |
+| 导出操作日志列表 | POST | `/monitor/operlog/export` |
+| 删除操作日志 | DELETE | `/monitor/operlog/{operIds}` |
+| 清理操作日志 | DELETE | `/monitor/operlog/clean` |
+
+### 5.2 登录日志
+
+| 接口说明 | 请求方式 | 接口地址 |
+| -------- | ------ | --------------------------------------- |
+| 获取登录日志列表 | GET | `/monitor/logininfor/list` |
+| 导出登录日志列表 | POST | `/monitor/logininfor/export` |
+| 删除登录日志 | DELETE | `/monitor/logininfor/{infoIds}` |
+| 清理登录日志 | DELETE | `/monitor/logininfor/clean` |
+| 账户解锁 | GET | `/monitor/logininfor/unlock/{userName}` |
+
+### 5.3 在线用户
+
+| 接口说明 | 请求方式 | 接口地址 |
+| ---------- | ------ | ---------------------------------- |
+| 获取在线用户列表 | GET | `/monitor/online/list` |
+| 强退用户 | DELETE | `/monitor/online/{tokenId}` |
+| 获取当前用户登录设备 | GET | `/monitor/online` |
+| 强退当前在线设备 | DELETE | `/monitor/online/myself/{tokenId}` |
+
+---
+
+## 六、接口统计
+
+| 模块 | 接口数量 |
+| -------- | -------- |
+| H5认证接口 | 14 |
+| H5会员接口 | 13 |
+| H5基础数据接口 | 5 |
+| 管理后台认证接口 | 10 |
+| 会员管理 | 16 |
+| 学生管理 | 10 |
+| 学校管理 | 13 |
+| 区域管理 | 8 |
+| 年级管理 | 6 |
+| 班级管理 | 6 |
+| 学科管理 | 6 |
+| 第三方应用管理 | 7 |
+| 用户管理 | 16 |
+| 角色管理 | 16 |
+| 部门管理 | 7 |
+| 菜单管理 | 10 |
+| 字典类型管理 | 8 |
+| 字典数据管理 | 7 |
+| 岗位管理 | 8 |
+| 参数配置管理 | 9 |
+| 通知公告管理 | 5 |
+| 操作日志 | 4 |
+| 登录日志 | 5 |
+| 在线用户 | 4 |
+| **总计** | **203*** |