feat: 完善审核台文件预览与消息通知系统

主要更新:
- 新增 FilePreview 通用组件,支持视频/图片/PDF 内嵌预览
- 审核详情页添加文件信息卡片、预览/下载功能
- 审核列表和详情页添加申诉标识和申诉理由显示
- 完善三端消息通知系统(达人/代理商/品牌)
- 新增达人 Brief 查看页面
- 新增品牌方消息中心页面
- 创建后端开发备忘文档

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-02-09 12:20:47 +08:00
co-authored by Claude Opus 4.5
parent bbc8a4f641
commit a5a005db0c
16 changed files with 3251 additions and 269 deletions
+94
View File
@@ -0,0 +1,94 @@
# 后端开发备忘
## 文件预览相关 API
### 1. 文件上传与存储
- 达人上传脚本文件(支持 .docx, .pdf, .xlsx, .txt 等)
- 达人上传视频文件(支持 .mp4, .mov, .webm 等)
- 文件存储到 OSS/S3,返回访问 URL
### 2. 文件访问 API
```
GET /api/files/:fileId
返回:{ url: "文件访问URL", fileName, fileSize, fileType, uploadedAt }
```
### 3. 文件类型转换(可选,提升体验)
- Word (.docx) → PDF
- Excel (.xlsx) → PDF
- PPT (.pptx) → PDF
- 使用 LibreOffice 或 Pandoc 实现
### 4. 视频流服务
- 支持视频分段加载(Range 请求)
- 支持视频缩略图生成
---
## 审核相关 API
### 脚本审核
```
GET /api/agency/review/scripts # 待审脚本列表
GET /api/agency/review/scripts/:id # 脚本详情(含文件URL、AI分析结果)
POST /api/agency/review/scripts/:id/approve # 通过
POST /api/agency/review/scripts/:id/reject # 驳回
POST /api/agency/review/scripts/:id/force-pass # 强制通过
```
### 视频审核
```
GET /api/agency/review/videos # 待审视频列表
GET /api/agency/review/videos/:id # 视频详情(含文件URL、AI分析结果)
POST /api/agency/review/videos/:id/approve # 通过
POST /api/agency/review/videos/:id/reject # 驳回
POST /api/agency/review/videos/:id/force-pass # 强制通过
```
### 品牌方终审
```
GET /api/brand/review/scripts # 待终审脚本列表
GET /api/brand/review/scripts/:id # 脚本详情
POST /api/brand/review/scripts/:id/approve # 终审通过
POST /api/brand/review/scripts/:id/reject # 终审驳回
GET /api/brand/review/videos # 待终审视频列表
GET /api/brand/review/videos/:id # 视频详情
POST /api/brand/review/videos/:id/approve # 终审通过
POST /api/brand/review/videos/:id/reject # 终审驳回
```
---
## 申诉相关字段
审核列表和详情需要包含:
- `isAppeal: boolean` - 是否为申诉
- `appealReason: string` - 申诉理由
- `appealCount: number` - 第几次申诉
---
## 文件数据结构
```typescript
interface FileInfo {
id: string
fileName: string
fileSize: string // "1.5 MB"
fileType: string // "video/mp4", "application/pdf", etc.
fileUrl: string // 访问URL
uploadedAt: string // ISO 时间
// 视频特有
duration?: number // 秒
thumbnail?: string // 缩略图URL
}
```
---
## 注意事项
1. 文件 URL 需要支持跨域访问(CORS)
2. 视频需要支持 Range 请求实现分段加载
3. 敏感文件考虑使用签名 URL(有效期限制)