feat: 添加批量导入功能

1. 添加用户、课程任务和部门的批量导入功能
2. 优化错误处理逻辑,提供更详细的错误信息
3. 更新API文档,添加批量导入接口说明
This commit is contained in:
huertian
2025-01-04 15:07:14 +08:00
parent 7436928328
commit 5c632a724f
15 changed files with 688 additions and 20 deletions

View File

@ -545,9 +545,101 @@
}
```
## 批量导入接口
### 1. 批量导入用户
- **接口**`POST /api/import/users`
- **描述**:通过 Excel 文件批量导入用户
- **认证**:需要
- **请求体**
- `Content-Type`: `multipart/form-data`
- `file`: Excel 文件(.xlsx
- **Excel 文件格式**
| 用户名 | 邮箱 | 密码 | 部门名称 |
|--------|------|------|----------|
| 张三 | zhangsan@example.com | 123456 | 技术部 |
- **成功响应**
```json
{
"code": 10000,
"message": "成功",
"data": "成功导入2条数据"
}
```
- **错误响应**
```json
{
"code": 10012,
"message": "成功导入0条数据。错误信息第2行邮箱已存在;第3行部门不存在;",
"data": null
}
```
### 2. 批量导入课程任务
- **接口**`POST /api/import/lesson-tasks`
- **描述**:通过 Excel 文件批量导入课程任务
- **认证**:需要
- **请求体**
- `Content-Type`: `multipart/form-data`
- `file`: Excel 文件(.xlsx
- **Excel 文件格式**
| 课程名称 | 微课名称 | 教师邮箱 |
|----------|----------|-----------|
| 数学课程 | 第一章 | teacher@example.com |
- **成功响应**
```json
{
"code": 10000,
"message": "成功",
"data": "成功导入3条数据"
}
```
- **错误响应**
```json
{
"code": 10012,
"message": "成功导入0条数据。错误信息第2行未找到教师用户teacher@example.com;",
"data": null
}
```
### 3. 批量导入部门
- **接口**`POST /api/import/departments`
- **描述**:通过 Excel 文件批量导入部门
- **认证**:需要
- **请求体**
- `Content-Type`: `multipart/form-data`
- `file`: Excel 文件(.xlsx
- **Excel 文件格式**
| 部门名称 | 部门描述 |
|----------|----------|
| 技术部 | 负责技术研发 |
- **成功响应**
```json
{
"code": 10000,
"message": "成功",
"data": "成功导入2条数据"
}
```
- **错误响应**
```json
{
"code": 10012,
"message": "成功导入0条数据。错误信息第2行部门名称已存在;",
"data": null
}
```
## 注意事项
1. 所有时间戳字段均使用秒级时间戳10 位)
2. 课程任务状态变更时会自动记录相应的时间戳
3. 部门课程任务列表会额外返回用户名信息
4. 分页参数中的页码从 1 开始
5. 批量导入时Excel 文件必须严格按照模板格式填写
6. 批量导入时,如果某行数据导入失败,会在返回信息中说明具体原因
7. 批量导入时如果全部数据导入失败会返回错误状态码10012