# 宇之然 AI 平台 - 进度追踪

**文档版本:** v1.1.0
**最后更新:** 2026-07-11
**状态:** 🟢 联盟返佣系统核心已完成（管理后台 UI 待补）
**负责人:** Hermes Agent

---

## 项目概览

- **目标:** 构建联盟返佣系统，并将「技能广场」与推广链接打通，作为当前（无 ICP 经营许可证前）合规的主力变现路径
- **合规定位:** 会员付费/付费 Skill 属经营性收费，需 ICP 经营许可证。在取证前，以**联盟返佣**（第三方平台结算佣金，非平台经营性收款）为主力变现，配合免费内容 + SEO
- **范围:** 数据库模型（规范化）、后端 API（ORM，去 SQL 注入）、前端展示与点击追踪、单元测试、种子数据

---

## 已完成

| 模块 | 内容 | 说明 |
|------|------|------|
| 数据模型 | `AffiliateProgram` / `AffiliateLink` / `AffiliateClick` | 规范化 Prisma 模型，取代原手写裸表 `affiliate_stats`/`affiliate_clicks` |
| 迁移 | `prisma/migrations/20260711000000_add_affiliate_models` | 建表 + 清理旧裸表；部署时 `prisma migrate deploy` |
| 后端服务 | `affiliate.service.ts` | 改用 Prisma ORM，**消除 SQL 注入**；统计从 `affiliate_clicks` 实时聚合 |
| 后端接口 | `affiliate.controller.ts` | `GET /affiliate/programs`、`/affiliate/links`(支持 `?skillId`/`?toolId`)、`/affiliate/stats`、`POST /affiliate/click/:id` |
| 前端展示 | `affiliate/page.tsx` | 接入真实接口，移除硬编码 demo 数据 |
| 技能打通 | `skills/[id]/client.tsx` | 技能详情页展示「学此技能推荐使用的工具」联盟链接 |
| 测试 | `affiliate.service.spec.ts` | 4 个用例（聚合/点击/异常/过滤），已通过 |
| 种子 | `prisma/seed-affiliate.ts` | 幂等 upsert 阿里云云大使计划 + 推广链接；`npx ts-node prisma/seed-affiliate.ts` |

---

## 待办（下一阶段）

| 任务 | 说明 |
|------|------|
| 管理后台 UI | AffiliateProgram/Link 的列表与编辑页（T-009~T-013） |
| 首页/工具页嵌入 | 在首页与工具详情侧边栏插入「云产品推荐」区块（T-016/T-017） |
| 曝光埋点 | 记录推广位曝光（目前仅记录点击） |

---

## 变现模式排序（无 ICP 证阶段）

1. **联盟返佣**（已落地）— 风险最低，第三方结算佣金
2. 免费内容 + SEO 引流
3. （取证后）会员订阅 / 付费 Skill / 企业版

---

## 变更日志

| 日期 | 版本 | 作者 | 变更摘要 |
|------|------|------|----------|
| 2026-06-25 | v1.0.0 | Hermes Agent | 初始化进度文档 |
| 2026-07-11 | v1.1.0 | Hermes Agent | 规范化联盟数据模型+迁移+ORM服务+前端打通+测试+种子；明确无 ICP 证下的合规变现路径 |
