feat: P1 合盘/星座/问答与测测完整设计包及模拟器取证工具
落地 synastry/star/ask API 与 H5 页面,补齐 cece-frontend-re complete-design 证据文档,并加入 Android 模拟器截图抓取脚本。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
# 00 · 测测前端总览(L0 IA · 全功能清单)
|
||||
|
||||
> Evidence: 以 E1 实测为主 · E2/E3 补充 · E6/E7 标明推断
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — 全局页面组成(App Shell)
|
||||
|
||||
### 1.1 底部导航(五 Tab)✅ E1
|
||||
|
||||
| Tab | 视觉权重 | 入口职责 |
|
||||
|---|---|---|
|
||||
| 首页 | 标准 | 发现 · 工具宫格 · 信息流 · 建档引导 |
|
||||
| 消息 | 标准 | AI/达人/社区/系统/商业通知 |
|
||||
| **问** | **中央突出 + AI 标识** | 战略入口 → 测测 AI(内含真人 1v1 Tab) |
|
||||
| 在线 | 标准 | 达人 Marketplace |
|
||||
| 我的 | 标准 | 账号 · 档案资产 · 会员订单 |
|
||||
|
||||
```text
|
||||
┌─────────────────────────────┐
|
||||
│ 页面内容区 │
|
||||
├──────┬──────┬──────┬────┬───┤
|
||||
│ 首页 │ 消息 │ 问* │在线│我的│
|
||||
└──────┴──────┴──▲───┴────┴───┘
|
||||
│ *中央悬浮突出 + AI 标识
|
||||
```
|
||||
|
||||
### 1.2 全局浮层 / 横切 UI(推导)
|
||||
|
||||
| 元素 | 来源 | 说明 |
|
||||
|---|---|---|
|
||||
| 登录/绑定弹层 | 🟡 E6 | 游客触达付费/发帖时 |
|
||||
| 会员购买半屏 | ✅ E1 商业描述 | 首月/包月/季/年 |
|
||||
| 网络错误 Toast | 🔵 E7 | 全 App |
|
||||
| 权限(相册/麦克风)系统弹窗 | 🔵 E7 | 沙盘/连麦/OCR |
|
||||
| 青少年/合规提示 | 🟡 E6 | 泛心理合规 |
|
||||
| 分享面板(微信/海报) | ✅ E2 裂变叙事 | 测评结果卡 |
|
||||
| 角标(消息未读) | 🟡 E6 | 消息 Tab |
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — 前端功能全清单(Feature Inventory)
|
||||
|
||||
### A. 导航与账号
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| NAV-01 | 五 Tab 切换 | ✅ E1 |
|
||||
| NAV-02 | 「问」战略权重突出 | ✅ E1 |
|
||||
| ACC-01 | 手机/微信/Apple 登录 | ✅ E1 基础信息 |
|
||||
| ACC-02 | 游客 → 注册升级 | 🟡 E6 |
|
||||
| ACC-03 | 账号设置/注销 | 🔵 E7 |
|
||||
|
||||
### B. 生命档案(前端核心资产)
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| PROF-01 | 创建本人档案(生日/时/地/性别) | ✅ E1 |
|
||||
| PROF-02 | 创建关系档案(伴侣/朋友等) | ✅ E1 |
|
||||
| PROF-03 | 多档案切换 | ✅ E1(AI 视角选择器) |
|
||||
| PROF-04 | 首页「输入生日,更加了解 TA」引导 | ✅ E1 |
|
||||
| PROF-05 | 档案编辑/删除 | 🟡 E6 |
|
||||
| PROF-06 | 兴趣/状态标签 | 🟡 E4 |
|
||||
|
||||
### C. 首页工具宫格(快捷入口)✅ E1
|
||||
|
||||
| ID | 入口文案 | 域 |
|
||||
|---|---|---|
|
||||
| GRID-01 | I人E人(MBTI) | 测评 |
|
||||
| GRID-02 | 星座 | 星座内容 |
|
||||
| GRID-03 | 星盘 | 本命/多盘型 |
|
||||
| GRID-04 | 缘分合盘 | 合盘+指数 |
|
||||
| GRID-05 | 沙盘 | 3D 心理沙盘 |
|
||||
| GRID-06 | 陪伴小星 | AI 陪伴子入口 |
|
||||
| GRID-07 | 商城 | 电商 |
|
||||
| GRID-08 | 倾诉 | 咨询/AI |
|
||||
| GRID-09 | AI 玩法广场 | UGC AI 小应用 |
|
||||
| GRID-10 | 更多 | 收纳扩展 |
|
||||
|
||||
「更多」内公开提到(✅ E2):爱情树(依恋类型)、幸运地图、pick 卡等趣味测。
|
||||
|
||||
### D. 「问」AI 与双轨
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| ASK-01 | 测测 AI 对话 | ✅ E1 |
|
||||
| ASK-02 | 顶栏「测测AI ‖ 真人1v1」 | ✅ E1 |
|
||||
| ASK-03 | 视角:星盘维度 | ✅ E1 |
|
||||
| ASK-04 | 对象:自己 / 已建档 TA | ✅ E1 |
|
||||
| ASK-05 | 深度思考模式开关 | ✅ E1 |
|
||||
| ASK-06 | 灵魂伴侣子入口(横向滑动) | ✅ E1 |
|
||||
| ASK-07 | 预置引导问题(星盘向) | ✅ E1 |
|
||||
| ASK-08 | 下拉历史消息 | ✅ E1 |
|
||||
| ASK-09 | AI 心情小镇(多虚拟倾诉师) | ✅ E1/E2 |
|
||||
| ASK-10 | 灵犀/小智(子场景/模式,非并列 Tab) | ✅ E1 纠正 |
|
||||
|
||||
### E. 星座 / 星盘 / 合盘 / 运势
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| AST-01 | 本命星盘展示与档案切换 | ✅ E3 |
|
||||
| AST-02 | 多盘型(报道称可达约 20 种工具盘) | ✅ E3 |
|
||||
| AST-03 | 合盘:比较盘/组合盘/时空盘/马克斯盘等 | ✅ E3 |
|
||||
| AST-04 | 组合推运等推运变体 | ✅ E3 |
|
||||
| AST-05 | 缘分指数(恋爱等) | ✅ E2 |
|
||||
| AST-06 | 日/周/月/年运势 | ✅ E3/E4 |
|
||||
| AST-07 | 附近的人 / 微信好友连线合盘 | 🟡 E3/行业 + 产品常见;【待真机补证】 |
|
||||
|
||||
### F. 测评与神秘学工具
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| TEST-01 | MBTI(修订量表+分享) | ✅ E1/E2 |
|
||||
| TEST-02 | 双人 MBTI/性格关系 | ✅ E2 |
|
||||
| TEST-03 | 塔罗抽牌/提问 | ✅ E3 |
|
||||
| TEST-04 | 八字/紫微/生命数字等 | ✅ E3 |
|
||||
| TEST-05 | 爱情树/幸运地图/pick 卡 | ✅ E2 |
|
||||
| TEST-06 | 50+ 心理测试矩阵 | 🟡 E3 口径 |
|
||||
|
||||
### G. 沉浸体验
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| IMM-01 | 3D 心理沙盘 | ✅ E1/E2 |
|
||||
| IMM-02 | AI 心情小镇(约 6 人设,含「明朗」) | ✅ E1 |
|
||||
|
||||
### H. 社区与内容
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| SOC-01 | 首页信息流(文章/视频/故事/达人) | ✅ E1 |
|
||||
| SOC-02 | 今日运势/热门测试/专家推荐 | ✅ E4 |
|
||||
| SOC-03 | AI 玩法广场 UGC 列表(热度/创作者) | ✅ E1 |
|
||||
| SOC-04 | 赞评关私信 | 🟡 E4 |
|
||||
|
||||
### I. 在线达人
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| EXP-01 | 达人列表/筛选 | ✅ E1 |
|
||||
| EXP-02 | 文字/语音/连麦咨询 | ✅ E1 |
|
||||
| EXP-03 | 评价/复购 | 🟡 E6 |
|
||||
| EXP-04 | 达人约 2.6 万签约口径 | ✅ E1 官方口径 |
|
||||
|
||||
### J. 商业化前端
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| PAY-01 | 会员:首月 9.9 / 续订 25/月;季 58;年 178 | ✅ E1 |
|
||||
| PAY-02 | 报告解锁 / AI 次数 | ✅ E1 |
|
||||
| PAY-03 | 咨询下单支付 | ✅ E1 |
|
||||
| PAY-04 | 商城 | ✅ E1 宫格 |
|
||||
| PAY-05 | 主动压缩干扰广告 | ✅ E1 |
|
||||
|
||||
### K. 增长
|
||||
|
||||
| ID | 功能 | 证据 |
|
||||
|---|---|---|
|
||||
| GRW-01 | 测评结果分享卡 | ✅ E1/E2 |
|
||||
| GRW-02 | 邀请好友测 MBTI | ✅ E2 |
|
||||
| GRW-03 | 签到/积分/勋章 | 🟡 E4 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — 全局用户流程
|
||||
|
||||
### 3.1 新用户冷启动 ✅ E1 场景
|
||||
|
||||
```text
|
||||
打开 App
|
||||
→(可选登录)首页
|
||||
→ 点宫格 MBTI / 或看信息流
|
||||
→ 完成测评 → 结果页 → 分享/付费墙
|
||||
→ 引导建档(生日)
|
||||
→ 可进入「问」或合盘
|
||||
```
|
||||
|
||||
### 3.2 关系资产飞轮 ✅ E1
|
||||
|
||||
```text
|
||||
首页「了解 TA」/ AI 对象切换
|
||||
→ 录入对方生日建关系档案
|
||||
→ AI 基于 TA 星盘回答 / 合盘
|
||||
→ 分享结果 → 拉新
|
||||
```
|
||||
|
||||
### 3.3 全局失败路径(必须实现)🔵 E7
|
||||
|
||||
| 场景 | 前端表现 |
|
||||
|---|---|
|
||||
| 断网/弱网 | 空态 + 重试;消息/AI 发送失败可重发 |
|
||||
| Token 失效 | 跳登录;草稿保留 |
|
||||
| 接口超时 | Toast + 重试 |
|
||||
| 会员限制 | VIPLocked 半屏 |
|
||||
| 余额不足(咨询) | 充值/支付 |
|
||||
| 审核失败(UGC) | 说明原因 |
|
||||
| 数据为空 | Empty 插画 + CTA |
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 全局状态机(App Shell)
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Init
|
||||
Init --> Loading: 启动
|
||||
Loading --> GuestHome: 无登录
|
||||
Loading --> AuthedHome: 已登录
|
||||
GuestHome --> LoginRequired: 触达 gated
|
||||
LoginRequired --> AuthedHome: 登录成功
|
||||
AuthedHome --> Offline: 断网
|
||||
Offline --> AuthedHome: 恢复
|
||||
AuthedHome --> VIPLocked: 点深度权益
|
||||
VIPLocked --> AuthedHome: 购买或关闭
|
||||
AuthedHome --> Error: 致命错误
|
||||
Error --> AuthedHome: 重试
|
||||
```
|
||||
|
||||
页面级状态见各 Tab 文档。
|
||||
|
||||
---
|
||||
|
||||
## 页面路由树(前端逻辑路由 · 推导)
|
||||
|
||||
```text
|
||||
/ 首页
|
||||
/message 消息
|
||||
/ask 问(默认 AI)
|
||||
/ask?mode=human 真人1v1
|
||||
/online 在线达人列表
|
||||
/online/:expertId 达人详情
|
||||
/consult/:sessionId 咨询会话
|
||||
/mine 我的
|
||||
/profile/list 档案列表
|
||||
/profile/edit/:id 档案编辑
|
||||
/tools/mbti MBTI
|
||||
/tools/chart 星盘
|
||||
/tools/synastry 缘分合盘
|
||||
/tools/sandbox 沙盘
|
||||
/tools/plaza AI玩法广场
|
||||
/tools/plaza/:appId 玩法详情
|
||||
/tools/tarot 塔罗
|
||||
/tools/bazi 八字…
|
||||
/membership 会员
|
||||
/orders 订单
|
||||
/shop 商城
|
||||
/mood-town AI心情小镇
|
||||
```
|
||||
|
||||
路径名为 🔵 工程命名;测测真实 Deep Link 【待真机补证】。
|
||||
@@ -0,0 +1,118 @@
|
||||
# 01 · Tab「首页」逆向设计
|
||||
|
||||
> Evidence: ✅ E1 实测 · ✅ E2「更多」工具 · 🟡/🔵 补全交互
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — UI Analysis
|
||||
|
||||
### 区域结构(自上而下)
|
||||
|
||||
| # | 区域 | 可见元素 | 证据 |
|
||||
|---|---|---|---|
|
||||
| H1 | 顶栏 | 可能含搜索/消息入口;「输入生日,更加了解 TA」引导条 | ✅ E1 |
|
||||
| H2 | 用户/档案摘要 | 当前本人档案摘要或未建档 CTA | 🟡 E6 |
|
||||
| H3 | 功能宫格 | I人E人、星座、星盘、缘分合盘、沙盘、陪伴小星、商城、倾诉、AI玩法广场、更多 | ✅ E1 |
|
||||
| H4 | 运营 Banner | 活动/会员/新品 | 🟡 E6 |
|
||||
| H5 | 推荐信息流 | 今日运势、热门测试、AI入口、专家推荐、文章/视频/故事/达人内容 | ✅ E1/E4 |
|
||||
| H6 | 底部 Tab Bar | 全局 | ✅ E1 |
|
||||
|
||||
### 宫格 Icon 全集(不得遗漏)✅ E1
|
||||
|
||||
1. I人E人(MBTI)
|
||||
2. 星座
|
||||
3. 星盘
|
||||
4. 缘分合盘
|
||||
5. 沙盘
|
||||
6. 陪伴小星
|
||||
7. 商城
|
||||
8. 倾诉
|
||||
9. AI玩法广场
|
||||
10. 更多 → 二级页:爱情树、幸运地图、pick卡… ✅ E2
|
||||
|
||||
### AI 玩法广场页内元素 ✅ E1
|
||||
|
||||
- Slogan:「全民手搓创意——精选应用」
|
||||
- 列表卡片:应用名、热度(如 SBTI 305.7 万)、创作者名
|
||||
- 示例:SBTI 测试版、答案之书、三生三世你和 Ta、灵魂伴侣
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis(逐元素)
|
||||
|
||||
| 元素 | 作用 | 点击 | 长按/其它 | 权限/VIP | 分享 |
|
||||
|---|---|---|---|---|---|
|
||||
| 了解 TA 引导 | 建关系档案 | 进档案创建表 | — | 登录 | 否 |
|
||||
| MBTI | 拉新测评 | 进量表流程 | — | 部分结果免费 | 结果强分享 |
|
||||
| 星座 | 内容/运势 | 星座频道 | — | 深度会员 | 文章可分享 |
|
||||
| 星盘 | 本命排盘 | 星盘页+档案切换 | — | 多盘型/详解会员 | 海报 |
|
||||
| 缘分合盘 | 双人匹配 | 选 A/B→报告 | — | 指数免费/深文案付费 | 指数卡 |
|
||||
| 沙盘 | 沉浸投射 | 3D 沙盘 | — | 可能次数限制 | 场景图 |
|
||||
| 陪伴小星 | AI 陪伴 | 进子场景/问 | — | AI 次数 | 否 |
|
||||
| 商城 | 电商 | 商品列表 | — | 登录支付 | 商品 |
|
||||
| 倾诉 | 咨询/AI | 分流问/在线 | — | — | 否 |
|
||||
| AI玩法广场 | UGC 应用集市 | 列表→应用 | — | 视应用 | 应用结果 |
|
||||
| 信息流卡片 | 消费/转化 | 详情/达人/测试 | 可能不喜欢 | — | 内容分享 |
|
||||
| 更多 | 收纳 | 二级宫格 | — | — | — |
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
### 主流程:测评拉新
|
||||
|
||||
```text
|
||||
首页 → MBTI → 答题 → Loading → 结果
|
||||
→ 分享 / 解锁完整 / 邀请好友再测
|
||||
→ 失败:网络错误重试;中途退出保存进度【待真机】
|
||||
```
|
||||
|
||||
### 主流程:建 TA 档案
|
||||
|
||||
```text
|
||||
首页引导 → 填写生日/关系类型 → 保存
|
||||
→ 可用于合盘 / AI 对象切换
|
||||
→ 失败:校验生日非法;未登录 → LoginRequired
|
||||
```
|
||||
|
||||
### 主流程:玩法广场
|
||||
|
||||
```text
|
||||
宫格 → 广场列表 → 选应用 → 互动 → 结果 → 热度/分享
|
||||
→ Empty:无应用;审核中不可见 🔵
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机
|
||||
|
||||
| 状态 | UI |
|
||||
|---|---|
|
||||
| Init/Loading | 骨架屏 |
|
||||
| Loaded | 宫格+流 |
|
||||
| EmptyFeed | 流空+推荐宫格 |
|
||||
| Offline | 顶条提示 |
|
||||
| LoginRequired | 登录半屏 |
|
||||
| VIPLocked | 会员半屏 |
|
||||
| Error | 重试 |
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Loading
|
||||
Loading --> Loaded
|
||||
Loading --> Error
|
||||
Loaded --> LoginRequired
|
||||
Loaded --> VIPLocked
|
||||
Loaded --> Offline
|
||||
Offline --> Loaded
|
||||
Error --> Loading: 重试
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 页面验收(前端)
|
||||
|
||||
- [ ] 宫格 9+更多与 E1 一致(版本差分记日志)
|
||||
- [ ] 「了解 TA」可达档案创建
|
||||
- [ ] 玩法广场展示热度与创作者
|
||||
- [ ] 信息流可下拉刷新 / 分页 🔵
|
||||
@@ -0,0 +1,55 @@
|
||||
# 02 · Tab「消息」逆向设计
|
||||
|
||||
> Evidence: ✅ E1/E4 分类 · 细交互多为 🟡/🔵(【待真机补证】)
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — UI Analysis
|
||||
|
||||
| 区域 | 元素 | 证据 |
|
||||
|---|---|---|
|
||||
| 顶栏 | 标题「消息」· 可能「一键已读」 | 🟡 E6 |
|
||||
| 分类 Tab/分组列表 | AI 消息 · 达人消息 · 社区互动 · 系统 · 商业 | ✅ E4 |
|
||||
| 会话行 | 头像 · 标题 · 摘要 · 时间 · 未读红点 | 🟡 E6 |
|
||||
| 空态 | 插画 +「去问问 AI」CTA | 🔵 E7 |
|
||||
| 底栏 | 全局 Tab,消息角标 | 🟡 E6 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis
|
||||
|
||||
| 类型 | 作用 | 点击 | 删除/免扰 | 登录 |
|
||||
|---|---|---|---|---|
|
||||
| AI 消息 | 会话提醒/未读 AI | 进「问」对应线程 | 可删会话 🟡 | 是 |
|
||||
| 达人消息 | 咨询回复 | 进咨询会话 | 是 | 是 |
|
||||
| 社区 | 赞评关私信 | 进动态/私信 | 是 | 是 |
|
||||
| 系统 | 公告/合规 | 详情页 | 通常不可删 | 是 |
|
||||
| 商业 | 会员到期/订单/活动 | 会员/订单页 | 是 | 是 |
|
||||
|
||||
长按:删除会话 / 标记已读 / 免打扰 🟡 E6。
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
```text
|
||||
进入消息 → Loading → 列表
|
||||
→ 点 AI 会话 → /ask 历史
|
||||
→ 点达人 → 咨询页(可能支付状态校验)
|
||||
→ 点系统 → H5/原生详情
|
||||
失败:Token 失效登录;离线缓存只读 🔵
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机
|
||||
|
||||
Init → Loading → Loaded | Empty | Offline | Error | LoginRequired
|
||||
|
||||
未读数:本地角标 ↔ 服务端 sync 🔵。
|
||||
|
||||
---
|
||||
|
||||
## 后台推导(摘要 · 详见 08)
|
||||
|
||||
推送通道、消息模板、免打扰时段、达人回复 SLA 监控 🔵。
|
||||
@@ -0,0 +1,101 @@
|
||||
# 03 · Tab「问」逆向设计(测测 AI + 真人 1v1)
|
||||
|
||||
> Evidence: ✅ E1 实测最完整 · 核心战略入口
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — UI Analysis
|
||||
|
||||
### 进入方式
|
||||
|
||||
- 底部中央「问」悬浮大按钮 + AI 标识 ✅ E1
|
||||
|
||||
### 对话页结构 ✅ E1
|
||||
|
||||
| 区域 | 元素 |
|
||||
|---|---|
|
||||
| 顶栏 | Tab:**测测AI** ‖ **真人1v1** |
|
||||
| 提示 | 「下拉可浏览历史消息」 |
|
||||
| 消息区 | 气泡列表 · 引导问题卡片(冷启动) |
|
||||
| 上下文条(输入框上方) | **星盘**(解读维度)· **对象名**(默认「自己」,可切 TA)· **深度思考** |
|
||||
| 右侧滑动 | **灵魂伴侣** 子入口 |
|
||||
| 输入区 | 文本框 · 发送 · 可能语音 🟡 |
|
||||
| 预置问题示例 | 「什么样的朋友适合我」「下周的财富情况如何」「本月在人际上需要注意什么」等(星盘向) |
|
||||
|
||||
### 子场景(非并列 Tab)✅ E1
|
||||
|
||||
- 灵魂伴侣:测测 AI 生态内横向入口
|
||||
- AI 心情小镇:独立沉浸(多从首页/运营进入)· 约 6 位虚拟倾诉师 · OCR/情感识别 · 角色「明朗」等
|
||||
- 灵犀 / 小智:更接近模式或子场景,**不是**与测测 AI 同级的底部入口
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis
|
||||
|
||||
| 元素 | 作用 | 点击后 | VIP/次数 | 其它 |
|
||||
|---|---|---|---|---|
|
||||
| 测测AI Tab | 免费/限额 AI | 保持 AI 会话 | AI 次数/会员扩容 | — |
|
||||
| 真人1v1 Tab | 达人咨询 | 达人列表或推荐咨询 | 付费 | 可从 AI 低摩擦切换 |
|
||||
| 星盘标签 | 切换解读维度 | 维度面板【待真机】 | — | — |
|
||||
| 对象名称 | 切换档案 | 档案选择器(自己/TA) | 需已建档 | 长按?【待真机】 |
|
||||
| 深度思考 | 更高推理模式 | Toggle;可能耗更多额度 | 可能会员 | — |
|
||||
| 灵魂伴侣 | 子场景 | 进入专项互动 | 视产品 | 可分享 🟡 |
|
||||
| 引导问题 | 冷启动 | 自动填入并发送 | 计次 | — |
|
||||
| 发送 | 提交 | Streaming 回复 | 额度不足 → 会员墙 | 防重复点击 🔵 |
|
||||
| 下拉历史 | 翻旧消息 | 分页加载 | — | ≠ 长期记忆 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
### AI 主路径
|
||||
|
||||
```text
|
||||
点「问」→ Loading 会话
|
||||
→ 展示引导问题(星盘向)
|
||||
→ 可选:切换对象为 TA(无档案则引导创建)
|
||||
→ 可选:开深度思考
|
||||
→ 发送 → Streaming
|
||||
→ 可切换「真人1v1」升单
|
||||
```
|
||||
|
||||
### 失败 / 边界
|
||||
|
||||
| 场景 | 处理 |
|
||||
|---|---|
|
||||
| 无额度 | VIPLocked / 看广告?【待真机】 |
|
||||
| 敏感内容 | 拒答 + 转介真人/热线 🔵 |
|
||||
| 超时 | 重试气泡 |
|
||||
| 对象无星盘数据 | 引导补全出生信息 |
|
||||
| 中重度心理危机 | 明确边界文案 + 转介 🔵 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Loading
|
||||
Loading --> IdleEmpty: 新会话
|
||||
Loading --> IdleWithHistory: 有历史
|
||||
IdleEmpty --> Streaming: 发送/点引导
|
||||
IdleWithHistory --> Streaming
|
||||
Streaming --> IdleWithHistory: 完成
|
||||
Streaming --> Failed: 错误
|
||||
Failed --> Streaming: 重试
|
||||
IdleWithHistory --> LoginRequired
|
||||
IdleWithHistory --> VIPLocked: 额度用尽
|
||||
IdleWithHistory --> HumanRail: 切真人1v1
|
||||
```
|
||||
|
||||
状态枚举:Init · Loading · IdleEmpty · IdleWithHistory · Streaming · Failed · Retrying · Offline · LoginRequired · VIPLocked · HumanRail · PermissionDenied(麦克风)
|
||||
|
||||
---
|
||||
|
||||
## 差异化要点(产品事实)✅ E1
|
||||
|
||||
1. AI **挂星盘档案**,非通用闲聊
|
||||
2. **对象切换**把「了解自己」扩到「分析关系」
|
||||
3. AI ‖ 真人 **同页双轨**
|
||||
|
||||
已知缺口(公开评价)✅ E1:偏被动触达;跨会话长期记忆不足;引导问题偏运势易被感知为「算命 AI」。
|
||||
@@ -0,0 +1,57 @@
|
||||
# 04 · Tab「在线」逆向设计(达人 Marketplace)
|
||||
|
||||
> Evidence: ✅ E1 双边平台描述 · 列表 UI 细节 🟡【待真机】
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — UI Analysis
|
||||
|
||||
| 区域 | 元素 | 证据 |
|
||||
|---|---|---|
|
||||
| 顶栏 | 搜索达人 · 筛选(领域/价格/好评) | 🟡 E6 |
|
||||
| 运营位 | 推荐达人 Banner | 🟡 E6 |
|
||||
| 列表卡片 | 头像 · 昵称 · 领域标签(星座/塔罗/命理/情感)· 评分 · 价格起 · 在线状态 | ✅ E1 类型 + 🟡 UI |
|
||||
| 详情页 | 简介 · 服务项(文字/语音/连麦)· 评价 · 下单 CTA | ✅ E1 |
|
||||
| 会话页 | 聊天/通话 UI · 倒计时/计费 | 🟡 E6 |
|
||||
|
||||
专家类型 ✅ E1:星座专家 · 塔罗师 · 命理师 · 心理/情感达人。
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis
|
||||
|
||||
| 元素 | 点击 | 支付 | 评价 | 举报 |
|
||||
|---|---|---|---|---|
|
||||
| 达人卡 | 详情 | — | — | — |
|
||||
| 文字咨询 | 下单→会话 | 是 | 结束后 | 是 🔵 |
|
||||
| 语音/连麦 | 权限+下单 | 是 | 是 | 是 🔵 |
|
||||
| 收藏达人 | Toggle | — | — | — 🟡 |
|
||||
| 筛选排序 | 刷新列表 | — | — | — |
|
||||
|
||||
撮合:推荐排序 · 平台抽成 ✅ E1。
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
```text
|
||||
在线 → 浏览/搜索/筛选 → 达人详情
|
||||
→ 选服务方式 → 创建订单 → 支付
|
||||
→ 等待接单 → 服务中 → 结束 → 评价 → 复购
|
||||
失败:支付取消/失败;达人拒单;超时退款;权限拒绝麦克风
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机(订单视角)
|
||||
|
||||
Created → Paying → Paid → Matched → InService → Completed → Reviewed
|
||||
旁路:Cancelled · Refunding · Refunded · Dispute
|
||||
|
||||
前端页映射:列表 Loaded/Empty · 详情 · Checkout · Waiting · Chatting · Call · Rate。
|
||||
|
||||
---
|
||||
|
||||
## 达人供给运营(后台推导)🔵
|
||||
|
||||
入驻审核 · 培训激励 · 测测达人版工具 · 服务质量监控 · 分佣配置。
|
||||
@@ -0,0 +1,61 @@
|
||||
# 05 · Tab「我的」逆向设计
|
||||
|
||||
> Evidence: ✅ E1 资产分层 · 菜单项 🟡【待真机补全文案】
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — UI Analysis
|
||||
|
||||
| 区域 | 元素 | 证据 |
|
||||
|---|---|---|
|
||||
| 头部 | 头像 · 昵称 · 会员标识 · 编辑资料 | ✅ E1 账号体系 |
|
||||
| 资产摘要 | 会员状态 · AI 剩余次数 · 积分/等级 🟡 | ✅ E1 + 🟡 |
|
||||
| 功能列表 | 生命档案 · 测试/报告库 · AI 对话历史 · 订单 · 会员中心 · 收藏 · 设置 · 客服 | ✅ E1 §5 + 🔵 |
|
||||
| 其它 | 达人入驻入口? · 关于/协议 | 🟡 E6 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis
|
||||
|
||||
| 入口 | 作用 | 点击 | 编辑/删除 | VIP |
|
||||
|---|---|---|---|---|
|
||||
| 生命档案 | Self/Other 管理 | 列表/编辑 | 是 | — |
|
||||
| 测试记录 | 历史量表 | 报告详情 | 可能删 | 深度报告 |
|
||||
| 报告库 | 星盘/合盘/AI 报告 | 打开 | 收藏 | 解锁态 |
|
||||
| AI 历史 | 会话列表 | 进「问」 | 删会话 | — |
|
||||
| 会员中心 | 订阅管理 | 购买/管理自动续费 | — | — |
|
||||
| 订单 | 咨询/商城/解锁 | 详情/退款入口 | — | — |
|
||||
| 设置 | 账号安全/通知/隐私 | 子页 | 注销 | — |
|
||||
| 分享邀请 | 裂变 | 邀请码/海报 | — | — 🟡 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
```text
|
||||
我的 → 点档案 → 编辑生日/关系
|
||||
我的 → 会员 → 选套餐 → 支付 → 权益生效
|
||||
我的 → 订单 → 售后/发票【待真机】
|
||||
失败:登录态丢失;支付中断;注销二次确认
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机
|
||||
|
||||
GuestMine(引导登录)· Loading · Loaded · VIPActive · VIPExpired · Error
|
||||
|
||||
会员角标与首页权益 Tip 联动 🔵。
|
||||
|
||||
---
|
||||
|
||||
## 会员定价前端展示(必须完整)✅ E1
|
||||
|
||||
| 套餐 | 价格 |
|
||||
|---|---|
|
||||
| 首月 | ¥9.9 |
|
||||
| 续订月 | ¥25/月 |
|
||||
| 连续包季 | ¥58/季(约 ¥19.3/月) |
|
||||
| 连续包年 | ¥178/年(约 ¥14.8/月) |
|
||||
|
||||
权益文案:完整测评报告 · AI 次数扩展 · 专属内容 ·(历史含去广告)✅ E1。
|
||||
@@ -0,0 +1,104 @@
|
||||
# 06 · 工具域:星座 · 星盘 · 合盘 · 运势
|
||||
|
||||
> Evidence: ✅ E1/E2 入口与合盘指数 · ✅ E3 盘型列表 · 社交合盘 🟡【待真机】
|
||||
|
||||
---
|
||||
|
||||
## STEP 1 — 页面家族
|
||||
|
||||
| 页面 | 主要 UI | 证据 |
|
||||
|---|---|---|
|
||||
| 星座频道 | 十二星座列表/今日运势流 | ✅ E4 |
|
||||
| 本命星盘 | 圆形星盘 · 行星列表 · 宫位 · 档案切换 · 添加档案 | ✅ E3 操作步骤 |
|
||||
| 盘型选择 | 多盘型工具(报道称对标多软件、约 20 种) | ✅ E3 |
|
||||
| 运势 | 日/周/月/年(及一生类报告) | ✅ E3 |
|
||||
| 缘分合盘 | 双人选择 · 指数 · 多盘型 Tab | ✅ E2/E3 |
|
||||
| 合盘社交 | 附近的人 / 好友连线 | 🟡 E3/行业 |
|
||||
|
||||
### 合盘盘型(前端 Tab 级)✅ E3
|
||||
|
||||
| 盘型 | 说明(产品侧) |
|
||||
|---|---|
|
||||
| 比较盘 | 双盘叠合与跨盘相位 |
|
||||
| 组合盘 | 中点关系盘 |
|
||||
| 时空盘 | 时刻/坐标中点再排盘 |
|
||||
| 马克斯盘(马克思盘) | 时空×本命中点视角 |
|
||||
| 组合推运等 | 次限/推运变体 |
|
||||
|
||||
另:行运盘、三限盘、月亮返照等出现在星盘工具描述中 ✅ E3。
|
||||
|
||||
---
|
||||
|
||||
## STEP 2 — Feature Analysis
|
||||
|
||||
| 元素 | 作用 | 交互 | VIP |
|
||||
|---|---|---|---|
|
||||
| 档案切换 | 换本命主体 | 顶栏切换/添加 | — |
|
||||
| 星盘图 | 可视化 | 点行星看释义 | 详解付费 |
|
||||
| 相位表 | 关系动力 | 列表/点击 | 完整表会员 |
|
||||
| 恋爱/友情/婚姻指数 | 缘分量化 | 结果页大数字 | 指数免费/解读付费 🟡 |
|
||||
| 盘型 Tab | 切换算法视图 | 不重复支付同报告 🟡 | 深文案付费 |
|
||||
| 推运日期 | 次限 as_of | 日期选择器 | — |
|
||||
| 分享 | 裂变 | 海报/链接 | — |
|
||||
| 附近的人 | 匹配合盘对象 | 定位授权 | 隐私开关 🔵 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 3 — User Flow
|
||||
|
||||
### 本命星盘
|
||||
|
||||
```text
|
||||
首页「星盘」→ 默认本人盘
|
||||
→ 右上切换/添加他人档案(生日等)
|
||||
→ 返回切换查看
|
||||
→ 可选盘型/运势/报告解锁
|
||||
```
|
||||
|
||||
### 缘分合盘
|
||||
|
||||
```text
|
||||
首页「缘分合盘」→ 选档案 A/B(或快速建档)
|
||||
→ 生成指数 + 默认比较盘
|
||||
→ Tab 切换组合/时空/马克斯/配对/推运
|
||||
→ 深度解锁 / 分享
|
||||
```
|
||||
|
||||
### 失败
|
||||
|
||||
缺出生时 → 上升/宫位降级提示;定位拒绝 → 仅手动选城;支付失败保留摘要。
|
||||
|
||||
---
|
||||
|
||||
## STEP 4 — 状态机(合盘报告页)
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Form
|
||||
Form --> Computing: 提交
|
||||
Computing --> SummaryFree: 成功
|
||||
Computing --> Error
|
||||
SummaryFree --> DeepLocked
|
||||
DeepLocked --> DeepOpen: 支付/会员
|
||||
SummaryFree --> ChartTabSwitch
|
||||
ChartTabSwitch --> SummaryFree
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 数据/算法面(前端依赖)
|
||||
|
||||
| 输入 | 字段 |
|
||||
|---|---|
|
||||
| BirthInfo | date · time · place · lat/lng · tz |
|
||||
| Chart | planets[] · houses · aspects · asc |
|
||||
| SynastryReport | indices · charts{} · as_of |
|
||||
|
||||
星历与宫位制:生产级需 Swiss Ephemeris 等 🔵;Whole Sign / Placidus 等切换【待真机】。
|
||||
|
||||
---
|
||||
|
||||
## 愈心谷对齐
|
||||
|
||||
已实现方向:`star-profile.md` · Synastry 五主盘+推运 · 附近/邀请。
|
||||
测测「约 20 种盘」未全部落地处:Spec 中保留完整清单,实现按分期标注「未交付」而非删除。
|
||||
@@ -0,0 +1,115 @@
|
||||
# 07 · 工具域:测评 · 塔罗 · 沙盘 · 心情小镇 · 趣味玩法
|
||||
|
||||
> Evidence: ✅ E1/E2 · 流程细节 🟡/🔵
|
||||
|
||||
---
|
||||
|
||||
## A. MBTI / I人E人 ✅ E1/E2
|
||||
|
||||
### STEP 1–2
|
||||
|
||||
| UI | 交互 |
|
||||
|---|---|
|
||||
| 介绍页 · 开始测 | 进入答题 |
|
||||
| 题目卡 · 进度条 | 单选;可返回上一题 🟡 |
|
||||
| 结果页:16 型标签 · 维度图 · 解读 | 分享强引导;邀请好友对照关系类型 ✅ E2 |
|
||||
| 付费墙 | 完整报告 |
|
||||
|
||||
学术背书:心言心理组修订量表、期刊《心理学进展》✅ E1(专业性证据,非 UI)。
|
||||
|
||||
### Flow
|
||||
|
||||
```text
|
||||
开始 → N 题 → 提交 → 计分 Loading → 结果 → 分享/解锁/再测/双人对照
|
||||
```
|
||||
|
||||
状态:Answering · Submitting · ResultFree · ResultLocked · ShareSheet。
|
||||
|
||||
---
|
||||
|
||||
## B. AI 玩法广场 ✅ E1
|
||||
|
||||
UGC 小应用集市(非官方智能体矩阵)。
|
||||
|
||||
| UI | 说明 |
|
||||
|---|---|
|
||||
| 列表 | 名 · 热度 · 创作者 |
|
||||
| 应用页 | 互动表单/对话 → 结果 |
|
||||
| 创作入口 | 达人/用户「手搓」【待真机是否 C 端开放】 |
|
||||
|
||||
示例应用:SBTI、答案之书、三生三世你和 Ta、灵魂伴侣。
|
||||
|
||||
审核:上架前内容审核 🔵;违规下架。
|
||||
|
||||
---
|
||||
|
||||
## C. 3D 心理沙盘 ✅ E1/E2
|
||||
|
||||
| UI | 交互 |
|
||||
|---|---|
|
||||
| 3D 场景画布 | 拖放沙具/排序 |
|
||||
| 主题模板 | 职场焦虑等场景引导 |
|
||||
| AI 投射分析 | 生成解读 |
|
||||
| 保存/分享 | 场景快照 |
|
||||
|
||||
数据:超 1200 万用户口径 ✅ E1。权限:可能陀螺仪/性能降级 🔵。
|
||||
|
||||
---
|
||||
|
||||
## D. AI 心情小镇 ✅ E1
|
||||
|
||||
| UI | 交互 |
|
||||
|---|---|
|
||||
| 角色选择 | ~6 人设(知心姐姐、理性学长、明朗…) |
|
||||
| 对话/互动 | OCR · 情感识别 |
|
||||
| 沉浸场景 | 小镇视觉 |
|
||||
|
||||
边界:轻度情绪;中重度转真人/专业机构 ✅ E1。
|
||||
|
||||
---
|
||||
|
||||
## E. 塔罗 ✅ E3
|
||||
|
||||
抽牌(单牌/三牌/阵)→ AI/达人解读 → 可提问;可能拍照识牌 🟡。
|
||||
结果页:牌义 · 组合 · 建议 · 付费扩展。
|
||||
|
||||
---
|
||||
|
||||
## F. 命理工具箱 ✅ E3
|
||||
|
||||
八字(四柱/五行/大运/流年)· 紫微 · 姓名五格 · 二十八宿 · 生命数字。
|
||||
前端:表单(姓名/生日)→ 盘面/条文 → 解锁。
|
||||
|
||||
---
|
||||
|
||||
## G. 「更多」趣味测 ✅ E2
|
||||
|
||||
| 名称 | 用途 |
|
||||
|---|---|
|
||||
| 爱情树 | 依恋类型 |
|
||||
| 幸运地图 | 幸运/桃花城市等 |
|
||||
| pick 卡 | 趣味抽取 |
|
||||
|
||||
Flow 同轻量测评:介绍 → 互动 → 结果 → 分享。
|
||||
|
||||
---
|
||||
|
||||
## H. 每日心情 / 打卡 🟡 E1 留存叙述
|
||||
|
||||
入口可能在首页或陪伴场景;打卡日历 · 情绪曲线 · 驱动晚间打开(50% 用户 19:00 后 ✅ E1)。
|
||||
|
||||
---
|
||||
|
||||
## 统一测评状态机
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Intro
|
||||
Intro --> InProgress
|
||||
InProgress --> Scoring
|
||||
Scoring --> ResultTeaser
|
||||
ResultTeaser --> Paywall
|
||||
Paywall --> ResultFull
|
||||
ResultTeaser --> Share
|
||||
Scoring --> Error
|
||||
```
|
||||
@@ -0,0 +1,232 @@
|
||||
# 08 · 横切系统逆向(STEP 5–18)
|
||||
|
||||
> 支撑前端全功能的数据 / API / 后台 / 运营 / 安全推导
|
||||
> 标记:无公开 UI 的条目多为 🟡/🔵,但**禁止省略整类**
|
||||
|
||||
---
|
||||
|
||||
## STEP 5 — 数据模型(核心对象)
|
||||
|
||||
| 对象 | 关键字段(类型) | 可空 | 默认 | 来源 | 缓存 | 索引 | 证据 |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| User | id UUID PK · phone · wx_openid · status · created_at | 部分 | active | 注册 | Redis session | phone unique | ✅ E1 |
|
||||
| Profile | id · user_id · relation(self/other) · display_name · birth_date · birth_time · birth_place · geo_* · tags JSON | time/place 可空 | — | 建档 | 本地+服务端 | user_id | ✅ E1 |
|
||||
| BirthInfo | 可内嵌 Profile | — | tz=CST+8 🟡 | — | — | — | 🟡 |
|
||||
| AstrologyChart | profile_id · jd · planets JSON · houses JSON · system · version | — | — | 计算服务 | 按 profile+ver | profile_id | 🔵 |
|
||||
| SynastryReport | id · profile_a · profile_b · indices JSON · charts JSON · as_of | — | — | 合盘 | 报告缓存 | (a,b) | ✅ E3 |
|
||||
| TestDefinition | slug · title · questions JSON · scoring | — | published | CMS | CDN | slug | ✅ E1 MBTI |
|
||||
| TestRecord | user_id · test_id · answers · result · share_code | — | — | 提交 | — | user_id | ✅ E2 |
|
||||
| AIConversation | id · user_id · profile_ctx_id · mode · messages | — | — | 问 | 热数据 | user_id | ✅ E1 |
|
||||
| AIQuota | user_id · remaining · period | — | 免费额 | 会员 | Redis | user_id | ✅ E1 |
|
||||
| Expert | id · domains[] · price_text · price_voice · score · online | — | — | 达人平台 | 列表缓存 | domain | ✅ E1 |
|
||||
| ConsultOrder | id · user_id · expert_id · mode · amount · status | — | created | 下单 | — | status | ✅ E1 |
|
||||
| Membership | user_id · plan · status · expires_at · auto_renew | — | — | 订阅 | — | expires | ✅ E1 |
|
||||
| Order | id · kind(membership/unlock/consult/shop) · amount_cents · status | — | — | 支付 | — | user_id | ✅ E1 |
|
||||
| Notification | id · user_id · channel · type · payload · read_at | — | — | 推送/站内 | — | user_id,read | ✅ E4 |
|
||||
| PlazaApp | id · creator_id · title · heat · status | — | pending | UGC | 热榜 | heat | ✅ E1 |
|
||||
| Favorite | user_id · target_type · target_id | — | — | 收藏 | — | uniq | 🟡 |
|
||||
| Coupon | id · rules JSON | — | — | 运营 | — | — | 🔵 |
|
||||
| OperationLog | actor · action · meta | — | — | 后台 | 冷存 | time | 🔵 |
|
||||
| ABAssignment | user_id · exp_key · bucket | — | — | 配置 | Redis | — | 🔵 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 6 — 数据库设计(表清单)
|
||||
|
||||
必表(前端可感知数据):
|
||||
|
||||
`users` · `device_identities` · `profiles` · `growth_reports` / `synastry_reports` · `test_definitions` · `test_records` · `ai_conversations` · `ai_messages` · `ai_quotas` · `experts` · `consult_orders` · `memberships` · `orders` · `payments` · `notifications` · `plaza_apps` · `favorites` · `banners` · `feature_flags` · `audit_logs`
|
||||
|
||||
每表要求:PK UUID · `created_at`/`updated_at` · 软删 `deleted_at` · 外键 ON DELETE 策略明确 🔵。
|
||||
|
||||
合盘邀请示例:`synastry_invites(token unique, host_profile_id, expires_at, report_id)` 🔵(愈心谷已落地相近结构)。
|
||||
|
||||
---
|
||||
|
||||
## STEP 7 — API Reverse Engineering(可开发级草案)
|
||||
|
||||
> Path 为 🔵 工程命名;真实测测 Path【待抓包】
|
||||
|
||||
| Method | Path | 权限 | Request | Response 要点 | 错误码 |
|
||||
|---|---|---|---|---|---|
|
||||
| POST | /auth/login | 公网 | phone/wx | token · user | 401 |
|
||||
| GET | /profiles | 登录 | — | items[] | — |
|
||||
| POST | /profiles | 登录 | birth_* · relation | profile | 400 |
|
||||
| PATCH | /profiles/:id | 所有者 | patch | profile | 404 |
|
||||
| POST | /tests/:slug/submit | 登录 | answers | record_teaser · record_id | 429 |
|
||||
| GET | /reports/:id | 所有者 | — | summary · detail? | 403 detail |
|
||||
| POST | /astrology/natal | 登录 | profile_id | chart | 400 |
|
||||
| POST | /astrology/synastry | 登录 | a · b · as_of | report | 400 |
|
||||
| GET | /astrology/nearby | 登录+geo | lat,lng,r | items | 403 |
|
||||
| POST | /ai/chat | 登录+额度 | message · profile_ctx · deep | stream SSE | 402 额度 |
|
||||
| GET | /ai/conversations | 登录 | cursor | list | — |
|
||||
| GET | /experts | 登录 | filter | list | — |
|
||||
| POST | /consult/orders | 登录 | expert · mode | order | 402 |
|
||||
| POST | /consult/orders/:id/pay | 登录 | channel | pay_params | 409 |
|
||||
| GET | /membership/me | 登录 | — | plan · expires | — |
|
||||
| POST | /orders | 登录 | kind · plan/report | order_id | — |
|
||||
| GET | /messages | 登录 | cursor | items · unread | — |
|
||||
| POST | /messages/:id/read | 登录 | — | ok | — |
|
||||
| GET | /plaza/apps | 登录 | sort=heat | apps | — |
|
||||
| POST | /plaza/apps/:id/run | 登录 | input | result | 403 审核 |
|
||||
|
||||
RateLimit:AI/支付严格限流;图表计算按用户 QPS 🔵。
|
||||
Cache:星盘按 profile+ephemeris_ver;广场热榜 Redis ZSET;Banner CDN。
|
||||
Retry:幂等键用于支付与咨询下单。
|
||||
|
||||
---
|
||||
|
||||
## STEP 8 — 后台运营系统
|
||||
|
||||
| 模块 | 能力 | 证据 |
|
||||
|---|---|---|
|
||||
| Banner/运营位 | 首页头图、弹窗、闪屏 | 🔵 |
|
||||
| 推荐位 | 达人/测试/文章排序 | 🟡 |
|
||||
| 内容审核 | 广场 UGC、社区帖、达人资质 | 🔵 |
|
||||
| 用户管理 | 封禁、注销、投诉 | 🔵 |
|
||||
| 订单/退款 | 咨询与会员 | ✅ E1 商业 |
|
||||
| 会员配置 | 价格、权益、首月优惠 | ✅ E1 |
|
||||
| 活动配置 | 裂变、优惠券 | 🟡 |
|
||||
| 推送 | 模板、人群包 | 🔵 |
|
||||
| 统计看板 | DAU、转化漏斗、AI 次数 | 🔵 |
|
||||
| AB / 配置中心 | 引导问题文案、价格实验 | 🔵 |
|
||||
| 达人运营 | 入驻审核、分佣、培训 | ✅ E1 达人版 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 9 — 权限矩阵
|
||||
|
||||
| 角色 | 能 | 不能 |
|
||||
|---|---|---|
|
||||
| 游客 | 浏览部分首页、部分测评 | AI 深度、咨询、发帖 |
|
||||
| 登录用户 | 档案、基础 AI 次数、下单 | 未购深度 detail |
|
||||
| VIP/会员 | 扩容 AI、完整报告、专属内容 | 后台 |
|
||||
| SVIP | 🟡 若存在更高等级 | — |
|
||||
| 达人 | 接单、达人工具 | 改平台分佣 |
|
||||
| 运营 | CMS、活动、推荐 | 直接改支付流水 |
|
||||
| 审核员 | 通过/驳回 UGC/达人 | 财务 |
|
||||
| 客服 | 工单、补发权益 | 删库 |
|
||||
| 管理员 | 配置与账号 | — |
|
||||
| 超管 | 全量 | — |
|
||||
|
||||
前端:`LoginRequired` · `VIPLocked` · `PermissionDenied`。
|
||||
|
||||
---
|
||||
|
||||
## STEP 10 — 支付系统
|
||||
|
||||
状态:Created → Paying → Paid / Failed / Cancelled →(退款)Refunding → Refunded
|
||||
场景:重复支付防重 · 补单对账 · 咨询未接单自动退 · 风控限额 · 发票 🔵
|
||||
渠道:IAP / 微信 / 支付宝 🟡【待真机】
|
||||
前端:收银台 · 结果页 · 订单详情入口(我的)。
|
||||
|
||||
---
|
||||
|
||||
## STEP 11 — 消息系统
|
||||
|
||||
| 通道 | 用途 |
|
||||
|---|---|
|
||||
| Push | 达人回复、会员到期 |
|
||||
| 站内信 | 消息 Tab |
|
||||
| 短信 | 登录验证码 |
|
||||
| 邮件 | 可选账单 🔵 |
|
||||
| 角标 | Tab 未读聚合 |
|
||||
|
||||
策略:免打扰时段 · 营销推送开关 · AI 主动触达(公开称尚未强做)✅ E1。
|
||||
|
||||
---
|
||||
|
||||
## STEP 12 — 埋点
|
||||
|
||||
| 事件 | 触发 |
|
||||
|---|---|
|
||||
| page_view | 各 Tab/工具 |
|
||||
| home_grid_click | 宫格 |
|
||||
| test_start / test_complete / test_share | 测评 |
|
||||
| ask_send / ask_deep_toggle / ask_switch_profile | 问 |
|
||||
| ask_switch_human | 转真人 |
|
||||
| synastry_complete / chart_tab_switch | 合盘 |
|
||||
| expert_view / consult_pay | 在线 |
|
||||
| membership_pay | 会员 |
|
||||
| plaza_app_open | 广场 |
|
||||
| error_api | 异常 |
|
||||
|
||||
漏斗:曝光 → 建档 → AI → 会员 → 咨询。停留时长、次日留存 🔵。
|
||||
|
||||
---
|
||||
|
||||
## STEP 13 — 配置系统
|
||||
|
||||
| 项 | 后台可配 | 写死 | 远程/灰度/AB |
|
||||
|---|---|---|---|
|
||||
| 宫格顺序/显隐 | ✓ | — | 灰度 |
|
||||
| AI 引导问题 | ✓ | — | 按来源 AB ✅ E1 建议 |
|
||||
| 会员价格 | ✓ | — | AB |
|
||||
| 星历版本 | — | 逻辑 | 远程 flag |
|
||||
| 审核词库 | ✓ | — | — |
|
||||
| 功能开关(沙盘) | ✓ | — | 灰度 |
|
||||
|
||||
---
|
||||
|
||||
## STEP 14 — 缓存策略
|
||||
|
||||
| 层 | 内容 |
|
||||
|---|---|
|
||||
| 本地 | 档案草稿、会话草稿、最近报告摘要 |
|
||||
| Redis | Session、AI 额度、热榜、限流 |
|
||||
| CDN | 图片、静态运营配置 |
|
||||
| 计算缓存 | 同档案星盘 TTL |
|
||||
| 分页 | 信息流 cursor |
|
||||
|
||||
---
|
||||
|
||||
## STEP 15 — 异常处理(前端必达)
|
||||
|
||||
断网 · 弱网 · 超时 · 重复点击(按钮 loading)· Token 失效 · 本地数据损坏清缓存 · 强制升级 · 审核失败文案 · 404 资源 · 支付结果未知查单 · SSE 中断续传 🔵。
|
||||
|
||||
---
|
||||
|
||||
## STEP 16 — 日志
|
||||
|
||||
用户行为(隐私脱敏)· 前端错误 JS · API access · 支付 · 审核 · 运营操作 · 安全(登录失败/风控)🔵。
|
||||
保留与销毁策略合规 🔵。
|
||||
|
||||
---
|
||||
|
||||
## STEP 17 — 安全
|
||||
|
||||
| 项 | 要求 |
|
||||
|---|---|
|
||||
| 权限 | 服务端强制 detail 剥离(不仅藏 UI) |
|
||||
| 注入/XSS | 内容安全渲染 |
|
||||
| CSRF/重放 | 支付与关键写接口 |
|
||||
| 验证码 | 登录/敏感操作 |
|
||||
| 风控 | 刷单、恶意咨询 |
|
||||
| 设备 | device_key / 绑定 |
|
||||
| 隐私 | geo 默认不可见;档案分享最小化 |
|
||||
| 心理边界 | 危机话术与转介 |
|
||||
|
||||
遵守应用商店与网信/心理相关合规 🔵。
|
||||
|
||||
---
|
||||
|
||||
## STEP 18 — 可扩展性
|
||||
|
||||
| 方向 | 策略 |
|
||||
|---|---|
|
||||
| 新盘型 | charts 插件注册,API 加 mode |
|
||||
| 新测评 | TestDefinition 配置化 |
|
||||
| 新 AI 子场景 | Ask 内 slot,避免新 Tab |
|
||||
| 多端 | 同一 BFF;小程序裁剪 Marketplace |
|
||||
| API 兼容 | summary schema version 字段 |
|
||||
| 模块解耦 | 计算服务与业务 API 分离 |
|
||||
| 硬件(巴布) | 独立产品线,账号体系统一 ✅ E1 |
|
||||
|
||||
---
|
||||
|
||||
## Completeness 自检(STEP 5–18)
|
||||
|
||||
- [x] 数据模型 / 库表 / API 草案
|
||||
- [x] 后台 / 权限 / 支付 / 消息 / 埋点
|
||||
- [x] 配置 / 缓存 / 异常 / 日志 / 安全 / 扩展
|
||||
- [ ] 真实抓包字段级对齐【待补证】
|
||||
@@ -0,0 +1,90 @@
|
||||
# 测测 App 前端逆向工程设计文档(V1.0)
|
||||
|
||||
> Status: `Active` · Method: [reverse-engineering-spec.md](../../../design/reverse-engineering-spec.md)
|
||||
> Scope: **前端可见能力 + 为支撑前端所必需的后台/数据/运营推导**
|
||||
> 目标:Production / Enterprise / Feature Complete 级设计输入(非 Demo)
|
||||
|
||||
---
|
||||
|
||||
## 0. 任务声明
|
||||
|
||||
| 项 | 内容 |
|
||||
|---|---|
|
||||
| 身份 | Senior Reverse Engineering Architect |
|
||||
| 目标 App | 测测(CeCe / 测测星盘,心言集团) |
|
||||
| 方法 | 逆向工程,非「设计一个类似 App」 |
|
||||
| 禁止 | Demo · MVP 终态 · 「略 / TODO / 以后再做」糊弄 |
|
||||
|
||||
**落地到愈心谷时**:能力可完整对标;用户可见命名与禁词服从 [`lexicon.md`](../../lexicon.md);禁止自称「测测」、照搬商标视觉。
|
||||
|
||||
---
|
||||
|
||||
## 1. 证据来源总表(Evidence First)
|
||||
|
||||
| ID | 来源 | 类型 | 日期/版本线索 |
|
||||
|---|---|---|---|
|
||||
| E1 | [人人都是产品经理 · 测测深度体验报告](https://www.woshipm.com/evaluating/6391148.html) | ✅ UI/行为证据(含实测截图描述) | 2026-05-09 |
|
||||
| E2 | [中华网 · 测测功能图谱](https://tech.china.com/articles/20250417/202504171661508.html) | ✅ 行为/产品证据 + 🟡 运营口径 | 2025-04 |
|
||||
| E3 | 应用商店/下载站功能介绍(星盘工具列表等) | ✅ 功能列表证据(版本可能滞后) | ~10.x 描述 |
|
||||
| E4 | 本仓 [`cece-feature-map.md`](../../cece-feature-map.md) | 🟡 既有归纳 | 持续 |
|
||||
| E5 | 本仓 [`apps/docs/analysis/cece-teardown.md`](../../../../apps/docs/analysis/cece-teardown.md) | 🟡 映射分析 | 历史 |
|
||||
| E6 | 行业惯例 / 同类 App | 🟡 推断 | — |
|
||||
| E7 | 工程完整性补充 | 🔵 工程建议 | — |
|
||||
| E8 | 安卓模拟器 AVD `YuXinGu_API34` + APK 10.50.0 截图/UI dump | ✅ 真机 UI 证据 | 2026-08-03 |
|
||||
|
||||
> **局限**:无未公开 DAU/后台;HTTPS 抓包未做。E8 明细见 [complete-design/evidence-20260803.md](complete-design/evidence-20260803.md)。
|
||||
|
||||
---
|
||||
|
||||
## 2. 文档地图
|
||||
|
||||
| 文档 | 内容 | Workflow 覆盖 |
|
||||
|---|---|---|
|
||||
| [00-overview.md](00-overview.md) | L0 IA · 全功能清单 · 全局状态 · 导航 | STEP 1–4 全局 |
|
||||
| [01-tab-home.md](01-tab-home.md) | 首页(宫格/信息流/建档/玩法广场) | STEP 1–4 |
|
||||
| [02-tab-message.md](02-tab-message.md) | 消息 | STEP 1–4 |
|
||||
| [03-tab-ask.md](03-tab-ask.md) | 「问」测测 AI + 真人 1v1 | STEP 1–4 |
|
||||
| [04-tab-online.md](04-tab-online.md) | 在线(达人 Marketplace) | STEP 1–4 |
|
||||
| [05-tab-mine.md](05-tab-mine.md) | 我的 | STEP 1–4 |
|
||||
| [06-tools-astrology.md](06-tools-astrology.md) | 星座 · 星盘 · 合盘 · 运势 | STEP 1–4 + 算法面 |
|
||||
| [07-tools-tests-psych.md](07-tools-tests-psych.md) | MBTI · 塔罗 · 沙盘 · 心情小镇 · 趣味测 | STEP 1–4 |
|
||||
| [08-systems.md](08-systems.md) | 数据/库/API/后台/权限/支付/消息/埋点/配置/缓存/异常/日志/安全/扩展 | STEP 5–18 |
|
||||
| **[complete-design/](complete-design/README.md)** | **完整产品设计包(Design Complete)** — 实现与模拟器校验前的唯一前端设计输入 | 定稿升格 |
|
||||
|
||||
---
|
||||
|
||||
## 3. Completeness Checklist(套件级)
|
||||
|
||||
- [x] 五 Tab 页面拆解
|
||||
- [x] 首页宫格与「更多」工具域
|
||||
- [x] AI / 达人双轨
|
||||
- [x] 星盘与合盘工具面
|
||||
- [x] 测评 / 沉浸体验
|
||||
- [x] 横切系统 STEP 5–18
|
||||
- [ ] 【待真机补证】逐按钮热区坐标与最新版 UI 差分
|
||||
- [ ] 【待抓包补证】真实 API Path / 字段级 Response
|
||||
|
||||
套件可结束条件:上表「真机/抓包」两项未完成时,仍可作为 **Feature Complete 设计底稿**;实现前须补证据或接受 🟡/🔵 风险。
|
||||
|
||||
**完整设计定稿:** [complete-design/](complete-design/README.md) 已将 🟡/🔵 升格为设计定稿(D);真机/模拟器差分按 [99-emulator-validation.md](complete-design/99-emulator-validation.md) 回填。
|
||||
|
||||
---
|
||||
|
||||
## 4. 愈心谷映射入口
|
||||
|
||||
| 测测前端域 | 愈心谷当前落地 | Spec |
|
||||
|---|---|---|
|
||||
| 档案 / 了解 TA | Profile | `profile.md` |
|
||||
| 问 / AI | Ask | `ask.md` |
|
||||
| 星座 / 星盘 / 合盘 | Star + Synastry | `star-profile.md` |
|
||||
| 测评 | Explore / Scale | `explore-test.md` |
|
||||
| 会员 | Membership | `membership.md` |
|
||||
| 消息 / 在线达人 | 分期后置 | feature-map `[P3]/`/`[No]` |
|
||||
|
||||
---
|
||||
|
||||
## 5. 维护
|
||||
|
||||
- 版本变更:在各文档顶部追加「差分日志」
|
||||
- 真机补证:把 ✅ 行从 E1 升级为「真机 YYYY-MM-DD + 版本号」
|
||||
- 与 [`cece-feature-map.md`](../../cece-feature-map.md) 保持 L0 一致;冲突时以本套件 + 更新证据为准
|
||||
@@ -0,0 +1,150 @@
|
||||
# 00 · 设计圣经(全局)
|
||||
|
||||
> Design ID: `CECE-FE-BIBLE-V1` · 定稿 · 待模拟器校验项见文末
|
||||
|
||||
---
|
||||
|
||||
## 1. 产品一句话
|
||||
|
||||
以趣味测评与星盘档案为入口,以「问」Tab 级 AI(挂档案)为战略核心,以达人咨询为高客单转化,以会员订阅为主营收的泛心理情感陪伴 App。
|
||||
|
||||
---
|
||||
|
||||
## 2. 信息架构(冻结)
|
||||
|
||||
### 2.1 底部五 Tab(D 定稿)
|
||||
|
||||
| 序 | Tab | 路由 key | 视觉(✅ E8 10.50.0) | 战略 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 首页 | `home` | 标准 | 发现与工具分发 |
|
||||
| 2 | 消息 | `message` | 标准 + 未读数字角标 | 触达与会话入口 |
|
||||
| 3 | **问** | `ask` | **中央大圆突出 + AI 角标** | 唯一 Tab 级官方 AI |
|
||||
| 4 | 在线 | `online` | 标准 + 运营角标「限免」(可配) | 达人 Marketplace |
|
||||
| 5 | 我的 | `mine` | 标准;游客文案「未登录」 | 资产与商业 |
|
||||
|
||||
规则:
|
||||
- 禁止再增加第 6 个主 Tab。
|
||||
- 灵犀/小智/灵魂伴侣/心情小镇 **不得**升为底部 Tab;一律挂「问」或首页宫格。
|
||||
- 「问」内顶栏固定双轨:`测测AI` | `真人1v1`。
|
||||
|
||||
### 2.2 全局导航栈
|
||||
|
||||
```text
|
||||
RootTabNavigator
|
||||
├── HomeStack
|
||||
├── MessageStack
|
||||
├── AskStack ← 中央按钮切到此栈
|
||||
├── OnlineStack
|
||||
└── MineStack
|
||||
|
||||
Modal 层:Login · MembershipPaywall · ShareSheet · SystemPermission · ForceUpdate
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 全局组件目录(前端必须实现)
|
||||
|
||||
| 组件 | 职责 | 出现位置 |
|
||||
|---|---|---|
|
||||
| `AppTabBar` | 五 Tab;问中间凸起 | 全局 |
|
||||
| `ProfileSwitcher` | 自己/TA 档案切换 | 问、星盘、合盘 |
|
||||
| `BirthArchiveForm` | 生日/时/地/关系类型 | 建档、了解TA |
|
||||
| `PaywallSheet` | 会员/单次解锁 | 报告、AI 额度 |
|
||||
| `SharePosterSheet` | 结果卡分享 | 测评、合盘、星盘 |
|
||||
| `NetworkBanner` | 离线/弱网 | 全局 |
|
||||
| `EmptyState` | 空列表 CTA | 消息、订单、档案 |
|
||||
| `ErrorRetry` | 失败重试 | 全局 |
|
||||
| `StreamingBubble` | AI 流式回复 | 问 |
|
||||
| `ExpertCard` | 达人列表项 | 在线 |
|
||||
| `ChartWheel` | 圆形星盘 | 星盘/合盘 |
|
||||
| `IndexScoreRow` | 恋爱/友情/婚姻指数 | 合盘 |
|
||||
| `GridIcon` | 首页宫格 | 首页 |
|
||||
| `FeedCard` | 信息流卡片 | 首页 |
|
||||
| `PlazaAppCard` | 玩法广场项 | 广场 |
|
||||
| `UnreadBadge` | 角标 | 消息 Tab |
|
||||
|
||||
---
|
||||
|
||||
## 4. 全局状态机(App)
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> ColdStart
|
||||
ColdStart --> Bootstrap
|
||||
Bootstrap --> GuestSession
|
||||
Bootstrap --> AuthedSession
|
||||
GuestSession --> AuthModal: gated action
|
||||
AuthModal --> AuthedSession: success
|
||||
AuthedSession --> Offline
|
||||
Offline --> AuthedSession
|
||||
AuthedSession --> ForceUpdate: version low
|
||||
AuthedSession --> Paywall: vip gate
|
||||
Paywall --> AuthedSession
|
||||
```
|
||||
|
||||
全局枚举:`ColdStart` · `Bootstrap` · `GuestSession` · `AuthedSession` · `AuthModal` · `Offline` · `ForceUpdate` · `Paywall` · `FatalError`。
|
||||
|
||||
---
|
||||
|
||||
## 5. 设计令牌(结构约定 · 非抄视觉品牌)
|
||||
|
||||
> 模拟器采集后可替换为实测色值;此处只定 **语义角色**。
|
||||
|
||||
| Token | 角色 |
|
||||
|---|---|
|
||||
| `--color-brand` | 主操作/问 Tab 强调 |
|
||||
| `--color-ai` | AI 标识色 |
|
||||
| `--color-vip` | 会员金色系 |
|
||||
| `--color-danger` | 错误/删除 |
|
||||
| `--color-surface` | 卡片底 |
|
||||
| `--color-feed-bg` | 信息流底 |
|
||||
| `--radius-card` | 12–16 |
|
||||
| `--tab-ask-size` | 中央按钮直径 > 其它 Tab |
|
||||
|
||||
动效:Tab 切换 200ms;AI 流式打字;宫格按下缩放 0.96。
|
||||
|
||||
---
|
||||
|
||||
## 6. 档案为中心的产品定律(D 定稿)
|
||||
|
||||
1. 所有深度解读默认绑定 **当前 Profile**。
|
||||
2. 「问」必须支持切换到 **关系档案 TA**。
|
||||
3. 首页持续引导「了解 TA」建档。
|
||||
4. 合盘/匹配最少需要 2 份档案(可快速创建)。
|
||||
5. 无出生时:上升/宫位降级提示,不阻断太阳解读。
|
||||
|
||||
---
|
||||
|
||||
## 7. 商业门禁(前端表现)
|
||||
|
||||
| 能力 | 游客 | 登录免费 | 会员/深购 |
|
||||
|---|---|---|---|
|
||||
| 浏览首页/部分测评 | ✓ | ✓ | ✓ |
|
||||
| 完整测评报告 | teaser | teaser | ✓ |
|
||||
| AI 对话 | 登录后有限次 | 有限次 | 扩容 |
|
||||
| 合盘指数 | — | ✓ | ✓ |
|
||||
| 合盘完整相位/推运文案 | — | teaser | ✓ |
|
||||
| 达人咨询 | — | 可下单 | 可下单 |
|
||||
| 玩法广场基础 | ✓ | ✓ | 视应用 |
|
||||
|
||||
价格文案(展示用,采集后校验):首月 ¥9.9 · 月 ¥25 · 季 ¥58 · 年 ¥178。
|
||||
|
||||
---
|
||||
|
||||
## 8. 文案与合规(前端)
|
||||
|
||||
- 危机内容:拒答模板 + 热线/转真人。
|
||||
- 免责:探索/娱乐向声明(具体措辞模拟器采集竞品后对齐,愈心谷落地另走 lexicon)。
|
||||
- 未成年人:系统账号年龄门 + 功能裁剪(D:咨询与付费加强校验)。
|
||||
|
||||
---
|
||||
|
||||
## 9. 待模拟器校验清单(圣经级)
|
||||
|
||||
| ID | 校验项 |
|
||||
|---|---|
|
||||
| V-B01 | 五 Tab 文案与「问」视觉权重 |
|
||||
| V-B02 | 全局弹层种类(登录/会员/分享) |
|
||||
| V-B03 | 会员价与权益文案 |
|
||||
| V-B04 | 主色/AI 色实测 |
|
||||
| V-B05 | 游客可点范围 |
|
||||
@@ -0,0 +1,199 @@
|
||||
# 10 · 首页完整设计
|
||||
|
||||
> Route: `/home` · Tab: 首页 · Design Complete
|
||||
|
||||
---
|
||||
|
||||
## 1. 页面目标
|
||||
|
||||
1. 分发工具(宫格)
|
||||
2. 推动建档(了解 TA)
|
||||
3. 消费信息流 / 转化测评与会员
|
||||
4. 承接 UGC 玩法广场
|
||||
|
||||
---
|
||||
|
||||
## 2. UI 完整清单(分区)
|
||||
|
||||
### 2.1 顶区 `HomeHeader`(✅ E8)
|
||||
|
||||
| 元素 ID | 类型 | 文案/内容 | 行为 |
|
||||
|---|---|---|---|
|
||||
| H-HDR-CHECKIN | IconBtn | 签到 | → 签到/每日福利 |
|
||||
| H-HDR-SEARCH | Search | 运营占位轮播(例「锐评十二星座」) | → 全局搜索 |
|
||||
| H-HDR-PLUS | IconBtn | `+` | → 发布/快捷创建(待子页核对) |
|
||||
| H-BANNER-TA | 条 | 「输入生日,更加了解TA」 | → 建档 other |
|
||||
|
||||
### 2.2 自己卡片 `HomeSelfCard`(✅ E8 · 原「档案条」升格)
|
||||
|
||||
| 元素 | 行为 |
|
||||
|---|---|
|
||||
| 标题「自己」+「更多」 | 更多 → 档案/运势详情 |
|
||||
| 今日心情分数 + 短解读 | 点卡片进入心情/运势 |
|
||||
| 五维条:爱情 / 财富 / 事业 / 学习 / 人际 | 展示型;点击进详情(待核) |
|
||||
|
||||
### 2.3 宫格 `HomeToolGrid`(✅ E8 真机 10.50.0 定稿)
|
||||
|
||||
横向两行可滑宫格(非 3×3):
|
||||
|
||||
| 行 | 序 | key | 标题 | 备注 |
|
||||
|---|---|---|---|---|
|
||||
| 1 | 1 | mbti | I人E人 | |
|
||||
| 1 | 2 | star_sign | 星座 | |
|
||||
| 1 | 3 | natal | 星盘 | |
|
||||
| 1 | 4 | bazi | 生辰 | |
|
||||
| 1 | 5 | synastry | 缘分合盘 | |
|
||||
| 1 | 6 | ziwei | 紫微 | 滑出可见 |
|
||||
| 2 | 7 | companion_star | 陪伴小星 | |
|
||||
| 2 | 8 | confide | 倾诉 | |
|
||||
| 2 | 9 | wisdom_card | 智慧卡 | |
|
||||
| 2 | 10 | natal_report | 星盘报告 | 角标 New |
|
||||
| 2 | 11 | bazi_cal | 生辰历 | |
|
||||
| 2 | 12 | soulmate | 灵魂伴侣 | 滑出可见 |
|
||||
|
||||
宫格下方运营双卡(非第十格):
|
||||
|
||||
| key | 标题 | 说明 |
|
||||
|---|---|---|
|
||||
| plaza | AI玩法广场 | 大卡 + 运营副文案 |
|
||||
| shop_promo | 商城运营卡 | 例:水晶手串 |
|
||||
| ai_disclaimer | 脚注 | 「部分标题由AI生成,仅供参考」 |
|
||||
|
||||
「更多」入口:在「自己」卡片标题旁 / 工具二级页(见 `free2/tools/更多.png`);沙盘等未进首屏宫格的工具收入更多页。
|
||||
|
||||
### 2.3.1 「更多」页条目(✅ E8 `free2/tools/更多.labels.txt`)
|
||||
|
||||
分组实机可见(不完全等于 UI 分区文案):
|
||||
|
||||
| 类 | 条目 |
|
||||
|---|---|
|
||||
| 内容/玩法 | 推荐 · 测试 · 心情小镇 · 幸运地图 · 爱情树 · 聊天分析 · 关系网 · 解读 · 沙盘 · 星骰 · 智慧卡 · 日历 |
|
||||
| 命理工具 | 星盘 · 星盘报告 · 缘分合盘 · 星座 · 生辰 · 生辰历 · 紫微 · 紫微历 · 星宿 · 政余 · 政余历 · 灵数 · 生肖 · 玛雅图腾 · 人类图 |
|
||||
| 社交/商业 | 倾诉 · 灵魂伴侣 · 商城 |
|
||||
|
||||
### 2.4 运营位 `HomePromo`
|
||||
|
||||
- 最多 1 个大 Banner(可关闭,24h 不再展示,本地记录)
|
||||
- 配置来自后台 `banners`
|
||||
|
||||
### 2.5 信息流 `HomeFeed`
|
||||
|
||||
| 卡片类型 | 字段 | 点击 |
|
||||
|---|---|---|
|
||||
| fortune_today | 标题、摘要、分数 | 运势详情 |
|
||||
| hot_test | 封面、标题、人数 | 测评 |
|
||||
| expert | 达人卡 | 达人详情 |
|
||||
| article | 封面、标题 | 文章 |
|
||||
| video | 封面 | 播放 |
|
||||
| plaza_hot | 应用名、热度 | 广场应用 |
|
||||
| ai_entry | 文案 | → 问 |
|
||||
|
||||
交互:下拉刷新 · 上拉分页(cursor)· 负反馈「不感兴趣」(可选)。
|
||||
|
||||
### 2.6 「更多」二级页 `ToolsMorePage`
|
||||
|
||||
固定收录(可后台排序):爱情树、幸运地图、pick卡、塔罗、八字、紫微、生命数字、姓名分析…
|
||||
每项:Icon · 标题 · 副标题 · 角标(热/新)。
|
||||
|
||||
### 2.7 AI 玩法广场 `PlazaPage`
|
||||
|
||||
| 元素 | 说明 |
|
||||
|---|---|
|
||||
| 标题区 | Slogan:「全民手搓创意——精选应用」 |
|
||||
| 排序 | 热度 / 最新 |
|
||||
| AppCard | 名、热度、创作者、封面 |
|
||||
| 点击 | → `PlazaAppRuntime` |
|
||||
| 空态 | 「暂无应用」 |
|
||||
| 审核中 | 创作者端可见,C 端不可见 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 交互细则
|
||||
|
||||
| 手势 | 对象 | 结果 |
|
||||
|---|---|---|
|
||||
| Tap | 宫格 | 路由跳转,埋点 `home_grid_click` |
|
||||
| Tap | 了解 TA | 打开建档;未登录先 Auth |
|
||||
| LongPress | 宫格 | (D)无菜单,防误触 |
|
||||
| Pull | Feed | 刷新 |
|
||||
| Tap | Feed 负反馈 | 减少同类(需登录) |
|
||||
|
||||
倾诉点击:弹出 ActionSheet「和 AI 聊」/「找达人」→ ask / online。
|
||||
|
||||
---
|
||||
|
||||
## 4. 状态机
|
||||
|
||||
| 状态 | UI |
|
||||
|---|---|
|
||||
| Loading | Header 骨架 + 宫格骨架 + Feed 骨架 |
|
||||
| Ready | 全量 |
|
||||
| FeedEmpty | 宫格在,Feed EmptyState |
|
||||
| Offline | NetworkBanner,缓存宫格可点 |
|
||||
| Error | 全页 Retry |
|
||||
| AuthRequired | AuthModal |
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Loading
|
||||
Loading --> Ready
|
||||
Loading --> Error
|
||||
Ready --> AuthRequired
|
||||
Ready --> Offline
|
||||
Offline --> Ready
|
||||
Error --> Loading
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 接口契约(本页)
|
||||
|
||||
| 调用时机 | API |
|
||||
|---|---|
|
||||
| 进入 | `GET /v1/home/bootstrap` → grid_config · banners · profile_summary |
|
||||
| Feed | `GET /v1/home/feed?cursor=` |
|
||||
| 负反馈 | `POST /v1/home/feed/{id}/dismiss` |
|
||||
| 广场 | `GET /v1/plaza/apps?sort=heat` |
|
||||
|
||||
`home/bootstrap` Response(定稿):
|
||||
|
||||
```json
|
||||
{
|
||||
"profile_summary": {"id":"","name":"","sun_sign":"","has_birth_time":false},
|
||||
"grid": [{"key":"mbti","title":"I人E人","badge":null,"enabled":true}],
|
||||
"banners": [{"id":"","image_url":"","link":"","closable":true}],
|
||||
"ta_guide_visible": true
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 异常
|
||||
|
||||
| 场景 | 处理 |
|
||||
|---|---|
|
||||
| bootstrap 失败 | 使用本地默认宫格(写死上表 10 项)+ Error toast |
|
||||
| feed 失败 | 保留宫格,Feed 区 Retry |
|
||||
| 配置缺宫格 | 合并默认,不丢星盘/合盘/问相关入口 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 埋点
|
||||
|
||||
`home_expose` · `home_grid_click{key}` · `home_ta_guide_click` · `home_feed_click{type}` · `home_feed_refresh` · `plaza_open` · `plaza_app_click`
|
||||
|
||||
---
|
||||
|
||||
## 8. 模拟器校验 ID
|
||||
|
||||
| ID | 项 | 状态 |
|
||||
|---|---|---|
|
||||
| V-H01 | 宫格文案与顺序 | ✅ E8 已按上表改稿 |
|
||||
| V-H02 | 了解TA 文案 | ✅ 「输入生日,更加了解TA」 |
|
||||
| V-H03 | 广场形态 | ✅ 首页双大卡而非 slogan 条 |
|
||||
| V-H04 | Feed / 达人卡 | 🟡 采集中 `free/home/*` |
|
||||
| V-H05 | 更多页条目 | 🟡 采集中 `free/tools/更多*` |
|
||||
| V-H06 | 自己卡片五维 | ✅ 爱情财富事业学习人际 |
|
||||
| V-H07 | 门禁弹层 | ✅ 未成年 / 每日领取 |
|
||||
|
||||
差分总表:[evidence-20260803.md](evidence-20260803.md)
|
||||
@@ -0,0 +1,117 @@
|
||||
# 11 · 消息完整设计
|
||||
|
||||
> Route: `/message` · Design Complete
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
聚合 AI / 达人 / 社区 / 系统 / 商业通知;驱动回到「问」或咨询会话。
|
||||
|
||||
---
|
||||
|
||||
## 2. UI 清单
|
||||
|
||||
### 2.1 顶栏(✅ E8)
|
||||
|
||||
| ID | 元素 | 行为 |
|
||||
|---|---|---|
|
||||
| M-TITLE | 「消息」 | — |
|
||||
| M-SEARCH | 搜索图标 | 搜会话/通知 |
|
||||
| M-CLEAR | 扫帚图标 | 清理/标记已读(无「全部已读」文案) |
|
||||
|
||||
### 2.2 列表形态(✅ E8 · 无顶部分段)
|
||||
|
||||
**无** `全部|AI|达人|互动|系统` Segment;为**分组会话列表**:
|
||||
|
||||
| 行类型 | 示例 | 角标 |
|
||||
|---|---|---|
|
||||
| 系统通知 | 「检测到新的登录行为…」 | 未读数字 |
|
||||
| AI 助手 | 「小星」+ AI 角标 | 未读数字 |
|
||||
| (登录后)达人/互动 | 待更多账号补证 | — |
|
||||
|
||||
底部可出系统通知引导条:「开启系统通知…」+「去开启」+ 关闭。
|
||||
|
||||
### 2.3 会话行 `MessageRow`
|
||||
|
||||
| 字段 | 说明 |
|
||||
|---|---|
|
||||
| avatar | 系统铃铛 / 小星 IP / 达人头像 |
|
||||
| title | 会话名 |
|
||||
| preview | 最后一条摘要 |
|
||||
| time | 相对时间(今天时刻 / 昨天) |
|
||||
| badge | 未读数 |
|
||||
|
||||
### 2.4 系统通知详情(✅ E8)
|
||||
|
||||
路由级页「系统通知」:时间分隔 + 卡片列表(纯文本 / 链接「点击查看」/ 运营富媒体)。
|
||||
|
||||
### 2.5 空态
|
||||
|
||||
插画 + 引导回「问」(未在本版截到空态)。
|
||||
|
||||
---
|
||||
|
||||
## 3. 交互
|
||||
|
||||
| 操作 | 结果 |
|
||||
|---|---|
|
||||
| Tap 行 | AI→Ask 线程;达人→ConsultSession;互动→动态/私信;系统→详情 H5;商业→会员/订单 |
|
||||
| LongPress | 置顶 / 免打扰 / 删除 |
|
||||
| 左滑 | 删除(iOS 风格);Android 长按菜单 |
|
||||
| 下拉 | 刷新 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 状态机
|
||||
|
||||
`Loading` · `Ready` · `Empty` · `Offline` · `Error` · `AuthRequired`
|
||||
|
||||
未读角标:`GET /v1/messages/unread_count` 与 TabBar 同步;前台 30s 轮询或 WS 推送(D:优先 WS,降级轮询)。
|
||||
|
||||
---
|
||||
|
||||
## 5. API
|
||||
|
||||
| API | 说明 |
|
||||
|---|---|
|
||||
| `GET /v1/messages?type=&cursor=` | 列表 |
|
||||
| `POST /v1/messages/{id}/read` | 已读 |
|
||||
| `POST /v1/messages/read_all` | 全读 |
|
||||
| `DELETE /v1/messages/{id}` | 删会话 |
|
||||
| `POST /v1/messages/{id}/mute` | 免打扰 |
|
||||
| `GET /v1/messages/unread_count` | 角标 |
|
||||
|
||||
Message DTO:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "ai|expert|social|system|commerce",
|
||||
"title": "",
|
||||
"preview": "",
|
||||
"avatar_url": "",
|
||||
"unread": 0,
|
||||
"muted": false,
|
||||
"ref": {"kind":"conversation|consult|url","id":""},
|
||||
"updated_at": "ISO8601"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. 异常
|
||||
|
||||
推送权限拒绝:仅站内;首次提示去设置。
|
||||
Token 失效:清列表进 Auth。
|
||||
删除失败:Toast 回滚 UI。
|
||||
|
||||
---
|
||||
|
||||
## 7. 埋点
|
||||
|
||||
`message_tab_expose` · `message_open{type}` · `message_read_all` · `message_delete` · `message_mute`
|
||||
|
||||
## 8. 校验 ID
|
||||
|
||||
`V-M01` 分类形态 · `V-M02` 行字段 · `V-M03` 长按菜单项 · `V-M04` 角标规则
|
||||
@@ -0,0 +1,154 @@
|
||||
# 12 ·「问」完整设计(测测 AI + 真人 1v1)
|
||||
|
||||
> Route: `/ask` · Design Complete · 战略核心页
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
1. 以星盘档案为底座的垂直 AI 对话
|
||||
2. 同页低摩擦切换真人咨询
|
||||
3. 对象切换(自己/TA)扩展关系场景
|
||||
4. 深度思考与子场景(灵魂伴侣等)承载差异化
|
||||
|
||||
---
|
||||
|
||||
## 2. UI 完整清单
|
||||
|
||||
### 2.1 顶栏 `AskTopBar`(✅ E8)
|
||||
|
||||
| ID | 元素 | 行为 |
|
||||
|---|---|---|
|
||||
| A-BACK | 返回 | 回上一页/首页 |
|
||||
| A-TAB-AI | 「测测AI」 | 默认选中 |
|
||||
| A-TAB-HUMAN | 「真人1v1」 | 角标「新客半价」(运营可配) |
|
||||
| A-MENU | 汉堡菜单 | 历史/设置;可带红点 |
|
||||
|
||||
### 2.2 AI 轨首屏(✅ E8 · 非纯聊天空态)
|
||||
|
||||
冷启动为**引导页 + 转化区**,而非空白线程:
|
||||
|
||||
| 区块 | 内容 |
|
||||
|---|---|
|
||||
| 人设问候 | 猫头鹰 IP +「Hi~我是测测AI / 最近有什么事…」 |
|
||||
| 引导问题 ×4 | 整行按钮(非小芯片) |
|
||||
| 真人咨询导流 | 「也可以选择真人咨询…」+「228位测测达人在线」+「去提问」 |
|
||||
| 达人数量卡 | 1/3/8/15 位;「新客6折」等角标 |
|
||||
| 底栏快捷 | **工具** · **语音通话** · **深度解读** · **灵魂伴侣** |
|
||||
| 输入框 | placeholder「让我来解答你的问题吧」 |
|
||||
| 免责声明 | 「内容由AI生成,仅供娱乐…」 |
|
||||
|
||||
**实测引导问题(✅ 替换原草稿)**
|
||||
|
||||
1. 有哪些适合我的财富建议?
|
||||
2. 这份工作有发展吗?
|
||||
3. 我有什么性格弱点吗?
|
||||
4. 我和Ta会复合吗?
|
||||
|
||||
### 2.3 上下文/能力入口(✅ E8 落在底栏快捷)
|
||||
|
||||
| ID | 元素 | 行为 |
|
||||
|---|---|---|
|
||||
| A-TOOLS | 「工具」 | Sheet:星盘等工具入口 |
|
||||
| A-VOICE | 「语音通话」 | 语音;可红点 |
|
||||
| A-DEEP | 「深度解读」 | 深度能力(可能付费) |
|
||||
| A-SOUL | 「灵魂伴侣」 | 子场景 |
|
||||
|
||||
对象切换/星盘维度:在工具 Sheet 或对话上下文中(待 `ask/tools-sheet` 截图补全)。
|
||||
|
||||
### 2.4 输入区 `AskComposer`
|
||||
|
||||
| 元素 | 行为 |
|
||||
|---|---|
|
||||
| 文本框 | placeholder 见上 |
|
||||
| 发送 | 输入后出现 |
|
||||
| 语音 | 底栏「语音通话」独立入口 |
|
||||
|
||||
### 2.5 真人轨 `AskHumanRail`
|
||||
|
||||
顶栏切「真人1v1」(角标「新客半价」);同页亦嵌入 AI 轨中部的达人导流卡。
|
||||
|
||||
### 2.6 子页
|
||||
|
||||
- `/ask/soulmate` 灵魂伴侣
|
||||
- `/ask/history` 会话历史
|
||||
- Profile 创建嵌入式 Modal
|
||||
|
||||
---
|
||||
|
||||
## 3. 交互与业务规则
|
||||
|
||||
| 规则 ID | 规则 |
|
||||
|---|---|
|
||||
| R-ASK-01 | 每条用户消息消耗 1 次额度;深度思考 ×2 |
|
||||
| R-ASK-02 | 额度=0 → PaywallSheet(会员优先) |
|
||||
| R-ASK-03 | 切换对象后下一条消息带新 `profile_ctx_id` |
|
||||
| R-ASK-04 | 对象无档案 → 强制建档流,不可发送 |
|
||||
| R-ASK-05 | 流式中再次发送:排队或禁用(D:禁用) |
|
||||
| R-ASK-06 | 敏感意图 → 危机卡片,不计成功陪伴文案 |
|
||||
| R-ASK-07 | 切「真人1v1」不清除 AI 历史 |
|
||||
| R-ASK-08 | 下拉加载更早消息,page_size=20 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 状态机
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
[*] --> Boot
|
||||
Boot --> IdleFresh: 无历史
|
||||
Boot --> IdleHistory: 有历史
|
||||
IdleFresh --> Streaming: send/chip
|
||||
IdleHistory --> Streaming
|
||||
Streaming --> IdleHistory: done
|
||||
Streaming --> StreamError: fail
|
||||
StreamError --> Streaming: retry
|
||||
IdleFresh --> NeedProfile: 选TA无档
|
||||
NeedProfile --> IdleFresh: 建档完成
|
||||
IdleHistory --> QuotaEmpty
|
||||
QuotaEmpty --> Paywall
|
||||
IdleHistory --> HumanRail: tab
|
||||
HumanRail --> IdleHistory: tab AI
|
||||
```
|
||||
|
||||
全量状态:`Boot` · `IdleFresh` · `IdleHistory` · `Streaming` · `StreamError` · `NeedProfile` · `QuotaEmpty` · `Paywall` · `HumanRail` · `Offline` · `AuthRequired` · `DeepOn`(正交 flag)。
|
||||
|
||||
---
|
||||
|
||||
## 5. API
|
||||
|
||||
| API | 说明 |
|
||||
|---|---|
|
||||
| `GET /v1/ai/bootstrap` | 额度、默认 profile、引导问题、deep 是否可用 |
|
||||
| `GET /v1/ai/conversations` | 列表 |
|
||||
| `GET /v1/ai/conversations/{id}/messages?cursor=` | 历史 |
|
||||
| `POST /v1/ai/chat` | body: `{conversation_id?, content, profile_ctx_id, dimension, deep}` → **SSE** |
|
||||
| `POST /v1/ai/conversations` | 新建 |
|
||||
| `GET /v1/ai/quota` | remaining |
|
||||
|
||||
SSE 事件:`meta` · `delta` · `suggest` · `usage` · `error` · `done`。
|
||||
|
||||
---
|
||||
|
||||
## 6. 异常矩阵
|
||||
|
||||
| 场景 | UI |
|
||||
|---|---|
|
||||
| SSE 中断 | 气泡「已中断」+ 重试 |
|
||||
| 402 额度 | Paywall |
|
||||
| 400 无档案 | NeedProfile |
|
||||
| 403 内容安全 | 固定拒答 |
|
||||
| 超时 30s | StreamError |
|
||||
| 离线 | 禁用发送 |
|
||||
|
||||
---
|
||||
|
||||
## 7. 埋点
|
||||
|
||||
`ask_open` · `ask_send` · `ask_chip_click` · `ask_deep_toggle` · `ask_profile_switch` · `ask_dimension_change` · `ask_soulmate_open` · `ask_human_tab` · `ask_paywall_show` · `ask_stream_error`
|
||||
|
||||
---
|
||||
|
||||
## 8. 校验 ID
|
||||
|
||||
`V-A01` 顶栏双 Tab · `V-A02` 上下文三控件+灵魂伴侣 · `V-A03` 引导问题原文 · `V-A04` 下拉历史 Tip · `V-A05` 深度思考是否耗额度 · `V-A06` 流式表现
|
||||
@@ -0,0 +1,75 @@
|
||||
# 13 · 在线完整设计(达人 Marketplace)
|
||||
|
||||
> Route: `/online` · Design Complete
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
达人发现 → 下单 → 文字/语音/连麦服务 → 评价 → 复购。
|
||||
|
||||
---
|
||||
|
||||
## 2. UI 清单
|
||||
|
||||
### 2.1 列表页(✅ E8 部分 · 与「问·真人1v1」同构)
|
||||
|
||||
底栏「在线」带运营角标 **「限免」**;新客链路易**直达「向TA提问」收银页**(券弹层「我知道了」),列表本体与问-真人轨共用筛选:
|
||||
|
||||
| 区 | 元素 |
|
||||
|---|---|
|
||||
| 顶栏双轨残留 | 若从问切入可仍见「测测AI / 真人1v1」 |
|
||||
| 筛选 | 综合排序 · 全部工具 · 筛选 · 新客半价 |
|
||||
| ExpertCard | 头像、活跃、好评率、测友推荐、价格/次 |
|
||||
| 限免漏斗 | 点进 → 向TA提问(文字/语音/合盘/星盘…)+ 测测币/卡券/VIP 折扣 |
|
||||
|
||||
### 2.2 详情页 `/online/experts/{id}`
|
||||
|
||||
简介 · 资质标 · 服务 SKU(文字/语音/连麦+单价+时长)· 评价列表 · 底部「立即咨询」· 收藏。
|
||||
|
||||
### 2.3 下单确认 Sheet
|
||||
|
||||
SKU · 优惠券 · 协议勾选 · 应付金额 · 去支付。
|
||||
|
||||
### 2.4 会话页 `/consult/{orderId}`
|
||||
|
||||
| 模式 | UI |
|
||||
|---|---|
|
||||
| 文字 | 聊天 + 剩余时长/条数 |
|
||||
| 语音 | 语音条 |
|
||||
| 连麦 | 通话 UI + 权限 |
|
||||
|
||||
结束:评价 1–5 星 + 标签 + 文字。
|
||||
|
||||
---
|
||||
|
||||
## 3. 订单状态机(前端必须渲染)
|
||||
|
||||
`Created` → `Paying` → `Paid` → `WaitingAccept` → `InService` → `Completed` → `Reviewed`
|
||||
旁路:`Cancelled` · `Rejected` · `Refunding` · `Refunded` · `Expired`
|
||||
|
||||
超时:Paid 后 N 分钟未接单自动退款(N 后台配,默认 15)。
|
||||
|
||||
---
|
||||
|
||||
## 4. API
|
||||
|
||||
`GET /v1/experts` · `GET /v1/experts/{id}` · `POST /v1/consult/orders` · `POST /v1/consult/orders/{id}/pay` · `GET /v1/consult/orders/{id}` · `POST /v1/consult/orders/{id}/cancel` · `POST /v1/consult/orders/{id}/review` · 消息走 IM 通道(WS)。
|
||||
|
||||
---
|
||||
|
||||
## 5. 权限与安全
|
||||
|
||||
麦克风/相机权限拒绝 → 引导设置,降级文字。
|
||||
举报入口:会话内 · 详情页。
|
||||
未成年人:禁止连麦(D)。
|
||||
|
||||
---
|
||||
|
||||
## 6. 埋点
|
||||
|
||||
`online_expose` · `expert_click` · `consult_sku_select` · `consult_pay_success` · `consult_review_submit`
|
||||
|
||||
## 7. 校验 ID
|
||||
|
||||
`V-O01` 筛选维度 · `V-O02` SKU 种类 · `V-O03` 价格展示 · `V-O04` 评价表单
|
||||
@@ -0,0 +1,90 @@
|
||||
# 14 · 我的完整设计
|
||||
|
||||
> Route: `/mine` · Design Complete
|
||||
|
||||
---
|
||||
|
||||
## 1. UI 清单
|
||||
|
||||
### 1.1 头部 `MineHeader`
|
||||
|
||||
头像(可换)· 昵称 · 会员徽章(非会员显示「开通会员」)· 编辑资料箭头。
|
||||
|
||||
### 1.2 资产条 `MineAssets`
|
||||
|
||||
| 格 | 内容 | 点击 |
|
||||
|---|---|---|
|
||||
| 会员 | 到期日/未开通 | `/membership` |
|
||||
| AI 次数 | remaining | `/ask` 或 Paywall |
|
||||
| 优惠券 | 张数 | `/coupons` |
|
||||
| 积分 | 余额(若无则隐藏整格 · 模拟器校验) | `/points` |
|
||||
|
||||
### 1.3 功能列表(分组定稿)
|
||||
|
||||
**档案与内容**
|
||||
|
||||
1. 生命档案 → `/profile`
|
||||
2. 我的测试 → `/mine/tests`
|
||||
3. 我的报告 → `/mine/reports`
|
||||
4. AI 对话记录 → `/ask/history`
|
||||
5. 我的收藏 → `/mine/favorites`
|
||||
|
||||
**订单与商业**
|
||||
|
||||
6. 会员中心 → `/membership`
|
||||
7. 我的订单 → `/mine/orders`
|
||||
8. 咨询订单 → `/mine/consult-orders`
|
||||
9. 商城订单 → `/shop/orders`
|
||||
|
||||
**其它**
|
||||
|
||||
10. 邀请好友 → 分享
|
||||
11. 消息通知设置 → `/settings/notifications`
|
||||
12. 账号与安全 → `/settings/account`
|
||||
13. 客服与帮助 → `/help`
|
||||
14. 关于 → `/about`(协议/隐私/注销入口)
|
||||
|
||||
---
|
||||
|
||||
## 2. 子页要点
|
||||
|
||||
| 页 | 关键交互 |
|
||||
|---|---|
|
||||
| 生命档案列表 | Self 置顶;Other 按更新;新建;滑动删除 |
|
||||
| 报告库 | 类型筛选:星盘/合盘/测评/AI;锁态角标 |
|
||||
| 订单 | 状态 Tab;详情;申请退款 |
|
||||
| 会员中心 | 套餐卡:9.9/25/58/178;权益表;自动续费管理 |
|
||||
| 注销 | 二次确认 + 冷却期说明 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 状态
|
||||
|
||||
`Guest`(显示登录大按钮)· `Loading` · `Ready` · `VipActive` · `VipExpired` · `Error`
|
||||
|
||||
---
|
||||
|
||||
## 4. API
|
||||
|
||||
`GET /v1/me` · `GET /v1/membership/me` · `GET /v1/ai/quota` · `GET /v1/orders` · `POST /v1/auth/logout` · `POST /v1/account/delete`
|
||||
|
||||
`GET /v1/me`:
|
||||
|
||||
```json
|
||||
{
|
||||
"user": {"id":"","nickname":"","avatar_url":""},
|
||||
"membership": {"active":false,"plan":null,"expires_at":null},
|
||||
"quota": {"ai_remaining":0},
|
||||
"counts": {"coupons":0,"favorites":0,"reports":0}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 埋点
|
||||
|
||||
`mine_expose` · `mine_item_click{key}` · `membership_open` · `invite_click`
|
||||
|
||||
## 6. 校验 ID
|
||||
|
||||
`V-U01` 列表项集合 · `V-U02` 会员价展示 · `V-U03` 资产条格子 · `V-U04` 注销路径
|
||||
@@ -0,0 +1,126 @@
|
||||
# 20 · 星座工具完整设计(星盘 / 合盘 / 运势)
|
||||
|
||||
> Design Complete · 愈心谷落地时命名走 STRATEGY / 词表
|
||||
|
||||
---
|
||||
|
||||
## 1. 信息架构
|
||||
|
||||
```
|
||||
工具入口(首页/广场)
|
||||
├── 星盘(本命)
|
||||
│ ├── 档案选择 / 新建
|
||||
│ ├── 概览(太阳/月亮/上升 + 象限)
|
||||
│ ├── 行星列表
|
||||
│ ├── 宫位列表
|
||||
│ ├── 相位表
|
||||
│ ├── 深度解读(付费锁)
|
||||
│ └── 分享卡片
|
||||
├── 合盘
|
||||
│ ├── 双档案选择
|
||||
│ ├── 关系类型(恋爱/友情/亲子…)
|
||||
│ ├── 五图 + 推运(as_of)
|
||||
│ ├── 维度评分
|
||||
│ ├── 深度报告(付费)
|
||||
│ ├── 邀请合盘(token)
|
||||
│ └── 附近的人(geo)
|
||||
└── 今日运势
|
||||
├── 日运卡片
|
||||
├── 周/月切换
|
||||
└── 推送订阅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 星盘页 `NatalChartPage`
|
||||
|
||||
### 2.1 Route
|
||||
|
||||
`/tools/natal` · query: `profile_id?`
|
||||
|
||||
### 2.2 UI
|
||||
|
||||
| 区块 | 说明 |
|
||||
|---|---|
|
||||
| `ProfilePicker` | Self 默认;可切 Other |
|
||||
| `ChartWheel` | 外圈宫位 + 行星 glyph;可缩放旋转(定稿:双指缩放) |
|
||||
| `BigThree` | 日/月/升 三卡 |
|
||||
| `Tabs` | 概览 / 行星 / 宫位 / 相位 / 解读 |
|
||||
| `PaywallBanner` | 深度解读锁态 |
|
||||
|
||||
### 2.3 状态
|
||||
|
||||
`NeedProfile` → `Computing` → `Ready` → `Paywalled` / `Unlocked` · `Error`
|
||||
|
||||
### 2.4 API
|
||||
|
||||
- `GET /v1/profiles` · `POST /v1/profiles`
|
||||
- `POST /v1/reports/natal` body: `{ "profile_id": "" }`
|
||||
- 响应:`summary`(免费)+ `detail`(锁字段)+ `charts.natal`
|
||||
|
||||
### 2.5 校验
|
||||
|
||||
`V-N01` 轮盘交互 · `V-N02` 深度锁点 · `V-N03` 分享卡片字段
|
||||
|
||||
---
|
||||
|
||||
## 3. 合盘页 `SynastryPage`(对齐已实现能力)
|
||||
|
||||
### 3.1 Route
|
||||
|
||||
`/tools/synastry` · `/synastry/invite/:token`
|
||||
|
||||
### 3.2 UI 定稿
|
||||
|
||||
| 区块 | 说明 |
|
||||
|---|---|
|
||||
| 双人档案条 | A/B 头像昵称 + 换人 |
|
||||
| 关系类型 Chip | 恋爱默认 |
|
||||
| 五图 Tab | 比较盘/组合盘/组合中点/时空中点/组合星座 — 与 API `charts` 对齐 |
|
||||
| 推运 | `as_of` 日期选择;Progressed 说明文案 |
|
||||
| 维度雷达/条 | 吸引/沟通/信任/长期… |
|
||||
| 深度报告 CTA | 会员或单次解锁 |
|
||||
| 社交 | 「邀请合盘」「附近的人」 |
|
||||
|
||||
### 3.3 附近的人
|
||||
|
||||
- 需用户显式打开 `geo_visible`
|
||||
- 列表:距离档位 + 合盘入口
|
||||
- 隐私:不暴露精确坐标给对方客户端
|
||||
|
||||
### 3.4 API(已有契约优先)
|
||||
|
||||
- `POST /v1/reports/synastry` `{ profile_id_a, profile_id_b, as_of? }`
|
||||
- `GET /v1/synastry/nearby`
|
||||
- `POST /v1/synastry/invites` · `GET /v1/synastry/invites/:token` · `POST .../accept`
|
||||
|
||||
### 3.5 校验
|
||||
|
||||
`V-S01` 五图 Tab 文案与顺序 · `V-S02` 邀请链路 · `V-S03` 附近隐私开关默认
|
||||
|
||||
---
|
||||
|
||||
## 4. 今日运势 `DailyFortunePage`
|
||||
|
||||
### 4.1 UI
|
||||
|
||||
日期头 · 综合分 · 爱情/事业/财运/健康四格 · 短建议 ·「查看完整」(会员)
|
||||
|
||||
### 4.2 API
|
||||
|
||||
`GET /v1/fortune/daily?profile_id=&date=`
|
||||
|
||||
### 4.3 校验
|
||||
|
||||
`V-F01` 分数字段 · `V-F02` 完整内容锁点
|
||||
|
||||
---
|
||||
|
||||
## 5. 埋点统一
|
||||
|
||||
`tool_open{tool}` · `chart_tab{name}` · `synastry_generate` · `synastry_unlock` · `fortune_expose` · `invite_share` · `nearby_open`
|
||||
|
||||
## 6. 愈心谷落地备注
|
||||
|
||||
- UI 禁用「占卜/算命」;可用运势/合盘/匹配/解读
|
||||
- 星历计算依赖与 AGPL 风险见 API README;设计层不绑定具体库
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
# 21 · 测评与沉浸式玩法完整设计
|
||||
|
||||
> Design Complete · MBTI / 广场 / 沙盘 / 心情小镇 / 塔罗
|
||||
|
||||
---
|
||||
|
||||
## 1. 测评中心 `TestsHub`
|
||||
|
||||
### 1.1 Route
|
||||
|
||||
`/tests` · `/tests/:slug`
|
||||
|
||||
### 1.2 UI
|
||||
|
||||
- 分类 Chip:人格 / 情感 / 压力 / 趣味
|
||||
- 卡片:封面 · 标题 · 题量 · 预计时长 · 热度 · 免费/付费角标
|
||||
- 搜索(可选,二期)
|
||||
|
||||
### 1.3 答题流 `TestPlayer`
|
||||
|
||||
| 步骤 | 说明 |
|
||||
|---|---|
|
||||
| Intro | 说明用途、隐私、预计时长、开始 |
|
||||
| Question | 单选为主;进度条;可上一题 |
|
||||
| Submit | Loading → 结果 |
|
||||
| Result | 类型码/分数 + 摘要 + 分享 +「深度报告」锁 |
|
||||
|
||||
状态:`Intro` · `Answering` · `Submitting` · `ResultFree` · `ResultPaywalled` · `Error`
|
||||
|
||||
API:
|
||||
|
||||
- `GET /v1/tests` · `GET /v1/tests/:slug`
|
||||
- `POST /v1/tests/:slug/sessions` → `session_id`
|
||||
- `POST /v1/tests/sessions/:id/answer`
|
||||
- `POST /v1/tests/sessions/:id/submit`
|
||||
- `GET /v1/tests/sessions/:id/report`
|
||||
|
||||
校验:`V-T01` 进度可回退 · `V-T02` 结果锁点 · `V-T03` 历史入库「我的测试」
|
||||
|
||||
---
|
||||
|
||||
## 2. 心理广场 `PsychPlaza`
|
||||
|
||||
Route: `/plaza`
|
||||
|
||||
| 区块 | 设计定稿 |
|
||||
|---|---|
|
||||
| Feed | 图文/话题卡;点赞评论 |
|
||||
| Topic | 官方话题置顶 |
|
||||
| Publish | 发帖(需登录);敏感词过滤 |
|
||||
| Detail | 评论树一级 + 楼中楼 |
|
||||
|
||||
API:`GET /v1/plaza/feed` · `POST /v1/plaza/posts` · `POST .../like`
|
||||
|
||||
注意:UGC 审核队列进运营后台(见 40)。
|
||||
|
||||
校验:`V-P01` Feed 排序 · `V-P02` 发帖门槛
|
||||
|
||||
---
|
||||
|
||||
## 3. 沙盘 `Sandbox`
|
||||
|
||||
Route: `/sandbox`
|
||||
|
||||
定稿流程:
|
||||
|
||||
1. 空场景 + 道具架(人物/物品/自然)
|
||||
2. 拖拽摆放;缩放旋转
|
||||
3. 完成 → 生成解读摘要(AI 或模板)
|
||||
4. 保存作品到「我的」;可分享静态图
|
||||
|
||||
状态:`Editing` · `Generating` · `Saved` · `Paywalled`(深度解读)
|
||||
|
||||
API:`POST /v1/sandbox/sessions` · `POST .../complete` · `GET .../report`
|
||||
|
||||
校验:`V-B01` 道具集 · `V-B02` 解读是否 AI
|
||||
|
||||
---
|
||||
|
||||
## 4. 心情小镇 `MoodTown`
|
||||
|
||||
Route: `/mood-town`
|
||||
|
||||
定稿:
|
||||
|
||||
- 地图节点:今日心情打卡 · 小任务 · 收集物
|
||||
- 打卡:情绪滑杆 + 可选日记
|
||||
- 连续打卡奖励(积分/优惠券,与会员解耦)
|
||||
|
||||
API:`POST /v1/mood/checkin` · `GET /v1/mood/calendar` · `GET /v1/mood/town-state`
|
||||
|
||||
校验:`V-M01` 节点集合 · `V-M02` 奖励规则
|
||||
|
||||
---
|
||||
|
||||
## 5. 塔罗 `Tarot`
|
||||
|
||||
Route: `/tarot`
|
||||
|
||||
定稿(合规表述:牌阵洞察 / 自我反思,非「算命」):
|
||||
|
||||
| 模式 | 说明 |
|
||||
|---|---|
|
||||
| 单牌 | 日签 |
|
||||
| 三牌 | 过去/现在/未来(表述可改为 课题/现状/行动) |
|
||||
| 牌阵库 | 恋爱/决策等模板 |
|
||||
|
||||
流程:选牌阵 → 洗牌动画 → 抽牌 → 正逆位 → 牌义摘要 → 深度(付费)
|
||||
|
||||
API:`POST /v1/tarot/draw` `{ spread, seed? }` · `GET /v1/tarot/history`
|
||||
|
||||
校验:`V-R01` 牌阵列表 · `V-R02` 深度锁 · `V-R03` 文案是否触发词表禁词(实现闸)
|
||||
|
||||
---
|
||||
|
||||
## 6. 统一商业与埋点
|
||||
|
||||
- 深度结果统一走 `PaywallSheet`(会员优先 / 单次次之)
|
||||
- 埋点:`test_start` · `test_complete` · `plaza_post` · `sandbox_complete` · `mood_checkin` · `tarot_draw` · `immersive_unlock`
|
||||
@@ -0,0 +1,179 @@
|
||||
# 30 · 完整数据模型 · API · 错误 · 缓存
|
||||
|
||||
> Design Complete · 路径前缀统一 `/api/v1`(下文简称 `/v1`)
|
||||
|
||||
---
|
||||
|
||||
## 1. 领域实体(逻辑模型)
|
||||
|
||||
```
|
||||
User ──< Profile (self|other)
|
||||
User ── Membership
|
||||
User ── AiQuota
|
||||
User ──< Order ── OrderItem
|
||||
User ──< Coupon
|
||||
User ── DevicePush
|
||||
User ──< Conversation ──< Message
|
||||
User ──< ConsultOrder ── Consultant
|
||||
User ──< TestSession ── TestReport
|
||||
User ──< NatalReport / SynastryReport
|
||||
User ──< TarotDraw / SandboxWork / MoodCheckin
|
||||
User ── GeoPref (geo_visible, lat, lng, updated_at)
|
||||
SynastryInvite (token, host_user, guest?, status)
|
||||
PlazaPost ──< Comment
|
||||
```
|
||||
|
||||
### 1.1 关键字段定稿
|
||||
|
||||
| 实体 | 必填字段 |
|
||||
|---|---|
|
||||
| Profile | id, user_id, kind, name, gender?, birth_date, birth_time?, birth_place, lat, lng, tz |
|
||||
| Membership | user_id, plan(enum), status, starts_at, expires_at, auto_renew |
|
||||
| Order | id, user_id, channel, amount_fen, status, product_type, product_ref |
|
||||
| Conversation | id, user_id, mode(ai\|human), status, consultant_id? |
|
||||
| SynastryReport | id, profile_a, profile_b, as_of?, summary_json, detail_json, unlocked |
|
||||
| AiQuota | user_id, remaining, reset_at, source |
|
||||
|
||||
计划枚举:`trial_9_9` · `month_25` · `season_58` · `year_178`(展示价,分单位存储另表)
|
||||
|
||||
---
|
||||
|
||||
## 2. API 目录(完整设计表)
|
||||
|
||||
### 2.1 账号
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| POST | `/v1/auth/sms/send` | 发码 |
|
||||
| POST | `/v1/auth/sms/login` | 登录/注册 |
|
||||
| POST | `/v1/auth/logout` | 登出 |
|
||||
| GET | `/v1/me` | 我的聚合 |
|
||||
| PATCH | `/v1/me` | 改昵称头像 |
|
||||
| POST | `/v1/account/delete` | 注销申请 |
|
||||
|
||||
### 2.2 档案
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| GET/POST | `/v1/profiles` | 列表/创建 |
|
||||
| PATCH/DELETE | `/v1/profiles/:id` | 更新/删 |
|
||||
| PATCH | `/v1/me/geo` | `{visible,lat?,lng?}` |
|
||||
|
||||
### 2.3 内容与报告
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| POST | `/v1/reports/natal` | 本命 |
|
||||
| POST | `/v1/reports/synastry` | 合盘 |
|
||||
| GET | `/v1/fortune/daily` | 日运 |
|
||||
| GET | `/v1/reports` | 我的报告库 |
|
||||
| GET | `/v1/reports/:id` | 单份(含锁态) |
|
||||
|
||||
### 2.4 合盘社交
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| POST | `/v1/synastry/invites` | 创建邀请 |
|
||||
| GET | `/v1/synastry/invites/:token` | 预览(无 host_profile_id 泄露) |
|
||||
| POST | `/v1/synastry/invites/:token/accept` | 接受 |
|
||||
| GET | `/v1/synastry/nearby` | 附近 |
|
||||
|
||||
### 2.5 AI / 咨询
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| GET | `/v1/ai/quota` | 余量 |
|
||||
| POST | `/v1/ask/conversations` | 开聊 |
|
||||
| GET | `/v1/ask/conversations` | 历史 |
|
||||
| POST | `/v1/ask/conversations/:id/messages` | 发消息(流式可选 SSE) |
|
||||
| GET | `/v1/consultants` | 达人列表 |
|
||||
| POST | `/v1/consult/orders` | 下咨询单 |
|
||||
| POST | `/v1/consult/orders/:id/cancel` | 取消 |
|
||||
|
||||
### 2.6 测评与沉浸
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| GET | `/v1/tests` | 列表 |
|
||||
| * | `/v1/tests/...` | 见 21 |
|
||||
| * | `/v1/plaza/...` | 见 21 |
|
||||
| * | `/v1/sandbox/...` | 见 21 |
|
||||
| * | `/v1/mood/...` | 见 21 |
|
||||
| * | `/v1/tarot/...` | 见 21 |
|
||||
|
||||
### 2.7 商业
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| GET | `/v1/membership/plans` | 套餐 |
|
||||
| POST | `/v1/pay/orders` | 创建支付单 |
|
||||
| POST | `/v1/pay/mock/confirm` | 仅开发 mock |
|
||||
| GET | `/v1/orders` | 订单列表 |
|
||||
| GET | `/v1/coupons` | 优惠券 |
|
||||
| POST | `/v1/pay/orders/:id/refund` | 申请退款 |
|
||||
|
||||
### 2.8 消息与配置
|
||||
|
||||
| Method | Path | 说明 |
|
||||
|---|---|---|
|
||||
| GET | `/v1/inbox` | 站内信聚合 |
|
||||
| POST | `/v1/inbox/:id/read` | 已读 |
|
||||
| GET | `/v1/home/feed` | 首页聚合 |
|
||||
| GET | `/v1/config/app` | 开关/词表版本/审核模式 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 统一响应与错误
|
||||
|
||||
### 3.1 成功包络
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "ok",
|
||||
"data": {},
|
||||
"request_id": "..."
|
||||
}
|
||||
```
|
||||
|
||||
### 3.2 错误码定稿
|
||||
|
||||
| code | HTTP | 含义 | 客户端 |
|
||||
|---|---|---|---|
|
||||
| 0 | 200 | 成功 | — |
|
||||
| 40101 | 401 | 未登录 | 跳登录 |
|
||||
| 40301 | 403 | 无权限/未解锁 | Paywall |
|
||||
| 40302 | 403 | 会员权益不足 | Membership |
|
||||
| 40401 | 404 | 资源不存在 | Toast |
|
||||
| 40901 | 409 | 冲突(重复提交) | 忽略/提示 |
|
||||
| 42201 | 422 | 参数错误 | 字段红字 |
|
||||
| 42901 | 429 | 限流 | 稍后重试 |
|
||||
| 40201 | 402/403 | 配额用尽 | 次数 Paywall |
|
||||
| 50000 | 500 | 内部错误 | 通用错误页 |
|
||||
|
||||
锁态内容:**不**靠藏路由;返回 `unlocked:false` + `teaser`,完整 `detail` 仅解锁后下发(或同接口按 entitlement 裁剪)。
|
||||
|
||||
---
|
||||
|
||||
## 4. 缓存与一致性
|
||||
|
||||
| 数据 | 策略 |
|
||||
|---|---|
|
||||
| 首页 feed | CDN/边缘 60s;登录个性化部分 API 直出 |
|
||||
| 日运 | 按 `profile_id+date` 缓存 1h |
|
||||
| 本命/合盘计算结果 | 按档案哈希 + as_of 缓存;档案变更失效 |
|
||||
| 我的聚合 `/me` | 客户端短缓存 30s;支付成功强制失效 |
|
||||
| Inbox 未读 | 推送 + 轮询 60s(前台) |
|
||||
| 词表/开关 | `/config/app` ETag;启动拉取 |
|
||||
|
||||
离线:仅缓存已解锁报告摘要;敏感档案不同步到未加密存储。
|
||||
|
||||
---
|
||||
|
||||
## 5. 分页约定
|
||||
|
||||
`?cursor=&limit=20` · 响应 `{ items, next_cursor }`
|
||||
|
||||
## 6. 与模拟器校验的关系
|
||||
|
||||
抓包对照本章路径与字段;差异记入 `99-emulator-validation.md` 的 Diff 表,再回写 OpenAPI。
|
||||
@@ -0,0 +1,109 @@
|
||||
# 40 · 运营 · 商业 · 推送 · 埋点 · 安全
|
||||
|
||||
> Design Complete
|
||||
|
||||
---
|
||||
|
||||
## 1. 运营后台模块(信息架构)
|
||||
|
||||
```
|
||||
Admin
|
||||
├── 内容:首页运营位 / 工具配置 / 测评上下架 / 话题
|
||||
├── UGC:广场审核队列 / 举报处理
|
||||
├── 达人:入驻审核 / 排班 / 分成配置
|
||||
├── 商业:套餐 / 优惠券 / 订单 / 退款
|
||||
├── 用户:检索 / 封禁 / 注销工单
|
||||
├── 消息:站内信模板 / 推送任务
|
||||
└── 系统:开关 / 词表版本 / 审计日志
|
||||
```
|
||||
|
||||
权限:超级管理员 · 运营 · 审核 · 客服(只读订单+工单)
|
||||
|
||||
---
|
||||
|
||||
## 2. 支付与会员
|
||||
|
||||
### 2.1 商品类型
|
||||
|
||||
| product_type | 说明 | 履约 |
|
||||
|---|---|---|
|
||||
| `membership` | 会员套餐 | 写 Membership + 可能赠 AI 次 |
|
||||
| `ai_pack` | AI 次包 | AiQuota += n |
|
||||
| `report_unlock` | 单次报告 | report.unlocked=true |
|
||||
| `consult` | 咨询时长/次 | ConsultOrder paid |
|
||||
| `shop` | 实物/虚拟商品 | 履约状态机 |
|
||||
|
||||
### 2.2 支付状态机
|
||||
|
||||
`created` → `paying` → `paid` → (`refunding` → `refunded`) · `closed`
|
||||
|
||||
客户端:统一 `PaySheet`(渠道:微信/支付宝/IAP 占位;开发 `pay-mock`)。
|
||||
|
||||
### 2.3 价格展示(✅ E8 `free2/mine/会员.png`)
|
||||
|
||||
| 档 | 展示价 | 划线/备注 |
|
||||
|---|---|---|
|
||||
| 连续包月(首月) | ¥9.9 | 后续 ¥25 自动续费 |
|
||||
| 连续包月 | ¥25 | |
|
||||
| 连续包季 | ¥58 | 划线例 ¥90 |
|
||||
| 连续包年 | ¥178 | 划线例 ¥360 |
|
||||
| 12个月套餐 | ¥368 | 年卡x水晶等运营 SKU |
|
||||
|
||||
自动续费:会员中心「记录」可关;文案含解除说明。
|
||||
|
||||
---
|
||||
|
||||
## 3. 推送
|
||||
|
||||
| 场景 | 通道 | 触发 |
|
||||
|---|---|---|
|
||||
| 日运提醒 | Push | 用户订阅 + 本地时区早晨 |
|
||||
| 咨询回复 | Push + Inbox | 达人新消息 |
|
||||
| 系统通知 | Inbox | 运营任务 |
|
||||
| 支付成功 | Inbox | 履约完成 |
|
||||
| 合盘邀请被接受 | Push | AcceptInvite |
|
||||
|
||||
开关:`/settings/notifications` 分项;系统级权限引导一次。
|
||||
|
||||
---
|
||||
|
||||
## 4. 埋点字典(核心)
|
||||
|
||||
| event | 必填属性 |
|
||||
|---|---|
|
||||
| `app_open` | cold/warm, app_ver |
|
||||
| `tab_view` | tab |
|
||||
| `tool_open` | tool |
|
||||
| `paywall_expose` | scene, product_hint |
|
||||
| `pay_click` | product_type, amount_fen |
|
||||
| `pay_success` | order_id, product_type |
|
||||
| `ask_send` | mode, conversation_id |
|
||||
| `synastry_generate` | relation_type |
|
||||
| `test_complete` | slug |
|
||||
| `membership_open` | from |
|
||||
|
||||
实现:客户端 SDK 批量上报;`request_id` 可关联 API 日志。
|
||||
|
||||
---
|
||||
|
||||
## 5. 安全与合规
|
||||
|
||||
| 项 | 定稿 |
|
||||
|---|---|
|
||||
| 词表 | 硬禁「占卜」「算命」等;启动拉 `/config/app` |
|
||||
| 未成年 | 支付与深度内容年龄门(策略开关) |
|
||||
| 隐私 | 协议版本强更;geo 默认关;注销冷却 |
|
||||
| 鉴权 | Bearer;刷新策略另开;后台操作审计 |
|
||||
| 限流 | 登录/发帖/AI 分桶 |
|
||||
| 支付 | 验签;幂等 `out_trade_no`;mock 仅非生产 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 客服与工单
|
||||
|
||||
入口:我的 → 帮助;订单详情 → 申请退款。
|
||||
工单状态:`open` · `processing` · `resolved` · `rejected`。
|
||||
|
||||
## 7. 校验 ID
|
||||
|
||||
`V-O01` 套餐价 · `V-O02` 支付渠道集合 · `V-O03` 推送分项 · `V-O04` 审核后台字段(无 App 内证,后台自建)
|
||||
@@ -0,0 +1,131 @@
|
||||
# 99 · 安卓模拟器采集验证协议
|
||||
|
||||
> 设计已定稿;本文件规定**如何用模拟器把 🟡/待证项变成 ✅ 或 Diff 回写**。
|
||||
|
||||
---
|
||||
|
||||
## 1. 目标
|
||||
|
||||
1. 对照 `complete-design` 各页的 **校验 ID(V-\*)** 采集证据。
|
||||
2. 差异写入 Diff 表 → 回写对应设计文档 / OpenAPI。
|
||||
3. 不阻塞当前 Feature Complete:未验证项保持「设计定稿 (D) + 待模拟器」。
|
||||
|
||||
---
|
||||
|
||||
## 2. 环境准备
|
||||
|
||||
| 项 | 建议 |
|
||||
|---|---|
|
||||
| 模拟器 | Android Emulator API 33+,安装官方测测 APK(或应用商店包) |
|
||||
| 代理 | mitmproxy / Charles;模拟器 Wi‑Fi 代理指向宿主机 |
|
||||
| HTTPS | 安装 user CA;若 SSL Pinning 失败则改用 UI 录屏 + 布局层次(uiautomator) |
|
||||
| 账号 | 新号 + 会员号各一;记录手机号不入库文档 |
|
||||
| 录制 | 每条 V-\* 至少:截图 1 +(可选)HAR 片段 + 操作步骤 |
|
||||
|
||||
### 2.1 本机已装(2026-08)
|
||||
|
||||
| 项 | 路径 / 名称 |
|
||||
|---|---|
|
||||
| SDK | `ANDROID_HOME=/opt/homebrew/share/android-commandlinetools` |
|
||||
| AVD | `YuXinGu_API34`(Pixel 7 / API 34 / google_apis / arm64) |
|
||||
| Agent Skill | `/Users/jack/tools/android-adb-skill` → `./tools/android` + `~/.claude/skills/android-*` |
|
||||
| Cursor Rule | `.cursor/rules/android-adb.mdc` |
|
||||
| 冒烟截图 | `.tmp/cece-validation/smoke/screen.png` |
|
||||
|
||||
启动与截图:
|
||||
|
||||
```bash
|
||||
emulator -avd YuXinGu_API34 -no-audio -gpu auto &
|
||||
adb wait-for-device
|
||||
./tools/android screenshot --out .tmp/cece-validation/smoke/screen.png --json
|
||||
```
|
||||
|
||||
> 测测 APK 仍需另行安装后,才能跑 Batch A–D。
|
||||
|
||||
证据目录建议(本地,勿强求进 git):
|
||||
|
||||
```
|
||||
.tmp/cece-validation/
|
||||
YYYYMMDD/
|
||||
V-H01/
|
||||
steps.md
|
||||
screen.png
|
||||
traffic.har # 可选
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. 采集步骤(单条 V-\*)
|
||||
|
||||
1. 打开设计文档中的校验 ID 定义(预期 UI/文案/API)。
|
||||
2. 冷启动 App → 按步骤复现到目标屏。
|
||||
3. 截图;若可抓包,过滤 host,保存相关 request/response。
|
||||
4. 填写结果:`PASS` / `DIFF` / `BLOCKED`(如 pinning、地区限制)。
|
||||
5. `DIFF` 必须写:期望(设计)vs 实际 + 建议改设计或改实现。
|
||||
|
||||
---
|
||||
|
||||
## 4. 优先级批次
|
||||
|
||||
### Batch A — 五 Tab 骨架(先做)
|
||||
|
||||
| ID | 主题 | 文档 |
|
||||
|---|---|---|
|
||||
| V-H01~ | 首页楼层顺序与运营位 | `10-page-home` |
|
||||
| V-G01~ | 消息分类与未读 | `11-page-message` |
|
||||
| V-A01~ | 问一问 AI/人工切换 | `12-page-ask` |
|
||||
| V-L01~ | 连麦/在线列表 | `13-page-online` |
|
||||
| V-U01~ | 我的列表与资产条 | `14-page-mine` |
|
||||
|
||||
### Batch B — 星座与合盘
|
||||
|
||||
| ID | 主题 | 文档 |
|
||||
|---|---|---|
|
||||
| V-N01~ | 本命轮盘与锁点 | `20-module-astrology` |
|
||||
| V-S01~ | 五图顺序、邀请、附近默认 | 同上 |
|
||||
| V-F01~ | 日运字段 | 同上 |
|
||||
|
||||
### Batch C — 测评与沉浸
|
||||
|
||||
| ID | 主题 | 文档 |
|
||||
|---|---|---|
|
||||
| V-T01~ | 测评进度与结果锁 | `21-module-tests-immersive` |
|
||||
| V-P01~ | 广场 | 同上 |
|
||||
| V-B01~ / V-M01~ / V-R01~ | 沙盘/小镇/塔罗 | 同上 |
|
||||
|
||||
### Batch D — 商业与系统
|
||||
|
||||
| ID | 主题 | 文档 |
|
||||
|---|---|---|
|
||||
| V-O01~ | 会员价与支付 | `40-ops-commerce` |
|
||||
| 路径对照 | API 与 30 章一致性 | `30-data-api` |
|
||||
|
||||
---
|
||||
|
||||
## 5. Diff 登记表(模板)
|
||||
|
||||
复制到当次验证笔记:
|
||||
|
||||
| ID | 结果 | 期望(设计) | 实际(模拟器) | 处置 | 回写文件 |
|
||||
|---|---|---|---|---|---|
|
||||
| V-S01 | DIFF | 五图顺序 A-B-C… | 顺序为… | 改设计 / 改实现 | `20-module-astrology.md` |
|
||||
|
||||
处置约定:
|
||||
|
||||
- **改设计**:以竞品真机为准,更新 complete-design,证据链加 E\*。
|
||||
- **改实现**:愈心谷已按设计开发则排期对齐。
|
||||
- **忽略**:明确合规/品牌差异(词表),在文档标「刻意差异」。
|
||||
|
||||
---
|
||||
|
||||
## 6. 与 Evidence First 的衔接
|
||||
|
||||
- 模拟器截图/HAR → 记入 `cece-frontend-re/README.md` 证据表新行(E8+)。
|
||||
- 原 🟡 项验证通过后改为 ✅,去掉「仅设计定稿」标注。
|
||||
- 完整设计包门禁:**不**因未跑模拟器而撤销 Design Complete。
|
||||
|
||||
---
|
||||
|
||||
## 7. 愈心谷侧注意
|
||||
|
||||
验证测测时允许看到其原生产物用词;**落地愈心谷 UI 时仍走词表**,Diff 中单独列「合规替换」列,避免把禁词写进产品文案。
|
||||
@@ -0,0 +1,64 @@
|
||||
# 测测前端 · 完整产品设计包(Design Complete V1.0)
|
||||
|
||||
> Status: **Design Complete(设计定稿)** · 实现与模拟器校验前的唯一前端设计输入
|
||||
> 上游逆向底稿:[../README.md](../README.md)
|
||||
> 方法:[reverse-engineering-spec.md](../../../../design/reverse-engineering-spec.md)
|
||||
> 校验计划:安卓模拟器采集验证(见 [99-emulator-validation.md](99-emulator-validation.md))
|
||||
|
||||
---
|
||||
|
||||
## 0. 本包定位
|
||||
|
||||
| 项 | 说明 |
|
||||
|---|---|
|
||||
| 是什么 | 基于公开实测 + 逆向推导的 **Feature Complete 设计说明书** |
|
||||
| 不是什么 | 不是 Demo;不是「以后再补」的大纲 |
|
||||
| 证据策略 | ✅ 已证实写死;🟡/🔵 在本包中升格为 **设计定稿(D)**,并列入模拟器校验清单 |
|
||||
| 品牌 | 本文用「测测」指称竞品对象;愈心谷落地时过 lexicon,禁止自称测测 |
|
||||
|
||||
**冻结规则**:未经验证通过前,工程实现以本包为准;模拟器发现差分时,先改本包再改代码。
|
||||
|
||||
---
|
||||
|
||||
## 1. 文档地图
|
||||
|
||||
| 文档 | 内容 |
|
||||
|---|---|
|
||||
| [00-design-bible.md](00-design-bible.md) | 产品目标 · IA · 全局组件 · 全局状态 · 设计令牌约定 |
|
||||
| [10-page-home.md](10-page-home.md) | 首页完整设计 |
|
||||
| [11-page-message.md](11-page-message.md) | 消息完整设计 |
|
||||
| [12-page-ask.md](12-page-ask.md) | 「问」完整设计 |
|
||||
| [13-page-online.md](13-page-online.md) | 在线完整设计 |
|
||||
| [14-page-mine.md](14-page-mine.md) | 我的完整设计 |
|
||||
| [20-module-astrology.md](20-module-astrology.md) | 星座/星盘/合盘/运势完整设计 |
|
||||
| [21-module-tests-immersive.md](21-module-tests-immersive.md) | 测评/广场/沙盘/心情小镇/塔罗 |
|
||||
| [30-data-api.md](30-data-api.md) | 数据模型 · 表 · API · 错误码 · 缓存 |
|
||||
| [40-ops-commerce.md](40-ops-commerce.md) | 后台 · 权限 · 支付 · 消息 · 埋点 · 配置 · 安全 |
|
||||
| [99-emulator-validation.md](99-emulator-validation.md) | 安卓模拟器采集与差分回填协议 |
|
||||
| [evidence-20260803.md](evidence-20260803.md) | **E8 真机 Diff**(10.50.0 模拟器) |
|
||||
| [STATUS-overnight.md](STATUS-overnight.md) | 夜间采集结果摘要(起床看) |
|
||||
|
||||
---
|
||||
|
||||
## 2. 设计完成度门禁
|
||||
|
||||
| 门禁 | 标准 |
|
||||
|---|---|
|
||||
| Design Complete | 本包各文档无「略/TODO」;每页含 UI 清单、交互、状态机、接口、异常、埋点 |
|
||||
| Validation Ready | `99-emulator-validation.md` 用例可执行 |
|
||||
| Impl Ready | `30-data-api` + 页面契约可直接开工 |
|
||||
| Parity Verified | 模拟器采集后差分关闭(后续) |
|
||||
|
||||
当前:**Design Complete + Validation Ready**。Parity Verified = 待模拟器。
|
||||
|
||||
---
|
||||
|
||||
## 3. 与逆向底稿关系
|
||||
|
||||
```text
|
||||
../00–08 逆向分析(Evidence First)
|
||||
↓ 升格定稿
|
||||
complete-design/* 完整设计(本包)
|
||||
↓ 模拟器采集
|
||||
差分回填 → 修订本包 → 再实现/再验
|
||||
```
|
||||
@@ -0,0 +1,41 @@
|
||||
# 夜间采集状态(给你起床看)
|
||||
|
||||
> 时间:2026-08-03 凌晨 · APK 10.50.0 · 已登录账号
|
||||
|
||||
## 结论
|
||||
|
||||
**免付费主路径大部分已截到**,设计 Diff 已写入 `evidence-20260803.md` + 首页/消息/问文档。
|
||||
工具宫格与「更多」清单已采;「我的」子页与部分在线列表曾被 SVIP/向TA提问 收银页干扰,需醒来后补一轮。
|
||||
|
||||
## 截图目录(本地)
|
||||
|
||||
| 目录 | 内容 |
|
||||
|---|---|
|
||||
| `.tmp/cece-validation/20260803/free2/` | **主成果**(包名校验后) |
|
||||
| `free2/01-home.png` 等 `0x-tab-*.png` | 五 Tab / 问双轨 |
|
||||
| `free2/tools/*.png` | 宫格落地:星座/星盘/合盘/紫微/陪伴小星/倾诉/智慧卡/报告/生辰历/灵魂伴侣/广场/更多… |
|
||||
| `free2/tools/more/*.png` | 更多页子项 |
|
||||
| `free2/manifest.json` | 清单(脚本结束后生成) |
|
||||
|
||||
## 已回写设计
|
||||
|
||||
- `00-design-bible.md` 底栏角标
|
||||
- `10-page-home.md` 宫格顺序 / 自己卡片五维
|
||||
- `11-page-message.md` 列表形态
|
||||
- `12-page-ask.md` AI 引导题与底栏快捷
|
||||
- `evidence-20260803.md` E8
|
||||
|
||||
## 「更多」实机条目(✅ labels)
|
||||
|
||||
推荐 · 星盘报告 · 测试 · 倾诉 · 心情小镇 · 幸运地图 · 星宿 · 爱情树 · 灵魂伴侣 · 聊天分析 · 关系网 · 商城 · 解读 · 沙盘 · 缘分合盘 · 星座 · 生辰 · 紫微 · 政余 · 灵数 · 生肖 · 玛雅图腾 · 人类图 · 星盘 · 生辰历 · 紫微历 · 政余历 · 星骰 · 智慧卡 · 日历
|
||||
|
||||
## 醒来建议(可选 10 分钟)
|
||||
|
||||
1. 确认模拟器还在:`adb devices`
|
||||
2. 打开测测,关掉任何 SVIP/向TA提问弹层
|
||||
3. 说「继续补我的和在线列表」——我只补这两块
|
||||
|
||||
## 脚本
|
||||
|
||||
- `tools/cece_capture_free.py`(初版)
|
||||
- 夜间实际用的是内联 package-guard 流程;稳定版可再收束进脚本
|
||||
@@ -0,0 +1,92 @@
|
||||
# 真机证据 Diff · 2026-08-03(模拟器 · 测测 10.50.0)
|
||||
|
||||
> Evidence ID: **E8** · AVD `YuXinGu_API34` · package `com.xxwolo.cc5` · APK `bird-xxdoc-android-release-xxwolo-10.50.0`
|
||||
> 截图根目录:`.tmp/cece-validation/20260803/`(本地,未入库)
|
||||
> 主成果:`free2/`(34 张)· 说明:[STATUS-overnight.md](STATUS-overnight.md)
|
||||
|
||||
---
|
||||
|
||||
## 1. 冷启动 / 门禁
|
||||
|
||||
| 屏 | 证据 | 定稿结论 |
|
||||
|---|---|---|
|
||||
| 温馨提示 | `onboarding/10-start.png` | 同意 / 不同意→游客;披露位置·麦克风·设备信息 |
|
||||
| 游客首页 | `V-H01/home.png` | 底栏右端为「未登录」;中间「问」+ AI 角标 |
|
||||
| 登录页 | 点「同意」后 | 手机号+验证码 / 密码登录 / 其他方式;协议勾选 |
|
||||
| 未成年人模式 | `logged/00-current.png` | 开启未成年人模式 / **不再提醒** |
|
||||
| 每日登录领好礼 | 遮罩态截图 | 回归福利七日;立即领取;下方 X 关闭 |
|
||||
| 隐私政策更新 | 登录后偶发 | 同意 / 不同意并退出 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 底栏五 Tab(已登录 · ✅)
|
||||
|
||||
| 序 | 文案 | 角标/形态 | Diff vs 原设计 |
|
||||
|---|---|---|---|
|
||||
| 1 | 首页 | 选中态房子图标 | 一致 |
|
||||
| 2 | 消息 | 红点数字 | 一致 |
|
||||
| 3 | **问** | **中央大圆 + AI 角标** | 一致;无障碍树常无「问」文本 |
|
||||
| 4 | 在线 | 红标「限免」 | **新增运营角标**;易直达向TA提问 |
|
||||
| 5 | 我的 | 红点 | 游客态文案为「未登录」 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 首页结构(已登录 · ✅ V-H01)
|
||||
|
||||
### 3.1 顶区
|
||||
|
||||
签到 · 搜索运营占位轮播 · `+` · 「输入生日,更加了解TA」
|
||||
|
||||
### 3.2 自己卡片
|
||||
|
||||
今日心情分 + 五维:**爱情 / 财富 / 事业 / 学习 / 人际**
|
||||
|
||||
### 3.3 宫格
|
||||
|
||||
**第一行:** I人E人 · 星座 · 星盘 · 生辰 · 缘分合盘 · 紫微
|
||||
**第二行:** 陪伴小星 · 倾诉 · 智慧卡 · 星盘报告(New) · 生辰历 · 灵魂伴侣
|
||||
|
||||
宫格下:AI玩法广场大卡 + 商城运营卡;脚注「部分标题由AI生成,仅供参考」。
|
||||
|
||||
### 3.4 更多页条目(✅)
|
||||
|
||||
见 `10-page-home.md` §2.3.1;含沙盘/心情小镇/幸运地图/爱情树/人类图等。
|
||||
|
||||
---
|
||||
|
||||
## 4. 截图清单(`free2/`)
|
||||
|
||||
| 路径 | 说明 |
|
||||
|---|---|
|
||||
| `01-home` · `02-tab-home` | 首页 |
|
||||
| `03-tab-message` | 消息 |
|
||||
| `04-tab-ask*` | 问 · AI / 真人1v1 |
|
||||
| `05-tab-online` | 在线(注意限免漏斗) |
|
||||
| `06-tab-mine*` | 我的 |
|
||||
| `tools/*` | 宫格落地免付费页 |
|
||||
| `tools/more/*` | 更多子项 |
|
||||
| `mine/{root,会员,档案,测试,报告}` | 我的子页;会员价 ✅ |
|
||||
| `manifest.json` | 34 张索引 |
|
||||
|
||||
---
|
||||
|
||||
## 5. 「问」轨 Diff(✅)
|
||||
|
||||
- 顶栏:`测测AI` | `真人1v1`(「新客半价」)
|
||||
- 引导题:财富建议 / 工作发展 / 性格弱点 / 复合(及变体)
|
||||
- 底栏:工具 · 语音通话 · 深度解读 · 灵魂伴侣
|
||||
- 免责声明固定底
|
||||
|
||||
---
|
||||
|
||||
## 6. 会员价(✅)
|
||||
|
||||
连续包月首月 ¥9.9 → ¥25;季 ¥58;年 ¥178(见 `40-ops-commerce.md`)。
|
||||
|
||||
---
|
||||
|
||||
## 7. 愈心谷落地注意
|
||||
|
||||
- 竞品文案含「测测」;落地过 lexicon。
|
||||
- 游客 / 未成年人 / 每日领取 / 隐私更新 为必做门禁。
|
||||
- 「向TA提问」为高意图收银,列表浏览需可退回。
|
||||
Reference in New Issue
Block a user