Files
chunyu_prject_react/.trae/documents/invite-tasks-track-fix.md
T
2026-08-05 23:59:22 +08:00

58 lines
1.7 KiB
Markdown

# 邀请好友功能修复方案
## 问题分析
邀请好友页面(`/wallet/invite`)当前显示邀请码和链接,但当用户通过邀请链接注册时,系统未调用 `tasks.track` API 记录邀请行为,导致邀请任务无法完成和领取奖励。
---
## 当前状态
| 项目 | 状态 |
|------|------|
| 邀请页面 | `src/pages/Wallet/Invite.tsx` |
| 邀请 API | `api_request.invite.getCode()` / `getStats()` / `getRecords()` |
| 任务追踪 API | `api_request.tasks.track({ action_type, count })` |
| 注册流程 | `user_login_or_register` 未传递 `invite_code` |
---
## 问题根因
1. **注册时未传递 invite_code** - 新用户通过邀请链接注册时,前端未将邀请码传递给注册 API
2. **未调用 tasks.track** - 注册成功后未记录邀请行为到任务系统
---
## 实现方案
### 修改文件
| 文件 | 修改内容 |
|------|----------|
| `authSlice.tsx` | 登录/注册时传递 `invite_code` |
| `Invite.tsx` | 注册成功后调用 `tasks.track` |
### 详细步骤
#### 1. 从 URL 提取 invite_code
当用户通过邀请链接(如 `https://chunyu.dev/invite/CY123456` 或带 `?invite=CY123456`)访问时,从 URL 中提取邀请码并存储到 localStorage。
#### 2. 注册时传递 invite_code
在 `user_login_or_register` 请求中附加 `invite_code` 参数。
#### 3. 注册成功后调用 tasks.track
注册成功后,调用 `api_request.tasks.track({ action_type: 'invite', count: 1 })` 记录邀请行为。
---
## 验证步骤
1. 访问 `/invite/CY123456` 确认邀请码被正确提取
2. 使用新账号注册,确认注册请求包含 `invite_code`
3. 注册成功后确认 `tasks.track` 被调用
4. 在任务中心确认邀请任务进度更新