落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。 Co-authored-by: Cursor <cursoragent@cursor.com>
188 lines
4.7 KiB
Markdown
188 lines
4.7 KiB
Markdown
# Feature Spec: 深度版与成长会员
|
||
|
||
> Status: `Active` · Map: `§6 商业体系 · §5.3 会员中心 [P1]` · Phase: `P1`
|
||
> 规范:[../feature-design.md](../feature-design.md)
|
||
|
||
---
|
||
|
||
## 1. 功能定义
|
||
|
||
| 字段 | 内容 |
|
||
|---|---|
|
||
| Name | 深度版成长报告 + 成长会员 |
|
||
| Purpose | 用可理解的权益换取付费;解锁完整分析与更高 Ask 配额 |
|
||
| Business Goal | ARPU;验证付费墙与 mock 支付闭环 |
|
||
|
||
| In | Out |
|
||
|---|---|
|
||
| 单报告 DeepAccess | 广告干扰主路径 |
|
||
| 订阅 Membership(月/季/年 mock) | 塔罗商城 |
|
||
| 问答额度包 ask_pack(mock) | 与会员深度权益混绑(额度包不加深度版) |
|
||
| Server 侧权益生效 | 纯前端「解锁」 |
|
||
|
||
---
|
||
|
||
## 2. 用户价值
|
||
|
||
1. **为何需要:** 基础结果不够用时需要完整分析 / 更多问答。
|
||
2. **完成后获得:** 该报告 detail;或会员期内全部报告深度 + Ask 额度提升。
|
||
3. **为何付费:** 明确权益清单(完整分析、AI 次数、专属内容占位)。
|
||
|
||
---
|
||
|
||
## 3. 用户角色
|
||
|
||
| Actor | 能力 |
|
||
|---|---|
|
||
| Visitor | 可下单 mock 支付 |
|
||
| DeepAccess 持有者 | 指定 report 的 detail |
|
||
| VIP | 会员期内全局深度 + Ask 配额规则 |
|
||
|
||
---
|
||
|
||
## 4. 用户流程
|
||
|
||
### 深度版(报告内)
|
||
|
||
```text
|
||
报告页 Locked CTA
|
||
↓
|
||
POST /orders { kind: deep_access, report_id }
|
||
↓
|
||
POST /orders/{id}/pay-mock
|
||
↓
|
||
写入 deep_access → 刷新报告 detail 可见
|
||
```
|
||
|
||
### 成长会员
|
||
|
||
```text
|
||
/membership 查看套餐与当前状态
|
||
↓
|
||
下单 kind=membership + plan
|
||
↓
|
||
pay-mock → memberships 行 active + expires_at
|
||
↓
|
||
此后 GET 任意己方报告 detail 可见(按服务规则)
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 页面设计
|
||
|
||
| 路由 | 页面 |
|
||
|---|---|
|
||
| `/membership` | MembershipPage |
|
||
| 画像/关系/报告内 | Paywall / DeepAccess CTA |
|
||
|
||
```text
|
||
/membership
|
||
├── Loading
|
||
├── Normal(未开通 / 已开通+到期)
|
||
├── Error
|
||
└── (无独立 Locked;本身即售卖页)
|
||
```
|
||
|
||
---
|
||
|
||
## 6. 页面状态规范
|
||
|
||
| 状态 | UI |
|
||
|---|---|
|
||
| Loading | 拉取 `/membership/me` |
|
||
| Normal | 展示套餐、当前是否会员、到期时间 |
|
||
| Error | 重试 |
|
||
| 报告 Locked | 深度版入口文案(lexicon:深度版/成长会员,不用「解锁」作主文案) |
|
||
|
||
---
|
||
|
||
## 7. Business Rules
|
||
|
||
| ID | Rule |
|
||
|---|---|
|
||
| R1 | DeepAccess 绑定 `user_id` + `report_id` |
|
||
| R2 | Membership active:`expires_at > now` |
|
||
| R3 | 报告 detail 可见 ⇔ Membership active **OR** DeepAccess 存在 |
|
||
| R4 | 支付 P1 仅 mock;成功必须服务端落库后再改可见性 |
|
||
| R5 | Ask 配额:免费次数耗尽后可购 ask_pack 或依赖会员配额(见 ask Spec) |
|
||
| R8 | `ask_pack`:plan=`pack10|pack30|pack100` → 增加 `users.ask_paid_quota_left`;不改变 membership / deep_access |
|
||
| R6 | 订单归属必须校验 report 属于当前用户 |
|
||
| R7 | 文案:成长会员 / 深度版;禁用恐吓与疗效承诺 |
|
||
|
||
---
|
||
|
||
## 8. 数据模型影响
|
||
|
||
| 表 | 备注 |
|
||
|---|---|
|
||
| `orders` | kind, amount, status, report_id null |
|
||
| `payments` | mock |
|
||
| `deep_access` | user_id, report_id, unique |
|
||
| `memberships` | plan, expires_at |
|
||
|
||
---
|
||
|
||
## 9. API 需求
|
||
|
||
| Method | Path | 意图 |
|
||
|---|---|---|
|
||
| GET | `/api/v1/membership/me` | 当前会员状态 |
|
||
| POST | `/api/v1/orders` | deep_access \| membership \| ask_pack |
|
||
| POST | `/api/v1/orders/{id}/pay-mock` | 生效权益 |
|
||
|
||
---
|
||
|
||
## 10. 权限设计
|
||
|
||
| 能力 | Visitor | DeepAccess | VIP |
|
||
|---|---|---|---|
|
||
| 看基础报告 | ✓ | ✓ | ✓ |
|
||
| 看该报告 detail | ✗ | ✓ | ✓ |
|
||
| 看任意己方 detail | ✗ | 仅已购报告 | ✓ |
|
||
| 下单 mock | ✓ | ✓ | ✓ |
|
||
|
||
---
|
||
|
||
## 11. 埋点
|
||
|
||
| Event | 触发 |
|
||
|---|---|
|
||
| `paywall_viewed` | 看到锁定区 |
|
||
| `deep_access_clicked` | 点深度版 |
|
||
| `membership_plan_clicked` | 选套餐 |
|
||
| `order_created` | 下单 |
|
||
| `purchase_completed` | pay-mock 成功 |
|
||
|
||
---
|
||
|
||
## 12. 测试验收标准
|
||
|
||
**Given** 无权益报告
|
||
**When** pay-mock deep_access
|
||
**Then** 再 GET 同报告 detail 非空
|
||
|
||
**Given** 会员未过期
|
||
**When** GET 任意己方 portrait/relation 报告
|
||
**Then** detail 可见无需每份 DeepAccess
|
||
|
||
**Given** 他人 report_id
|
||
**When** 尝试下单
|
||
**Then** 失败(归属校验)
|
||
|
||
---
|
||
|
||
## 13. AI 开发前检查
|
||
|
||
- [x] Spec 齐全 · map · lexicon · OpenAPI · 可测
|
||
|
||
---
|
||
|
||
## 14. Implementation Notes
|
||
|
||
| 项 | 内容 |
|
||
|---|---|
|
||
| Packages | `service/order` · `service/membership` · `MembershipPage` |
|
||
| Gaps | 真支付网关;发票;退款(须先修订本 Spec §9) |
|
||
| Tests | L2 membership unlock;MembershipPage.spec |
|
||
| Process Review | 2026-08-02 [P1-PROCESS-REVIEW](P1-PROCESS-REVIEW.md) · mock 闭环设计闭合 · 实现 PASS · 测试 PASS |
|