Files
Pet3/docs/05-业务规则.md
2026-06-25 18:24:29 +08:00

4.0 KiB
Raw Permalink Blame History

05 · 业务规则(必落地)

这些规则散落在 PRD 与原型的橙色虚线注释里,是产品的「魂」。开发时务必逐条实现,不可省略。

R1 · 登录与建档分流

  • 微信授权登录后:无任何狗狗 → 直接进建档0b;已有狗狗 → 跳过,进首页。
  • 协议/隐私为必须合规要素,登录页底部展示。

R2 · 建档门槛最低

  • 名字、犬种 必填,其余(性别/年龄/体重/头像)全选填——降低首次门槛。
  • 建档与编辑复用同一表单;编辑时预填已有值,标题改「编辑资料」。
  • 犬种用于映射体型档位;中华田园犬、串串、找不到的犬种必须让用户手动选体型档位。

R3 · 狗步算法

  • 狗步公式:dogStepsByDog[dogId] = round(distanceMeters / dog.stride)
  • stride 由体型档位决定,不做「每品种一个系数」。体型档位与基础步幅:超小型 0.20m、小型/短腿 0.25m、中型 0.35m、大型 0.45m、超大型 0.55m
  • 填了体重时,在基础步幅上做二次校准:stride = baseStride * (1 + (weight - 档位标准体重) * 0.005),修正幅度封顶 ±15%。
  • 狗步只是展示层:多狗同遛时按每只狗分别计算;成就、未来排行榜和防刷统计只用距离、时长、连续天数等客观量。

R4 · 多狗选择

  • 仅多狗用户点遛狗时弹出选择层;单狗直接进遛狗中。
  • 选择层可多选,支持多只狗一起遛(一条 walk 关联多个 dogId

R5 · 遛狗计时与暂停

  • 计时基于时间戳差值,扣除暂停时长;切后台/锁屏不丢
  • 暂停 = 停止计时 + 数据置灰,主按钮变「继续」。意义:遛狗常有等狗、捡便便的停顿,暂停防止污染数据。
  • 结束必须二次确认再生成成果卡。

R6 · 定位与数据降级

  • V1 纳入可选 GPS 距离与狗步:授权时累计距离并换算狗步。
  • 未授权定位时,距离 / 狗步隐藏(存 null时长照常。不阻断遛狗闭环。
  • 首次打开不强制索权;定位应在开始遛狗或用户主动开启增强能力时请求。
  • 地图轨迹回放、精准轨迹去噪后置,不阻塞 V1。

R7 · 成果卡全选填

  • 照片、备注、天气、状态等所有输入字段全部选填,跳过也能保存——遛狗时用户腾不出手。
  • 视角为「狗狗走了」而非「你遛了」。
  • 分享朋友圈是首选 CTA(拉新入口)。
  • 核心记录在结束遛狗时先保存;成果卡补充字段通过回写接口保存,跳过不影响记录沉淀。

R8 · 手动补记

  • 入口:历史页 / 记录 Tab 右上「+」。
  • 数据层标记 source='manual'isManual=true
  • 补记可维持连续打卡不断签(参与连续天数计算)。
  • 补记不计入排行榜countsForRanking=false,防刷量)。
  • 补记记录列表带「补记」标识区分。

R9 · 统计维度

  • 累计只用 次数 / 公里 / 连续天数
  • 不要配速、不要卡路里——记录陪伴厚度,而非运动表现。

R10 · 连续天数算法

  • walkDate(本地时区 yyyy-mm-dd为单位。
  • 同日多次遛狗:连续天数不变。
  • 距上次为「昨天」:currentStreak += 1
  • 距上次 > 1 天(断签):重置为 1。
  • 补记同样按其 walkDate 参与此计算。

R11 · 成就体系

  • 成就按狗维度,基于 连续 / 累计 / 场景,而非「最多 / 最快」。
  • 未解锁项显示进度(「还差 X」强化收集与坚持动机。
  • 成就墙露灰锁制造收集欲;新用户也显示全灰待解锁(含「首遛」)。
  • 「记录」Tab 与「我的→成就」两入口指向同一页,文案统一叫「成就」。

R12 · 安全与防刷

  • 所有写操作 + 统计累加 + 成就解锁只在云函数执行,客户端集合权限禁写。
  • openid 一律服务端取,不信任客户端传参。
  • 同一 (dogId, achievementKey) 不重复解锁。