1384 lines
21 KiB
Markdown
1384 lines
21 KiB
Markdown
# AI文章生成管理平台 API接口文档
|
||
|
||
## 接口概述
|
||
|
||
- **Base URL**: `http://127.0.0.1:8216`
|
||
- **搜索服务**: `http://127.0.0.1:8321`
|
||
- **数据格式**: JSON
|
||
- **字符编码**: UTF-8
|
||
- **认证方式**: JWT Token (Bearer)
|
||
|
||
---
|
||
|
||
## 统一响应格式
|
||
|
||
### 成功响应
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {}
|
||
}
|
||
```
|
||
|
||
### 错误响应
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "错误信息",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
### 状态码说明
|
||
| 状态码 | 说明 |
|
||
|--------|------|
|
||
| 200 | 请求成功 |
|
||
| 400 | 请求参数错误 |
|
||
| 401 | 未授权,需要登录 |
|
||
| 403 | 权限不足 |
|
||
| 404 | 资源不存在 |
|
||
| 500 | 服务器内部错误 |
|
||
|
||
---
|
||
|
||
## 一、基础接口
|
||
|
||
### 1.1 根路径
|
||
**接口**: `GET /`
|
||
|
||
**认证**: 无需认证
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "万花筒API服务正常运行",
|
||
"data": {
|
||
"version": "1.0",
|
||
"service": "wht_api"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 1.2 健康检查
|
||
**接口**: `GET /health`
|
||
|
||
**认证**: 无需认证
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "服务正常",
|
||
"data": {
|
||
"status": "healthy",
|
||
"timestamp": 1704267825000,
|
||
"version": "2.0"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 二、认证接口
|
||
|
||
### 2.1 统一登录
|
||
**接口**: `POST /api/auth/login`
|
||
|
||
**认证**: 无需认证
|
||
|
||
**支持方式**: 用户名登录、手机号登录
|
||
|
||
**请求参数(用户名方式)**:
|
||
```json
|
||
{
|
||
"username": "13621242430",
|
||
"password": "admin123"
|
||
}
|
||
```
|
||
|
||
**请求参数(手机号方式)**:
|
||
```json
|
||
{
|
||
"phone": "13621242430",
|
||
"password": "admin123"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "登录成功",
|
||
"data": {
|
||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||
"user": {
|
||
"id": 1,
|
||
"username": "13621242430",
|
||
"enterprise_id": 1
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.2 员工登录
|
||
**接口**: `POST /api/auth/employee/login`
|
||
|
||
**认证**: 无需认证
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"phone": "13800138001",
|
||
"password": "123456"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "登录成功",
|
||
"data": {
|
||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||
"employee": {
|
||
"id": 1,
|
||
"name": "张三",
|
||
"phone": "13800138001",
|
||
"enterprise_id": 1
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.3 用户登出
|
||
**接口**: `POST /api/auth/logout`
|
||
|
||
**认证**: 可选(建议携带token)
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "登出成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 三、工作台接口
|
||
|
||
### 3.1 工作台概览
|
||
**接口**: `GET /api/dashboard/overview`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求头**:
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_articles": 1250,
|
||
"published_today": 45,
|
||
"total_authors": 128,
|
||
"active_products": 23
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 3.2 最近发布
|
||
**接口**: `GET /api/dashboard/recent-publishes`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| limit | int | 否 | 返回条数,默认10 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"title": "冬季护肤小技巧",
|
||
"author_name": "张医生",
|
||
"product_name": "保湿面霜",
|
||
"published_at": "2024-12-29 15:30:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 3.3 热门产品
|
||
**接口**: `GET /api/dashboard/hot-products`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| limit | int | 否 | 返回条数,默认5 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"product_name": "保湿面霜",
|
||
"publish_count": 156,
|
||
"image_url": "https://oss.example.com/product1.jpg"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 四、企业管理接口
|
||
|
||
### 4.1 获取企业列表
|
||
**接口**: `GET /api/enterprises/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码,默认1 |
|
||
| pageSize | int | 否 | 每页数量,默认20 |
|
||
| keyword | string | 否 | 搜索关键词 |
|
||
| status | string | 否 | 状态筛选 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 50,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"name": "示例医疗集团",
|
||
"short_name": "示例医疗",
|
||
"phone": "13800138000",
|
||
"email": "admin@example.com",
|
||
"status": "active",
|
||
"created_at": "2024-01-15 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.2 企业统计
|
||
**接口**: `GET /api/enterprises/stats`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_count": 50,
|
||
"active_count": 45,
|
||
"disabled_count": 5
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.3 获取企业信息
|
||
**接口**: `GET /api/enterprises/info`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": 1,
|
||
"name": "示例医疗集团",
|
||
"short_name": "示例医疗",
|
||
"phone": "13800138000",
|
||
"email": "admin@example.com",
|
||
"created_at": "2024-01-15 10:00:00"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.4 更新企业信息
|
||
**接口**: `PUT /api/enterprises/info`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"short_name": "新名称",
|
||
"email": "new@example.com"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "更新成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4.5 修改密码
|
||
**接口**: `PUT /api/enterprises/change-password`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"old_password": "123456",
|
||
"new_password": "654321"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "密码修改成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 五、图片管理接口
|
||
|
||
### 5.1 图片列表
|
||
**接口**: `GET /api/images/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 100,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"image_name": "产品展示图",
|
||
"image_url": "https://oss.example.com/image1.jpg",
|
||
"image_type_name": "产品图",
|
||
"width": 1920,
|
||
"height": 1080,
|
||
"file_size": 524288,
|
||
"created_at": "2024-12-29 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.2 图片仪表盘
|
||
**接口**: `GET /api/images/list_dashboard`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_images": 1250,
|
||
"total_types": 8,
|
||
"total_tags": 45,
|
||
"recent_uploads": 23
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.3 上传图片
|
||
**接口**: `POST /api/images/upload`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**: multipart/form-data
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| image | file | 是 | 图片文件 |
|
||
| image_name | string | 是 | 图片名称 |
|
||
| image_type_name | string | 否 | 图片类型 |
|
||
| tag_keywords | string | 否 | 标签,逗号分隔 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "上传成功",
|
||
"data": {
|
||
"id": 1,
|
||
"image_url": "https://oss.example.com/image1.jpg",
|
||
"thumbnail_url": "https://oss.example.com/thumb1.jpg"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.4 删除图片
|
||
**接口**: `DELETE /api/images/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "删除成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.5 标签名称列表
|
||
**接口**: `GET /api/images/tags/names/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 50,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"tag_name": "美白",
|
||
"description": "美白相关标签",
|
||
"usage_count": 156
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.6 创建标签名称
|
||
**接口**: `POST /api/images/tags/names/create`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"tag_name": "美白",
|
||
"description": "美白相关标签"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "创建成功",
|
||
"data": {
|
||
"id": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.7 更新标签名称
|
||
**接口**: `PUT /api/images/tags/names/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"tag_name": "美白淡斑",
|
||
"description": "美白淡斑相关"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.8 删除标签名称
|
||
**接口**: `DELETE /api/images/tags/names/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
---
|
||
|
||
### 5.9 标签关系列表
|
||
**接口**: `GET /api/images/tags/relations/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**说明**: 查询图片与标签的关联关系
|
||
|
||
---
|
||
|
||
### 5.10 图片类型列表
|
||
**接口**: `GET /api/images/types/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"type_name": "产品图",
|
||
"description": "产品展示图片",
|
||
"image_count": 156
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.11 创建类型
|
||
**接口**: `POST /api/images/types/create`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"type_name": "产品图",
|
||
"description": "产品展示图片"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 5.12 更新类型
|
||
**接口**: `PUT /api/images/types/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
---
|
||
|
||
### 5.13 删除类型
|
||
**接口**: `DELETE /api/images/types/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
---
|
||
|
||
### 5.14 标签列表
|
||
**接口**: `GET /api/images/tags/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**说明**: 获取图片标签列表(图片-标签关联)
|
||
|
||
---
|
||
|
||
### 5.15 创建标签
|
||
**接口**: `POST /api/images/tags/create`
|
||
|
||
**认证**: 需要token
|
||
|
||
**说明**: 为图片添加标签
|
||
|
||
---
|
||
|
||
### 5.16 删除标签
|
||
**接口**: `DELETE /api/images/tags/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**说明**: 删除图片标签关联
|
||
|
||
---
|
||
|
||
## 六、日志管理接口
|
||
|
||
### 6.1 获取操作日志
|
||
**接口**: `GET /api/log/logs`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
| action | string | 否 | 操作类型 |
|
||
| status | string | 否 | 状态:success/error |
|
||
| start_date | string | 否 | 开始日期 |
|
||
| end_date | string | 否 | 结束日期 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 1000,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"user_id": 1,
|
||
"action": "create_article",
|
||
"description": "创建文章:冬季护肤小技巧",
|
||
"status": "success",
|
||
"created_at": "2024-12-29 14:30:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6.2 日志文件列表
|
||
**接口**: `GET /api/log/logs/files`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"files": [
|
||
{
|
||
"filename": "article_server.log",
|
||
"size": 1024000,
|
||
"modified_at": "2024-12-29 15:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 6.3 文件日志内容
|
||
**接口**: `GET /api/log/logs/file`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| filename | string | 是 | 文件名 |
|
||
| lines | int | 否 | 读取行数,默认100 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"content": "[2024-12-29 15:00:00] INFO: 服务启动\n..."
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 七、文章管理接口
|
||
|
||
### 7.1 文章列表
|
||
**接口**: `GET /api/articles/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
| status | string | 否 | 状态筛选 |
|
||
| keyword | string | 否 | 搜索关键词 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 500,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"title": "冬季护肤小技巧",
|
||
"topic": "护肤",
|
||
"content": "文章内容...",
|
||
"author_name": "张医生",
|
||
"status": "published",
|
||
"created_at": "2024-12-29 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.2 文章仪表盘
|
||
**接口**: `GET /api/articles/list_dashboard`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_articles": 1250,
|
||
"published_count": 856,
|
||
"draft_count": 394,
|
||
"today_generated": 23
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.3 生成文章
|
||
**接口**: `POST /api/articles/generate`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"topic": "冬季护肤",
|
||
"author_id": 1,
|
||
"product_id": 5,
|
||
"template_id": 2
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "生成成功",
|
||
"data": {
|
||
"id": 1,
|
||
"title": "冬季护肤小技巧",
|
||
"content": "..."
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.4 文章详情
|
||
**接口**: `GET /api/articles/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"id": 1,
|
||
"title": "冬季护肤小技巧",
|
||
"topic": "护肤",
|
||
"content": "详细内容...",
|
||
"author_id": 1,
|
||
"author_name": "张医生",
|
||
"status": "published",
|
||
"created_at": "2024-12-29 10:00:00"
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.5 更新文章
|
||
**接口**: `PUT /api/articles/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"title": "新标题",
|
||
"content": "新内容",
|
||
"status": "published"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "更新成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.6 批量发布(账号循环)
|
||
**接口**: `POST /api/articles/batch-published-account-cycle`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"article_ids": [1, 2, 3, 4, 5],
|
||
"cycle_mode": "round_robin"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "批量发布成功",
|
||
"data": {
|
||
"success_count": 5,
|
||
"failed_count": 0
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 7.7 批量发布(指定作者)
|
||
**接口**: `POST /api/articles/batch-published-review`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"article_ids": [1, 2, 3],
|
||
"author_id": 5
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "批量发布成功",
|
||
"data": {
|
||
"success_count": 3,
|
||
"failed_count": 0
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 八、员工管理接口
|
||
|
||
### 8.1 员工列表
|
||
**接口**: `GET /api/employees/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
| keyword | string | 否 | 搜索关键词 |
|
||
| status | string | 否 | 状态筛选 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 50,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"name": "张三",
|
||
"phone": "13800138001",
|
||
"role": "员工",
|
||
"status": "active",
|
||
"created_at": "2024-01-15 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 8.2 员工统计
|
||
**接口**: `GET /api/employees/stats`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total_count": 50,
|
||
"active_count": 45,
|
||
"inactive_count": 5
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 8.3 添加员工
|
||
**接口**: `POST /api/employees/add`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"name": "张三",
|
||
"phone": "13800138001",
|
||
"password": "123456",
|
||
"role": "员工"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "添加成功",
|
||
"data": {
|
||
"id": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 8.4 删除员工
|
||
**接口**: `DELETE /api/employees/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**说明**: 软删除,仅删除登录权限,保留发布记录
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "删除成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 九、作者管理接口
|
||
|
||
### 9.1 作者列表(按科室分组)
|
||
**接口**: `GET /api/authors`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"departments": [
|
||
{
|
||
"department_name": "皮肤科",
|
||
"authors": [
|
||
{
|
||
"id": 1,
|
||
"author_name": "张医生",
|
||
"title": "主治医师",
|
||
"department": "皮肤科"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.2 创建作者
|
||
**接口**: `POST /api/authors`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"author_name": "张医生",
|
||
"title": "主治医师",
|
||
"department": "皮肤科",
|
||
"bio": "专注皮肤护理20年"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "创建成功",
|
||
"data": {
|
||
"id": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.3 更新作者
|
||
**接口**: `PUT /api/authors/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
```json
|
||
{
|
||
"author_name": "张医生",
|
||
"title": "副主任医师",
|
||
"department": "皮肤科"
|
||
}
|
||
```
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "更新成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.4 删除作者
|
||
**接口**: `DELETE /api/authors/:id`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "删除成功",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.5 作者列表(用户关联)
|
||
**接口**: `GET /api/authors/list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| user_id | int | 否 | 用户ID |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"author_name": "张医生",
|
||
"department": "皮肤科"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.6 作者详细列表
|
||
**接口**: `GET /api/authors/detail_list`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码 |
|
||
| pageSize | int | 否 | 每页数量 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"total": 128,
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"author_name": "张医生",
|
||
"title": "主治医师",
|
||
"department": "皮肤科",
|
||
"bio": "专注皮肤护理20年",
|
||
"article_count": 45,
|
||
"created_at": "2024-01-15 10:00:00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.7 科室列表
|
||
**接口**: `GET /api/authors/departments`
|
||
|
||
**认证**: 需要token
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"departments": [
|
||
{
|
||
"department_name": "皮肤科",
|
||
"author_count": 12
|
||
},
|
||
{
|
||
"department_name": "内科",
|
||
"author_count": 15
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9.8 搜索作者
|
||
**接口**: `GET /api/authors/search`
|
||
|
||
**认证**: 需要token
|
||
|
||
**请求参数**:
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| keyword | string | 是 | 搜索关键词 |
|
||
|
||
**响应数据**:
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1,
|
||
"author_name": "张医生",
|
||
"title": "主治医师",
|
||
"department": "皮肤科"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 附录
|
||
|
||
### A. 请求头说明
|
||
|
||
所有需要认证的接口都需要携带以下请求头:
|
||
|
||
```
|
||
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
||
Content-Type: application/json
|
||
```
|
||
|
||
### B. 分页参数说明
|
||
|
||
所有列表接口都支持以下分页参数:
|
||
|
||
| 参数 | 类型 | 默认值 | 说明 |
|
||
|------|------|--------|------|
|
||
| page | int | 1 | 页码 |
|
||
| pageSize | int | 20 | 每页数量,最大100 |
|
||
|
||
### C. 错误码说明
|
||
|
||
| 错误码 | 说明 | 处理建议 |
|
||
|--------|------|----------|
|
||
| 1001 | 用户名/手机号已存在 | 使用其他账号 |
|
||
| 1002 | 密码错误 | 检查密码 |
|
||
| 1003 | Token过期 | 重新登录 |
|
||
| 1004 | 权限不足 | 检查用户角色 |
|
||
| 1005 | 资源不存在 | 检查资源ID |
|
||
| 1006 | 参数错误 | 检查请求参数 |
|
||
|
||
### D. 业务规则说明
|
||
|
||
1. **文章生成规则**
|
||
- 支持AI自动生成文章
|
||
- 可指定作者、产品、模板
|
||
- 生成后状态为topic,需人工审核
|
||
|
||
2. **批量发布规则**
|
||
- 支持账号循环模式
|
||
- 支持指定作者模式
|
||
- 发布后状态变为published
|
||
|
||
3. **权限管理规则**
|
||
- 不同企业之间的数据完全隔离
|
||
- 员工只能看到所属企业的数据
|
||
- 管理员可以管理所有数据
|
||
|
||
4. **图片管理规则**
|
||
- 支持OSS存储
|
||
- 自动生成缩略图
|
||
- 支持标签和类型管理
|
||
|
||
5. **日志记录规则**
|
||
- 所有关键操作必须记录日志
|
||
- 支持按多维度查询日志
|
||
- 日志文件每日自动切割
|
||
|
||
6. **作者管理规则**
|
||
- 支持按科室分组
|
||
- 记录作者的文章数量
|
||
- 支持模糊搜索
|
||
|
||
---
|
||
|
||
### E. 数据库表结构对应
|
||
|
||
本接口文档对应的数据库表结构:
|
||
|
||
| 模块 | 核心表 |
|
||
|------|------|
|
||
| 企业管理 | ai_enterprises |
|
||
| 员工管理 | ai_employees |
|
||
| 图片管理 | ai_images, ai_image_tags, ai_image_tag_names, ai_image_types |
|
||
| 文章管理 | ai_articles |
|
||
| 作者管理 | ai_authors |
|
||
| 系统管理 | ai_logs, ai_users |
|
||
|
||
**总计**: 10+张数据库表
|
||
|
||
---
|
||
|
||
### F. 接口数量统计
|
||
|
||
| 模块 | 接口数量 |
|
||
|------|----------|
|
||
| 基础接口 | 2个 |
|
||
| 认证接口 | 3个 |
|
||
| 工作台接口 | 3个 |
|
||
| 企业管理 | 5个 |
|
||
| 图片管理 | 16个 |
|
||
| 日志管理 | 3个 |
|
||
| 文章管理 | 7个 |
|
||
| 员工管理 | 4个 |
|
||
| 作者管理 | 8个 |
|
||
| **总计** | **51个接口** |
|
||
|
||
---
|
||
|
||
**文档版本**: v2.0
|
||
**最后更新**: 2025-12-29
|
||
**维护团队**: AI文章生成平台开发团队
|