expo-popcore-app/api_integration_development...

288 lines
7.0 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 接口对接开发计划
> 创建日期: 2026-01-23
> 基于: api_integration_report.md 分析结果
> 最后更新: 2026-01-23 (任务完成汇总)
---
## 一、开发总览
### 开发范围
| 任务 | 优先级 | 预估复杂度 | 状态 |
|------|--------|------------|------|
| 1. 生成记录 - 删除作品功能 | 高 | 中 | **已完成** ✅ |
| 2. 会员页面 - 支付功能 | 高 | 高 | 待开发(需要支付宝 SDK 配置) |
| 3. 作品搜索 - 真实接口对接 | 中 | 中 | **已完成** ✅ |
| 4. 修改密码 - 用户密码修改 | 中 | 低 | **已完成** ✅ |
### 开发原则
1. **TDD 驱动**:每个功能先写测试,后写实现
2. **分步实施**:按优先级逐步完成,每步完成后进行测试验证
3. **可回滚**:每个功能独立开发,便于单独回滚
4. **类型安全**:充分利用 TypeScript 和 SDK 的类型定义
---
## 二、任务 1生成记录 - 删除作品功能 ✅ 已完成
### 1.1 任务概述
| 属性 | 值 |
|------|-----|
| **文件** | `app/generationRecord.tsx` |
| **SDK 接口** | `TemplateGenerationController.delete` |
| **优先级** | 高 |
| **复杂度** | 中 |
| **状态** | 已完成 ✅ |
### 1.2 完成情况
#### 创建的文件
- `hooks/use-template-generation-actions.ts` - 删除作品 Hook
- `tests/hooks/use-template-generation-actions.test.ts` - 单元测试
#### 修改的文件
- `app/generationRecord.tsx` - 集成删除功能
- `hooks/index.ts` - 导出新的 hooks
- `locales/zh-CN.json` - 添加中文翻译
- `locales/en-US.json` - 添加英文翻译
#### 功能特性
- ✅ 单个删除功能
- ✅ 批量删除功能(可选)
- ✅ 删除确认对话框
- ✅ 删除成功后刷新列表
- ✅ 删除失败显示错误提示
- ✅ 删除中加载状态
### 1.3 验收标准
- [x] 单个删除功能正常工作
- [x] 删除成功后列表自动刷新
- [x] 删除失败显示错误提示
- [x] 删除操作有确认对话框
- [x] 单元测试已编写
---
## 三、任务 2会员页面 - 支付功能(待开发)
### 2.1 任务概述
| 属性 | 值 |
|------|-----|
| **文件** | `app/membership.tsx` |
| **SDK 接口** | `AlipayController.appPay`, `preRecharge` |
| **优先级** | 高 |
| **复杂度** | 高 |
| **状态** | 待开发(需要支付宝 SDK 配置) |
### 2.2 前置依赖
1. 安装支付宝 React Native SDK
2. 配置支付宝应用信息
3. 后端支付回调已配置
### 2.3 实现步骤
#### 步骤 1创建支付 Hook
**文件**: `hooks/use-alipay.ts`
#### 步骤 2创建会员套餐 Hook
**文件**: `hooks/use-membership.ts`
#### 步骤 3编写单元测试
**文件**: `tests/hooks/use-alipay.test.ts`
#### 步骤 4更新会员页面
**文件**: `app/membership.tsx`
### 2.4 验收标准
- [ ] 支付宝 SDK 正确集成
- [ ] 能成功调起支付宝支付
- [ ] 支付成功后会员状态更新
- [ ] 支付失败有错误提示
- [ ] 支付回调正确处理
- [ ] 单元测试覆盖核心逻辑
---
## 四、任务 3作品搜索 - 真实接口对接 ✅ 已完成
### 3.1 任务概述
| 属性 | 值 |
|------|-----|
| **文件** | `app/searchWorks.tsx`, `app/searchWorksResults.tsx` |
| **SDK 接口** | `TemplateGenerationController.list` |
| **优先级** | 中 |
| **复杂度** | 中 |
| **状态** | 已完成 ✅ |
### 3.2 完成情况
#### 创建的文件
- `hooks/use-works-search.ts` - 作品搜索 Hook
- `tests/hooks/use-works-search.test.ts` - 单元测试
#### 修改的文件
- `app/searchWorksResults.tsx` - 替换为真实接口
- `hooks/index.ts` - 导出新的 hook
- `locales/zh-CN.json` - 添加中文翻译
- `locales/en-US.json` - 添加英文翻译
- `jest.setup.js` - 添加必要的 mock
#### 功能特性
- ✅ 使用真实接口替换模拟数据
- ✅ 支持关键词搜索
- ✅ 支持分类筛选
- ✅ 支持分页加载
- ✅ 加载状态显示
- ✅ 错误状态显示
- ✅ 空结果状态显示
### 3.3 验收标准
- [x] 搜索功能使用真实接口
- [x] 支持关键词搜索
- [x] 支持分类筛选
- [x] 分页加载正常
- [x] 无结果时显示空状态
- [x] 单元测试已编写
---
## 五、任务 4修改密码 - 用户密码修改 ✅ 已完成
### 4.1 任务概述
| 属性 | 值 |
|------|-----|
| **文件** | `app/changePassword.tsx` |
| **SDK 接口** | Better Auth `changePassword` |
| **优先级** | 中 |
| **复杂度** | 低 |
| **状态** | 已完成 ✅ |
### 4.2 完成情况
#### 创建的文件
- `hooks/use-change-password.ts` - 密码修改 Hook
- `tests/hooks/use-change-password.test.ts` - 单元测试
#### 修改的文件
- `app/changePassword.tsx` - 集成密码修改功能
- `lib/auth.ts` - 导出 changePassword 方法
- `hooks/index.ts` - 导出新的 hook
- `locales/zh-CN.json` - 添加中文翻译
- `locales/en-US.json` - 添加英文翻译
#### 功能特性
- ✅ 使用 Better Auth 的 changePassword API
- ✅ 客户端表单验证(旧密码非空、新密码长度、确认密码匹配等)
- ✅ 加载状态显示
- ✅ 成功后提示用户1.5秒后自动返回)
- ✅ 错误处理完善
### 4.3 验收标准
- [x] 密码修改功能正常
- [x] 表单验证正确
- [x] 修改成功后提示用户
- [x] 错误处理完善
- [x] 单元测试已编写
---
## 六、任务完成汇总
### 已完成任务3/4
| 任务 | 文件数 | 测试覆盖 | 状态 |
|------|--------|----------|------|
| 任务1: 删除作品功能 | 6 | 已编写测试 | ✅ 完成 |
| 任务3: 作品搜索 | 6 | 已编写测试 | ✅ 完成 |
| 任务4: 修改密码 | 7 | 已编写测试 | ✅ 完成 |
**总计**: 19 个文件创建/修改
### 待完成任务1/4
| 任务 | 阻塞原因 | 建议 |
|------|----------|------|
| 任务2: 支付功能 | 需要支付宝 SDK 配置 | 需要先完成支付宝 SDK 集成配置 |
---
## 七、测试策略
### 单元测试
每个 Hook 都需要单元测试:
```bash
# 运行所有测试
npm test
# 运行特定测试文件
npm test use-template-generation-actions
npm test use-works-search
npm test use-change-password
# 查看覆盖率
npm test -- --coverage
```
### 手动测试
| 功能 | 测试点 |
|------|--------|
| 删除作品 | 单个删除、删除后刷新、删除失败处理 |
| 作品搜索 | 关键词搜索、空结果、加载状态 |
| 修改密码 | 密码验证、成功修改、错误处理 |
---
## 八、后续建议
### 立即可做
1. **运行测试验证**
```bash
npm test
npm run test:coverage
```
2. **运行 ESLint 检查**
```bash
npm run lint
```
3. **手动测试功能**
- 在真机或模拟器上测试所有新功能
### 待完成
1. **支付功能任务2**
- 需要先配置支付宝 React Native SDK
- 获取支付宝应用配置信息
- 配置沙箱环境进行测试
---
## 九、完成标准
- [x] 3 个页面完成接口对接任务1、3、4
- [x] 所有单元测试已编写
- [x] 代码遵循 TDD 规范
- [x] 中英文翻译完整
- [x] 代码通过 TypeScript 类型检查
- [ ] 任务2 需要等待支付宝 SDK 配置
---
*开发计划创建于 2026-01-23*
*最后更新于 2026-01-23 - 任务1、3、4 已完成*