Files
Genarrative/docs/prd/MY_TAB_DATA_DASHBOARD_PRD_2026-04-16.md
2026-05-01 20:29:09 +08:00

3.0 KiB

“我的”Tab 我的数据看板 PRD

更新时间:2026-04-16

0. 目标

把“光点 / 游戏时长 / 玩过”这一排信息卡,从静态数字展示升级成稳定的个人数据看板,让玩家在进入“我的”页时一眼知道自己的账号资产和游玩投入。


1. 当前现状与问题

当前三个数字来源并不统一:

  1. 光点来自当前存档上下文,不等于账号总资产
  2. 游戏时长依赖当前快照,不代表全账号累计
  3. 玩过当前几乎是硬编码推导,不是真实统计

这会导致“我的”页看到的数据不可信。


2. 本期范围

2.1 本期要做

  1. 账号级数据聚合接口
  2. 三张核心数据卡
  3. 数据更新时间策略
  4. 点击卡片查看明细的扩展位

2.2 本期不做

  1. 成就系统
  2. 排行榜
  3. 全量行为分析页

3. 指标定义

3.1 光点

定义:

  • 当前账号可立即消费的光点余额

不使用:

  • 当前单个存档里的临时货币数值

3.2 游戏时长

定义:

  • 当前账号下所有正式游玩会话累计时长

规则:

  • 只累计进入有效游戏流程的时长
  • 后台挂机超阈值后停止累计

3.3 玩过

定义:

  • 当前账号实际进入过可游玩世界并产生有效游玩记录的去重作品数

去重键建议:

  • ownerUserId + profileId

4. 详细设计

4.1 交互

三张卡片默认仅展示数字和标题。

点击行为:

  1. 光点卡
    • 打开资产流水抽屉
  2. 游戏时长卡
    • 打开游玩统计抽屉
  3. 玩过卡
    • 打开玩过列表

如果本期不做明细页,点击可先无动作,但必须预留可扩展事件位。

4.2 展示规则

  1. 数字过大时做单位缩略展示
  2. “游戏时长”卡固定以小时为单位展示,短时长不切换成分钟,长时长不切换成天
  3. “玩过”卡展示值始终带 单位,例如 0个1个1.2万个
  4. 进入页面先展示骨架屏
  5. 数据请求失败时展示降级文案,不展示假数字

5. 后端设计

5.1 聚合模型

建议新增账号聚合视图或服务:

  • wallet_balance
  • total_play_time_ms
  • played_world_count
  • updated_at

5.2 接口

GET /api/profile/dashboard

返回:

  • walletBalance
  • totalPlayTimeMs
  • playedWorldCount
  • updatedAt

GET /api/profile/wallet-ledger

返回:

  • 光点流水列表

GET /api/profile/play-stats

返回:

  • 游玩时长分布
  • 玩过列表摘要

6. 数据来源要求

  1. 钱包余额从后端钱包台账聚合
  2. 游戏时长从运行时会话日志或快照汇总
  3. 玩过数从有效游玩记录去重计算

禁止继续采用:

  • 仅从当前存档快照直接读取全部看板数据

7. 验收标准

  1. 三个核心指标都能按账号稳定返回
  2. 切换设备后看板数据一致
  3. 没有存档时也能正常展示账号级数据
  4. 数据加载失败时页面表现可控
  5. “游戏时长”卡展示值始终带 小时 单位,例如 0小时1.5小时36小时