2026-01-31 16:48:20 +08:00
|
|
|
|
# 盘古用户平台 - 接口设计文档
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
| 文档信息 | 内容 |
|
|
|
|
|
|
|---------|------|
|
|
|
|
|
|
| **文档版本** | V1.0 |
|
|
|
|
|
|
| **项目名称** | 盘古用户平台(Pangu User Platform) |
|
|
|
|
|
|
| **编写团队** | pangu |
|
|
|
|
|
|
| **创建日期** | 2026-01-31 |
|
|
|
|
|
|
| **接口基础路径** | `/api` (管理端) `/app` (移动端) `/open` (开放API) |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 接口规范
|
|
|
|
|
|
|
|
|
|
|
|
### 1.1 请求规范
|
|
|
|
|
|
|
|
|
|
|
|
**请求头(Header)**
|
|
|
|
|
|
|
|
|
|
|
|
| Header | 必填 | 说明 |
|
|
|
|
|
|
|--------|:----:|------|
|
|
|
|
|
|
| Authorization | 是 | Bearer {token},登录接口除外 |
|
|
|
|
|
|
| Content-Type | 是 | application/json |
|
|
|
|
|
|
|
|
|
|
|
|
**请求方法**
|
|
|
|
|
|
|
|
|
|
|
|
| 方法 | 用途 |
|
|
|
|
|
|
|-----|------|
|
|
|
|
|
|
| GET | 查询数据 |
|
|
|
|
|
|
| POST | 新增数据 |
|
|
|
|
|
|
| PUT | 修改数据 |
|
|
|
|
|
|
| DELETE | 删除数据 |
|
|
|
|
|
|
|
|
|
|
|
|
### 1.2 响应规范
|
|
|
|
|
|
|
|
|
|
|
|
**统一响应格式**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "操作成功",
|
|
|
|
|
|
"data": {}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**分页响应格式**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"total": 100,
|
|
|
|
|
|
"rows": []
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 1.3 错误码定义
|
|
|
|
|
|
|
|
|
|
|
|
| 错误码 | 说明 |
|
|
|
|
|
|
|-------|------|
|
|
|
|
|
|
| 200 | 成功 |
|
|
|
|
|
|
| 400 | 请求参数错误 |
|
|
|
|
|
|
| 401 | 未登录或Token过期 |
|
|
|
|
|
|
| 403 | 无权限访问 |
|
|
|
|
|
|
| 404 | 资源不存在 |
|
|
|
|
|
|
| 500 | 服务器内部错误 |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 认证接口
|
|
|
|
|
|
|
|
|
|
|
|
### 2.1 后台登录
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/login`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"username": "admin",
|
|
|
|
|
|
"password": "admin123",
|
|
|
|
|
|
"code": "1234",
|
|
|
|
|
|
"uuid": "xxx-xxx-xxx"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| username | string | 是 | 用户名 |
|
|
|
|
|
|
| password | string | 是 | 密码 |
|
|
|
|
|
|
| code | string | 是 | 验证码 |
|
|
|
|
|
|
| uuid | string | 是 | 验证码唯一标识 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "操作成功",
|
|
|
|
|
|
"token": "eyJhbGciOiJIUzUxMiJ9..."
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.2 获取验证码
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/captchaImage`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "操作成功",
|
|
|
|
|
|
"img": "data:image/png;base64,...",
|
|
|
|
|
|
"uuid": "xxx-xxx-xxx"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.3 会员登录(验证码)
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /app/login/sms`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"phone": "13812345678",
|
|
|
|
|
|
"code": "123456"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| phone | string | 是 | 手机号 |
|
|
|
|
|
|
| code | string | 是 | 短信验证码 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "登录成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"token": "eyJhbGciOiJIUzUxMiJ9...",
|
|
|
|
|
|
"memberId": 1,
|
|
|
|
|
|
"memberCode": "JS123456789",
|
|
|
|
|
|
"phone": "138****5678",
|
|
|
|
|
|
"nickname": "用户昵称",
|
|
|
|
|
|
"avatar": "https://...",
|
|
|
|
|
|
"identityType": "1"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.4 发送短信验证码
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /app/sms/send`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"phone": "13812345678",
|
|
|
|
|
|
"type": "login"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| phone | string | 是 | 手机号 |
|
|
|
|
|
|
| type | string | 是 | 验证码类型:login/register |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "验证码已发送"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.5 会员登录(密码)
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /app/login/password`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"phone": "13812345678",
|
|
|
|
|
|
"password": "123456"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.6 会员登录(微信)
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /app/login/wechat`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": "wx_login_code"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| code | string | 是 | 微信登录code |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 3. 学校管理接口
|
|
|
|
|
|
|
|
|
|
|
|
### 3.1 查询学校树
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/school/tree`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| regionId | long | 否 | 区域ID |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"data": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolCode": "SCH001",
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"regionPath": "湖北省-武汉市-武昌区",
|
|
|
|
|
|
"children": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": 1,
|
|
|
|
|
|
"gradeId": 7,
|
|
|
|
|
|
"gradeName": "七年级",
|
|
|
|
|
|
"children": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"id": 1,
|
|
|
|
|
|
"classId": 1,
|
|
|
|
|
|
"className": "1班"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.2 查询学校列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/school/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| schoolName | string | 否 | 学校名称(模糊查询)|
|
|
|
|
|
|
| regionId | long | 否 | 区域ID |
|
|
|
|
|
|
| status | string | 否 | 状态 |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"total": 100,
|
|
|
|
|
|
"rows": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolCode": "SCH001",
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"schoolType": "02",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"regionPath": "湖北省-武汉市-武昌区",
|
|
|
|
|
|
"status": "0",
|
|
|
|
|
|
"createTime": "2026-01-01 10:00:00",
|
|
|
|
|
|
"createBy": "admin"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.3 新增学校
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/school`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"schoolType": "02",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"address": "武昌区xxx路xxx号",
|
|
|
|
|
|
"contactPerson": "张老师",
|
|
|
|
|
|
"contactPhone": "13812345678",
|
|
|
|
|
|
"status": "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.4 修改学校
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/school`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"schoolType": "02",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"status": "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.5 删除学校
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/school/{schoolId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 3.6 为学校挂载年级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/school/bindGrades`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"gradeIds": [7, 8, 9]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3.7 为年级挂载班级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/school/bindClasses`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"schoolGradeId": 1,
|
|
|
|
|
|
"classIds": [1, 2, 3]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 4. 会员管理接口
|
|
|
|
|
|
|
|
|
|
|
|
### 4.1 查询会员列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/member/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| phone | string | 否 | 手机号 |
|
|
|
|
|
|
| nickname | string | 否 | 昵称 |
|
|
|
|
|
|
| identityType | string | 否 | 身份类型(1家长 2教师)|
|
|
|
|
|
|
| status | string | 否 | 状态 |
|
|
|
|
|
|
| beginTime | string | 否 | 注册开始时间 |
|
|
|
|
|
|
| endTime | string | 否 | 注册结束时间 |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"total": 100,
|
|
|
|
|
|
"rows": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"memberId": 1,
|
|
|
|
|
|
"memberCode": "JS123456789",
|
|
|
|
|
|
"phone": "138****5678",
|
|
|
|
|
|
"nickname": "用户昵称",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"birthday": "1990-01-01",
|
|
|
|
|
|
"identityType": "1",
|
|
|
|
|
|
"registerSource": "1",
|
|
|
|
|
|
"registerTime": "2026-01-01 10:00:00",
|
|
|
|
|
|
"status": "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.2 获取会员详情
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/member/{memberId}`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"memberId": 1,
|
|
|
|
|
|
"memberCode": "JS123456789",
|
|
|
|
|
|
"phone": "13812345678",
|
|
|
|
|
|
"nickname": "用户昵称",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"birthday": "1990-01-01",
|
|
|
|
|
|
"identityType": "2",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolGradeId": 1,
|
|
|
|
|
|
"schoolClassId": 1,
|
|
|
|
|
|
"students": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"studentId": 1,
|
|
|
|
|
|
"studentName": "张三",
|
|
|
|
|
|
"studentNo": "2026001",
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"gradeName": "七年级",
|
|
|
|
|
|
"className": "1班"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.3 新增会员
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/member`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"phone": "13812345678",
|
|
|
|
|
|
"nickname": "用户昵称",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"birthday": "1990-01-01",
|
|
|
|
|
|
"identityType": "2",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolGradeId": 1,
|
|
|
|
|
|
"schoolClassId": 1,
|
|
|
|
|
|
"status": "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.4 修改会员
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/member`
|
|
|
|
|
|
|
|
|
|
|
|
### 4.5 删除会员
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/member/{memberId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 4.6 重置密码
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/member/resetPwd/{memberId}`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "密码重置成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"password": "abc123"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.7 绑定学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/member/bindStudent`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"memberId": 1,
|
|
|
|
|
|
"studentId": 1
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4.8 解绑学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/member/unbindStudent/{memberId}/{studentId}`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 5. 学生管理接口
|
|
|
|
|
|
|
|
|
|
|
|
### 5.1 查询学生列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/student/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| studentName | string | 否 | 学生姓名 |
|
|
|
|
|
|
| studentNo | string | 否 | 学号 |
|
|
|
|
|
|
| gender | string | 否 | 性别 |
|
|
|
|
|
|
| schoolId | long | 否 | 学校ID |
|
|
|
|
|
|
| schoolGradeId | long | 否 | 学校年级ID |
|
|
|
|
|
|
| schoolClassId | long | 否 | 学校班级ID |
|
|
|
|
|
|
| subjectId | long | 否 | 学科ID |
|
|
|
|
|
|
| memberPhone | string | 否 | 归属用户手机号 |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"total": 100,
|
|
|
|
|
|
"rows": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"studentId": 1,
|
|
|
|
|
|
"studentName": "张三",
|
|
|
|
|
|
"studentNo": "2026001",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"birthday": "2015-01",
|
|
|
|
|
|
"regionPath": "湖北省-武汉市-武昌区",
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"gradeName": "七年级",
|
|
|
|
|
|
"className": "1班",
|
|
|
|
|
|
"subjectName": "语文",
|
|
|
|
|
|
"memberNickname": "张三爸爸",
|
|
|
|
|
|
"memberPhone": "138****5678"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5.2 获取学生详情
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/student/{studentId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 5.3 新增学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/student`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"studentName": "张三",
|
|
|
|
|
|
"studentNo": "2026001",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"birthday": "2015-01",
|
|
|
|
|
|
"regionId": 111,
|
|
|
|
|
|
"schoolId": 1,
|
|
|
|
|
|
"schoolGradeId": 1,
|
|
|
|
|
|
"schoolClassId": 1,
|
|
|
|
|
|
"subjectId": 1,
|
|
|
|
|
|
"memberId": 1
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5.4 修改学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/student`
|
|
|
|
|
|
|
|
|
|
|
|
### 5.5 删除学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/student/{studentId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 5.6 批量导入学生
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/student/import`
|
|
|
|
|
|
|
|
|
|
|
|
**请求方式**:`multipart/form-data`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| file | file | 是 | Excel文件 |
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "导入成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"successCount": 98,
|
|
|
|
|
|
"failCount": 2,
|
|
|
|
|
|
"failList": [
|
|
|
|
|
|
{"row": 5, "reason": "学号已存在"},
|
|
|
|
|
|
{"row": 10, "reason": "学校信息不匹配"}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 5.7 下载导入模板
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/student/template`
|
|
|
|
|
|
|
|
|
|
|
|
**响应**:Excel文件下载
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 6. 应用管理接口
|
|
|
|
|
|
|
|
|
|
|
|
### 6.1 查询应用列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/application/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| appName | string | 否 | 应用名称 |
|
|
|
|
|
|
| appCode | string | 否 | 应用编码 |
|
|
|
|
|
|
| status | string | 否 | 状态 |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
### 6.2 获取应用详情
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/application/{appId}`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"appId": 1,
|
|
|
|
|
|
"appCode": "YY000001",
|
|
|
|
|
|
"appName": "AI智慧平台",
|
|
|
|
|
|
"appSecret": "********************************",
|
|
|
|
|
|
"status": "0",
|
|
|
|
|
|
"apis": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"apiCode": "STUDENT_LIST",
|
|
|
|
|
|
"apiName": "查询学生信息",
|
|
|
|
|
|
"apiPath": "/open/student/list"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 6.3 新增应用
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/application`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"appName": "AI智慧平台",
|
|
|
|
|
|
"appDesc": "AI教育智慧平台",
|
|
|
|
|
|
"contactPerson": "张经理",
|
|
|
|
|
|
"contactPhone": "13812345678",
|
|
|
|
|
|
"status": "0",
|
|
|
|
|
|
"apiCodes": ["STUDENT_LIST", "SCHOOL_LIST", "GRADE_LIST"]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 6.4 修改应用
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/application`
|
|
|
|
|
|
|
|
|
|
|
|
### 6.5 删除应用
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/application/{appId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 6.6 重置密钥
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/application/resetSecret/{appId}`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "密钥重置成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"appSecret": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 6.7 获取API接口列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/application/apiList`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"data": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"apiCode": "STUDENT_LIST",
|
|
|
|
|
|
"apiName": "查询学生信息",
|
|
|
|
|
|
"apiPath": "/open/student/list",
|
|
|
|
|
|
"apiMethod": "GET"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 7. 基础数据接口
|
|
|
|
|
|
|
|
|
|
|
|
### 7.1 区域管理
|
|
|
|
|
|
|
|
|
|
|
|
#### 获取区域树
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/region/tree`
|
|
|
|
|
|
|
|
|
|
|
|
#### 新增区域
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/region`
|
|
|
|
|
|
|
|
|
|
|
|
#### 修改区域
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/region`
|
|
|
|
|
|
|
|
|
|
|
|
#### 删除区域
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/region/{regionId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 7.2 年级管理
|
|
|
|
|
|
|
|
|
|
|
|
#### 查询年级列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/grade/list`
|
|
|
|
|
|
|
|
|
|
|
|
#### 新增年级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/grade`
|
|
|
|
|
|
|
|
|
|
|
|
#### 修改年级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/grade`
|
|
|
|
|
|
|
|
|
|
|
|
#### 删除年级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/grade/{gradeId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 7.3 班级管理
|
|
|
|
|
|
|
|
|
|
|
|
#### 查询班级列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/class/list`
|
|
|
|
|
|
|
|
|
|
|
|
#### 新增班级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/class`
|
|
|
|
|
|
|
|
|
|
|
|
#### 修改班级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/class`
|
|
|
|
|
|
|
|
|
|
|
|
#### 删除班级
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/class/{classId}`
|
|
|
|
|
|
|
|
|
|
|
|
### 7.4 学科管理
|
|
|
|
|
|
|
|
|
|
|
|
#### 查询学科列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /api/subject/list`
|
|
|
|
|
|
|
|
|
|
|
|
#### 新增学科
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`POST /api/subject`
|
|
|
|
|
|
|
|
|
|
|
|
#### 修改学科
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /api/subject`
|
|
|
|
|
|
|
|
|
|
|
|
#### 删除学科
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`DELETE /api/subject/{subjectId}`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 8. 开放API接口
|
|
|
|
|
|
|
|
|
|
|
|
> 供第三方应用调用,需要AppId + AppSecret签名认证
|
|
|
|
|
|
|
|
|
|
|
|
### 8.1 签名规则
|
|
|
|
|
|
|
|
|
|
|
|
**请求头**
|
|
|
|
|
|
|
|
|
|
|
|
| Header | 必填 | 说明 |
|
|
|
|
|
|
|--------|:----:|------|
|
|
|
|
|
|
| X-App-Id | 是 | 应用编码 |
|
|
|
|
|
|
| X-Timestamp | 是 | 时间戳(毫秒)|
|
|
|
|
|
|
| X-Sign | 是 | 签名 |
|
|
|
|
|
|
|
|
|
|
|
|
**签名算法**
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
1. 将所有请求参数按参数名ASCII升序排序
|
|
|
|
|
|
2. 拼接成 key1=value1&key2=value2 格式
|
|
|
|
|
|
3. 末尾追加 &appSecret=xxx
|
|
|
|
|
|
4. 对整个字符串进行MD5加密(32位大写)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**示例**
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
请求参数:pageNum=1&pageSize=10&schoolId=1
|
|
|
|
|
|
拼接后:pageNum=1&pageSize=10&schoolId=1&appSecret=abc123
|
|
|
|
|
|
MD5签名:E5D7C6B5A4F3E2D1C0B9A8F7E6D5C4B3
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 8.2 查询学生列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/student/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| schoolId | long | 否 | 学校ID |
|
|
|
|
|
|
| gradeId | long | 否 | 年级ID |
|
|
|
|
|
|
| classId | long | 否 | 班级ID |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
### 8.3 查询学校列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/school/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| regionId | long | 否 | 区域ID |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
### 8.4 查询年级列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/grade/list`
|
|
|
|
|
|
|
|
|
|
|
|
### 8.5 查询班级列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/class/list`
|
|
|
|
|
|
|
|
|
|
|
|
### 8.6 查询区域树
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/region/tree`
|
|
|
|
|
|
|
|
|
|
|
|
### 8.7 查询会员列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /open/member/list`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
| 参数 | 类型 | 必填 | 说明 |
|
|
|
|
|
|
|-----|------|:----:|------|
|
|
|
|
|
|
| phone | string | 否 | 手机号 |
|
|
|
|
|
|
| schoolId | long | 否 | 学校ID |
|
|
|
|
|
|
| pageNum | int | 是 | 页码 |
|
|
|
|
|
|
| pageSize | int | 是 | 每页条数 |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 9. 移动端接口
|
|
|
|
|
|
|
|
|
|
|
|
### 9.1 获取当前用户信息
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /app/member/info`
|
|
|
|
|
|
|
|
|
|
|
|
**响应结果**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "查询成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"memberId": 1,
|
|
|
|
|
|
"memberCode": "JS123456789",
|
|
|
|
|
|
"phone": "138****5678",
|
|
|
|
|
|
"nickname": "用户昵称",
|
|
|
|
|
|
"avatar": "https://...",
|
|
|
|
|
|
"gender": "1",
|
|
|
|
|
|
"identityType": "1",
|
|
|
|
|
|
"students": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"studentId": 1,
|
|
|
|
|
|
"studentName": "张三",
|
|
|
|
|
|
"schoolName": "武汉市第一中学",
|
|
|
|
|
|
"gradeName": "七年级",
|
|
|
|
|
|
"className": "1班"
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 9.2 修改个人信息
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /app/member/info`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"nickname": "新昵称",
|
|
|
|
|
|
"avatar": "https://...",
|
|
|
|
|
|
"gender": "1"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 9.3 修改密码
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`PUT /app/member/updatePwd`
|
|
|
|
|
|
|
|
|
|
|
|
**请求参数**
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"oldPassword": "123456",
|
|
|
|
|
|
"newPassword": "654321"
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 9.4 获取我的学生列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /app/student/myList`
|
|
|
|
|
|
|
|
|
|
|
|
### 9.5 获取学校列表
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /app/school/list`
|
|
|
|
|
|
|
|
|
|
|
|
### 9.6 获取区域树
|
|
|
|
|
|
|
|
|
|
|
|
**接口地址**:`GET /app/region/tree`
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-31 16:58:18 +08:00
|
|
|
|
## 10. 业务规则说明
|
|
|
|
|
|
|
|
|
|
|
|
> 以下业务规则来源于墨刀原型批注,接口开发时需遵守
|
|
|
|
|
|
|
|
|
|
|
|
### 10.1 学校管理
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| SCH-01 | 学校编码自动生成,格式:SCH + 年份 + 4位序号 |
|
|
|
|
|
|
| SCH-02 | 新增学校时所属地区从列表页选择的区域层级树带入,也可手动调整 |
|
|
|
|
|
|
| SCH-03 | 所属地区/学校编码/学校名称为必填 |
|
|
|
|
|
|
| SCH-04 | 学校下新增年级为选择挂载模式,非新建年级,支持多选 |
|
|
|
|
|
|
| SCH-05 | 年级下新增班级为选择挂载模式,非新建班级,支持多选 |
|
|
|
|
|
|
| SCH-06 | 删除时检查是否有子级或被学生信息引用,有则不允许删除 |
|
|
|
|
|
|
| SCH-07 | 所有删除操作均为软删除 |
|
|
|
|
|
|
|
|
|
|
|
|
### 10.2 会员管理
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| MEM-01 | 会员编号自动生成,格式:JS + 时间戳 |
|
|
|
|
|
|
| MEM-02 | 昵称未填写时自动生成 |
|
|
|
|
|
|
| MEM-03 | 出生日期和性别为选填 |
|
|
|
|
|
|
| MEM-04 | 身份类型为"教师"时,必须填写区域/学校/年级/班级 |
|
|
|
|
|
|
| MEM-05 | 身份类型为"教师"时,只能绑定同校学生 |
|
|
|
|
|
|
| MEM-06 | 身份类型为"家长"时,不显示区域信息,可绑定任意学生 |
|
|
|
|
|
|
| MEM-07 | 重置密码后弹窗显示新密码,提供复制功能 |
|
|
|
|
|
|
| MEM-08 | 删除会员需popconfirm确认,如绑定学生则不允许删除 |
|
|
|
|
|
|
| MEM-09 | 禁用会员后无法登录任何端 |
|
|
|
|
|
|
| MEM-10 | 支持三种登录方式:手机号+验证码、手机号+密码、微信登录 |
|
|
|
|
|
|
|
|
|
|
|
|
### 10.3 学生管理
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| STU-01 | 学号不允许重复,可为空 |
|
|
|
|
|
|
| STU-02 | 出生日期和性别可为空 |
|
|
|
|
|
|
| STU-03 | 学校信息(区域/学校/年级/班级)为必填 |
|
|
|
|
|
|
| STU-04 | 学生必须归属于某个会员 |
|
|
|
|
|
|
|
|
|
|
|
|
**批量导入规则:**
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| IMP-01 | 模板字段:姓名(必填)、学号(必填)、用户手机号(必填)、区域(必填)、学校(必填)、年级(必填)、班级(必填)、性别(选填)、出生年月(选填) |
|
|
|
|
|
|
| IMP-02 | 导入时校验必填字段和区域/学校/年级/班级数据一致性 |
|
|
|
|
|
|
| IMP-03 | 用户手机号已存在则挂载到已有用户 |
|
|
|
|
|
|
| IMP-04 | 用户手机号不存在则自动创建家长用户,初始密码:123456 |
|
|
|
|
|
|
|
|
|
|
|
|
### 10.4 应用管理
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| APP-01 | 应用编码自动生成,格式:YY + 6位序号 |
|
|
|
|
|
|
| APP-02 | 应用密钥(AppSecret)自动生成,32位随机字符串 |
|
|
|
|
|
|
| APP-03 | 重置密钥后弹窗显示新密钥,提供复制功能 |
|
|
|
|
|
|
| APP-04 | 删除应用需popconfirm确认 |
|
|
|
|
|
|
| APP-05 | 禁用应用后无法调用任何API |
|
|
|
|
|
|
|
|
|
|
|
|
### 10.5 区域管理
|
|
|
|
|
|
|
|
|
|
|
|
| 规则编号 | 规则描述 |
|
|
|
|
|
|
|:------:|--------|
|
|
|
|
|
|
| REG-01 | 区域名称必填 |
|
|
|
|
|
|
| REG-02 | 区域编码自动生成 |
|
|
|
|
|
|
| REG-03 | 新增下级时默认所属父级为选择的区域 |
|
|
|
|
|
|
| REG-04 | 删除区域前检查是否有子级或被引用 |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-31 16:48:20 +08:00
|
|
|
|
*文档结束*
|