# 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 |