Files
booking_admin/API.md
杨志 8e308a75f6
Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CI / CI OK (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Deploy Website on push / Rerun on failure (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
修改布局,修复BUG
2025-12-08 11:49:09 +08:00

526 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 后台管理API文档
## 基础说明
- **基础URL**: `/api/admin`
- **认证方式**: Session与现有后台保持一致
- **数据格式**: JSON
- **字符编码**: UTF-8
## 响应格式
### 成功响应
```json
{
"code": 200,
"message": "操作成功",
"data": {}
}
```
### 错误响应
```json
{
"code": 400,
"message": "错误信息",
"data": null
}
```
## 接口列表
### 1. 登录相关
#### 1.1 管理员登录
- **URL**: `POST /api/admin/login`
- **说明**: 管理员登录
- **参数**:
- `username` (string, 必填): 用户名
- `password` (string, 必填): 密码
- **返回**: 管理员信息
#### 1.2 获取当前管理员信息
- **URL**: `GET /api/admin/login/info`
- **说明**: 获取当前登录的管理员信息
- **需要登录**: 是
#### 1.3 退出登录
- **URL**: `POST /api/admin/login/logout`
- **说明**: 退出登录
- **需要登录**: 是
### 2. 首页相关
#### 2.1 获取系统信息
- **URL**: `GET /api/admin/index/systemInfo`
- **说明**: 获取系统信息PHP版本、MySQL版本、磁盘空间等
- **需要登录**: 是
### 3. 个人信息
#### 3.1 获取个人信息
- **URL**: `GET /api/admin/profile/info`
- **说明**: 获取当前管理员个人信息
- **需要登录**: 是
#### 3.2 更新个人信息
- **URL**: `POST /api/admin/profile/update`
- **说明**: 更新个人信息
- **需要登录**: 是
- **参数**:
- `nickname` (string): 昵称
- `email` (string): 邮箱
- `avatar` (file): 头像文件(可选)
#### 3.3 修改密码
- **URL**: `POST /api/admin/profile/updatePassword`
- **说明**: 修改密码
- **需要登录**: 是
- **参数**:
- `old_password` (string, 必填): 当前密码
- `new_password` (string, 必填): 新密码
- `confirm_password` (string, 必填): 确认新密码
### 4. 教室管理
#### 4.1 获取教室列表
- **URL**: `GET /api/admin/classroom/list`
- **说明**: 获取教室列表(支持分页和筛选)
- **需要登录**: 是
- **参数**:
- `page` (int): 页码默认1
- `limit` (int): 每页数量默认10
- `name` (string): 教室名称(模糊搜索)
- `building` (string): 楼栋
- `type` (string): 教室类型normal/multimedia/lab
- `school_id` (int): 分校ID仅超级管理员可用
#### 4.2 获取教室详情
- **URL**: `GET /api/admin/classroom/detail`
- **说明**: 获取教室详细信息
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教室ID
#### 4.3 保存教室(新增/编辑)
- **URL**: `POST /api/admin/classroom/save`
- **说明**: 新增或编辑教室
- **需要登录**: 是
- **参数**: 教室信息包含id则为编辑不包含则为新增
#### 4.4 删除教室
- **URL**: `POST /api/admin/classroom/delete`
- **说明**: 删除教室
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教室ID
#### 4.5 批量删除教室
- **URL**: `POST /api/admin/classroom/batchDelete`
- **说明**: 批量删除教室
- **需要登录**: 是
- **参数**:
- `ids` (array, 必填): 教室ID数组
#### 4.6 保存座位布局
- **URL**: `POST /api/admin/classroom/saveLayout`
- **说明**: 保存教室座位布局
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教室ID
- `layout` (json, 必填): 布局数据
#### 4.7 获取教室座位状态
- **URL**: `GET /api/admin/classroom/status`
- **说明**: 获取教室座位状态(包含预订信息)
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教室ID
#### 4.8 分配座位
- **URL**: `POST /api/admin/classroom/assignSeat`
- **说明**: 为学生分配座位
- **需要登录**: 是
- **参数**:
- `classroomId` (int, 必填): 教室ID
- `studentId` (int, 必填): 学生ID
- `row` (int, 必填): 行号
- `col` (int, 必填): 列号
- `number` (string, 必填): 座位号
#### 4.9 随机分配座位
- **URL**: `POST /api/admin/classroom/randomAssignSeats`
- **说明**: 为未分配座位的学生随机分配座位
- **需要登录**: 是
- **参数**:
- `classroomId` (int, 必填): 教室ID
#### 4.10 获取未分配座位的学生列表
- **URL**: `GET /api/admin/classroom/getUnassignedStudents`
- **说明**: 获取未分配座位的学生列表
- **需要登录**: 是
- **参数**:
- `classroomId` (int, 必填): 教室ID
#### 4.11 取消选座
- **URL**: `POST /api/admin/classroom/cancelBooking`
- **说明**: 取消选座
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 预订ID
#### 4.12 批量取消选座
- **URL**: `POST /api/admin/classroom/cancelBookingAuto`
- **说明**: 批量取消选座
- **需要登录**: 是
- **参数**:
- `ids` (array, 必填): 预订ID数组
#### 4.13 获取分校列表
- **URL**: `GET /api/admin/classroom/getSchoolList`
- **说明**: 获取分校列表(根据权限过滤)
- **需要登录**: 是
#### 4.14 上传图片
- **URL**: `POST /api/admin/classroom/upload`
- **说明**: 上传教室相关图片
- **需要登录**: 是
- **参数**:
- `file` (file, 必填): 图片文件
#### 4.15 获取教室选座列表
- **URL**: `GET /api/admin/classroom/getSeatList`
- **说明**: 获取教室的选座列表,以座位号排序
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教室ID
- **返回数据**:
```json
{
"code": 200,
"message": "获取成功",
"data": [
{
"seat_number": "1",
"is_selected": 1,
"student_name": "张三",
"student_mobile": "13800138000",
"select_time": "2024-03-20 10:00:00"
},
{
"seat_number": "2",
"is_selected": 0,
"student_name": "",
"student_mobile": "",
"select_time": ""
}
]
}
```
- **字段说明**:
- `seat_number` (string): 座位号
- `is_selected` (int): 是否选座1已选0未选
- `student_name` (string): 学员姓名(未选座时为空)
- `student_mobile` (string): 学员手机号(未选座时为空)
- `select_time` (string): 选座时间(未选座时为空)
### 5. 预订管理
#### 5.1 获取预订列表
- **URL**: `GET /api/admin/booking/list`
- **说明**: 获取预订记录列表
- **需要登录**: 是
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `classroom_id` (int): 教室ID
- `booking_date` (string): 预订日期
- `type` (string): 类型
#### 5.2 同意座位变更申请
- **URL**: `POST /api/admin/booking/approve`
- **说明**: 同意座位变更申请
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 申请ID
#### 5.3 拒绝座位变更申请
- **URL**: `POST /api/admin/booking/reject`
- **说明**: 拒绝座位变更申请
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 申请ID
- `reason` (string, 必填): 拒绝原因
### 6. 系统设置
#### 6.1 获取系统设置
- **URL**: `GET /api/admin/setting/get`
- **说明**: 获取系统设置
- **需要登录**: 是(仅超级管理员)
#### 6.2 保存系统设置
- **URL**: `POST /api/admin/setting/save`
- **说明**: 保存系统设置
- **需要登录**: 是(仅超级管理员)
- **参数**: 设置项键值对
#### 6.3 上传图片
- **URL**: `POST /api/admin/setting/upload`
- **说明**: 上传系统设置相关图片(如轮播图)
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `file` (file, 必填): 图片文件
### 7. 班级管理
#### 7.1 获取班级列表
- **URL**: `GET /api/admin/classmanager/list`
- **说明**: 获取班级列表
- **需要登录**: 是
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `name` (string): 班级名称
- `teacher_name` (string): 班主任姓名
- `school_id` (int): 分校ID
#### 7.2 获取班级详情
- **URL**: `GET /api/admin/classmanager/detail`
- **说明**: 获取班级详细信息
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 班级ID
#### 7.3 获取班主任列表
- **URL**: `GET /api/admin/classmanager/getTeachers`
- **说明**: 获取班主任列表
- **需要登录**: 是
#### 7.4 获取教室列表
- **URL**: `GET /api/admin/classmanager/getClassrooms`
- **说明**: 获取可用教室列表
- **需要登录**: 是
#### 7.5 保存班级(新增/编辑)
- **URL**: `POST /api/admin/classmanager/save`
- **说明**: 新增或编辑班级
- **需要登录**: 是
- **参数**: 班级信息
#### 7.6 删除班级
- **URL**: `POST /api/admin/classmanager/deleteClass`
- **说明**: 删除班级
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 班级ID
### 8. 学生管理
#### 8.1 获取学生列表
- **URL**: `GET /api/admin/student/list`
- **说明**: 获取学生列表
- **需要登录**: 是
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `student_id` (string): 学号
- `name` (string): 姓名
- `class_id` (int): 班级ID
- `school_id` (int): 分校ID
#### 8.2 获取学生详情
- **URL**: `GET /api/admin/student/detail`
- **说明**: 获取学生详细信息
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 学生ID
#### 8.3 保存学生(新增/编辑)
- **URL**: `POST /api/admin/student/save`
- **说明**: 新增或编辑学生
- **需要登录**: 是
- **参数**: 学生信息
#### 8.4 删除学生
- **URL**: `POST /api/admin/student/delete`
- **说明**: 删除学生
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 学生ID
#### 8.5 更新学生状态
- **URL**: `POST /api/admin/student/status`
- **说明**: 更新学生状态
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 学生ID
- `status` (int, 必填): 状态0/1
#### 8.6 解绑学生
- **URL**: `POST /api/admin/student/unbind`
- **说明**: 解绑学生与用户的关联
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 学生ID
#### 8.7 上传学生导入文件
- **URL**: `POST /api/admin/student/upload`
- **说明**: 上传学生导入Excel文件
- **需要登录**: 是
- **参数**:
- `file` (file, 必填): Excel文件
#### 8.8 导入学生数据
- **URL**: `POST /api/admin/student/import`
- **说明**: 导入学生数据
- **需要登录**: 是
- **参数**:
- `class_id` (int, 必填): 班级ID
- `file` (string, 必填): 文件路径通过upload接口获取
### 9. 用户管理(仅超级管理员)
#### 9.1 获取用户列表
- **URL**: `GET /api/admin/user/list`
- **说明**: 获取用户列表
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `keyword` (string): 关键词(昵称/手机/邮箱)
- `status` (int): 状态
#### 9.2 获取用户详情
- **URL**: `GET /api/admin/user/detail`
- **说明**: 获取用户详细信息
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `id` (int, 必填): 用户ID
#### 9.3 保存用户(新增/编辑)
- **URL**: `POST /api/admin/user/save`
- **说明**: 新增或编辑用户
- **需要登录**: 是(仅超级管理员)
- **参数**: 用户信息
#### 9.4 删除用户
- **URL**: `POST /api/admin/user/delete`
- **说明**: 删除用户
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `ids` (array, 必填): 用户ID数组
#### 9.5 修改用户状态
- **URL**: `POST /api/admin/user/status`
- **说明**: 修改用户状态
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `id` (int, 必填): 用户ID
- `status` (int, 必填): 状态0/1
### 10. 学校管理(仅超级管理员)
#### 10.1 获取学校列表
- **URL**: `GET /api/admin/school/list`
- **说明**: 获取学校列表
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `name` (string): 学校名称
#### 10.2 获取学校详情
- **URL**: `GET /api/admin/school/detail`
- **说明**: 获取学校详细信息
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `id` (int, 必填): 学校ID
#### 10.3 保存学校(新增/编辑)
- **URL**: `POST /api/admin/school/save`
- **说明**: 新增或编辑学校
- **需要登录**: 是(仅超级管理员)
- **参数**: 学校信息
#### 10.4 删除学校
- **URL**: `POST /api/admin/school/delete`
- **说明**: 删除学校
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `id` (int, 必填): 学校ID
#### 10.5 获取分校账号列表
- **URL**: `GET /api/admin/school/accountList`
- **说明**: 获取分校账号列表
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `school_id` (int, 必填): 学校ID
#### 10.6 保存分校账号
- **URL**: `POST /api/admin/school/saveAccount`
- **说明**: 新增或编辑分校账号
- **需要登录**: 是(仅超级管理员)
- **参数**: 账号信息
#### 10.7 删除分校账号
- **URL**: `POST /api/admin/school/deleteAccount`
- **说明**: 删除分校账号
- **需要登录**: 是(仅超级管理员)
- **参数**:
- `id` (int, 必填): 账号ID
### 11. 教师管理
#### 11.1 获取教师列表
- **URL**: `GET /api/admin/teacher/list`
- **说明**: 获取教师列表
- **需要登录**: 是
- **参数**:
- `page` (int): 页码
- `limit` (int): 每页数量
- `teacher_id` (string): 工号
- `name` (string): 姓名
- `department_id` (int): 部门ID
- `nickname` (string): 昵称
#### 11.2 获取教师详情
- **URL**: `GET /api/admin/teacher/detail`
- **说明**: 获取教师详细信息
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教师ID
#### 11.3 保存教师(新增/编辑)
- **URL**: `POST /api/admin/teacher/save`
- **说明**: 新增或编辑教师
- **需要登录**: 是
- **参数**: 教师信息
#### 11.4 删除教师
- **URL**: `POST /api/admin/teacher/delete`
- **说明**: 删除教师
- **需要登录**: 是
- **参数**:
- `id` (int, 必填): 教师ID
### 12. 通用功能
#### 12.1 获取必应每日壁纸
- **URL**: `GET /api/admin/common/getBingWallpaper`
- **说明**: 获取必应每日桌面壁纸
- **需要登录**: 是
## 权限说明
- **超级管理员**: 可以访问所有接口,可以管理所有分校的数据
- **分校管理员**: 只能访问和操作本分校的数据,无法访问系统设置、用户管理、学校管理等接口
## 注意事项
1. 所有需要登录的接口都需要在请求时携带有效的Session
2. 分校管理员在操作数据时,系统会自动限制只能操作本分校的数据
3. 文件上传接口支持的文件类型和大小限制请参考具体接口说明
4. 分页接口默认返回格式为layui table格式code, msg, count, data