# Day 18 - 后端模块化与规范完善

## 🧱 后端模块化重构 (10:10)

### 内容
- API 路由统一透传到 `modules/*`，路由仅负责参数/权限与响应
- 视频生成逻辑下沉 `workflow`，任务状态抽到 `task_store`
- `TaskStore` 支持 Redis 优先、不可用时自动回退内存
- Supabase 访问抽到 `repositories/*`，`deps/auth/admin` 全面改造

### 涉及文件
- `backend/app/modules/videos/router.py`
- `backend/app/modules/videos/workflow.py`
- `backend/app/modules/videos/task_store.py`
- `backend/app/modules/videos/service.py`
- `backend/app/modules/*/router.py`
- `backend/app/repositories/users.py`
- `backend/app/repositories/sessions.py`
- `backend/app/core/deps.py`

---

## ✅ 统一响应与异常处理 (11:00)

### 内容
- 统一 JSON 响应结构：`success/message/data/code`
- 全局异常处理中将 `detail` 转换为 `message`

### 涉及文件
- `backend/app/core/response.py`
- `backend/app/main.py`

---

## 🎞️ 素材重命名与存储操作 (11:40)

### 内容
- 新增素材重命名接口 `PUT /api/materials/{material_id}`
- Storage 增加 `move_file` 以支持重命名/移动

### 涉及文件
- `backend/app/modules/materials/router.py`
- `backend/app/services/storage.py`

---

## 🧾 平台列表调整 (12:10)

### 内容
- 平台顺序调整为：抖音 → 微信视频号 → B站 → 小红书
- 移除快手配置

### 涉及文件
- `backend/app/services/publish_service.py`

---

## 📘 后端开发规范补充 (12:30)

### 内容
- 新增 `BACKEND_DEV.md` 作为后端规范文档
- `BACKEND_README.md` 同步模块化结构与响应格式

### 涉及文件
- `Docs/BACKEND_DEV.md`
- `Docs/BACKEND_README.md`

---

## 🚀 发布管理进入体验优化 (13:10)

### 内容
- 首页预取 `/publish` 路由，进入发布管理时更快
- 发布页读取 `sessionStorage` 预取数据，首屏更快渲染
- 账号与作品列表增加骨架屏，避免空白等待

### 涉及文件
- `frontend/src/features/home/ui/HomePage.tsx`
- `frontend/src/features/home/model/useHomeController.ts`
- `frontend/src/features/publish/model/usePublishController.ts`
- `frontend/src/features/publish/ui/PublishPage.tsx`

---

## 📁 首页素材加载优化 (13:30)

### 内容
- 素材列表签名 URL 并发生成（并发上限 8），缩短加载时间
- 素材列表增加加载骨架，数量根据上次素材数量动态调整

### 涉及文件
- `backend/app/modules/materials/router.py`
- `frontend/src/features/home/model/useMaterials.ts`
- `frontend/src/features/home/model/useHomeController.ts`
- `frontend/src/features/home/ui/HomePage.tsx`
- `frontend/src/features/home/ui/MaterialSelector.tsx`

---

## 🎬 预览加载体验优化 (14:00)

### 内容
- 预览视频设置 `preload="metadata"`，缩短首帧等待
- 发布页预览按钮悬停预取视频资源

### 涉及文件
- `frontend/src/components/VideoPreviewModal.tsx`
- `frontend/src/features/home/ui/PreviewPanel.tsx`
- `frontend/src/features/publish/ui/PublishPage.tsx`

---

## 📹 微信视频号发布接入 (16:30)

### 内容
- 新增视频号上传器 `WeixinUploader`，打通上传/标题/简介/标签/发布流程
- 视频号扫码登录配置完善（iframe 扫码、候选二维码过滤）
- 发布平台与路由接入视频号
- 中文错误提示 + 关键节点截图保存到 `debug_screenshots`

### 涉及文件
- `backend/app/services/uploader/weixin_uploader.py`
- `backend/app/services/qr_login_service.py`
- `backend/app/services/publish_service.py`
- `backend/app/modules/publish/router.py`
- `backend/app/modules/login_helper/router.py`

---

## 🧪 视频号上传稳定性修复 (17:40)

### 内容
- 统一浏览器指纹（UA/locale/timezone）并支持系统 Chrome
- 增加 headful + xvfb-run 运行方案，避免 headless 检测与解码失败
- 强制 SwiftShader，修复 WebGL context loss
- 上传前转码为兼容 MP4（H.264 + AAC + faststart）
- 增强上传状态判断与调试日志 `weixin_network.log`

### 涉及文件
- `backend/app/core/config.py`
- `backend/app/services/uploader/weixin_uploader.py`
- `backend/app/services/qr_login_service.py`
- `run_backend.sh`

---

## 🧾 发布诊断增强 (18:10)

### 内容
- 抖音发布新增网络日志与失败截图，便于定位上传/发布失败
- 视频号上传失败截图与网络日志落盘

### 涉及文件
- `backend/app/services/uploader/douyin_uploader.py`
- `backend/app/services/uploader/weixin_uploader.py`
- `backend/app/debug_screenshots/*`

---

## 🧩 发布页交互调整 (18:20)

### 内容
- 未选择平台时禁用发布按钮
- 移除定时发布 UI/参数，仅保留立即发布

### 涉及文件
- `frontend/src/features/publish/ui/PublishPage.tsx`
- `frontend/src/features/publish/model/usePublishController.ts`
