Skip to content

里程挑战模块 (Mileage Challenge)

文档版本: V1.0 更新日期: 2024-05-20 状态: 评审中

0. 背景与目标 (Context & Goals)

问题陈述 (Problem Statement)

  • 活跃度激励: 仅仅记录滑雪轨迹缺乏显性的激励机制,用户容易流失。
  • 社群凝聚力: 俱乐部缺乏组织线上比赛的工具,传统的"晒数据截图"方式统计繁琐且难以验证真伪。
  • 官方运营: 平台需要通过全网挑战赛(如"百万落差挑战")来维持雪季期间的 DAU。

成功指标 (Success Metrics)

  • 参与度: 挑战赛的报名人数与完赛率。
  • 粘性: 参与挑战赛用户的周均启动次数提升 20%。

一、 核心逻辑与业务规则

1.1 双重身份 (Dual Identity)

本模块同时服务于 官方 (Official)俱乐部 (Club)

  • 官方: 发起全网活动,具备最高权重,奖品通常由品牌赞助。
  • 俱乐部: 发起私域活动,可限制仅本俱乐部成员参加,增强社群归属感。

1.2 数据来源 (Data Source)

  • 自动采集: 依托 APP 内置的 GPS 轨迹记录功能。
  • 有效性校验: 仅统计挑战赛时间范围内数据有效(非车载/缆车异常数据)的滑行记录。

二、 详细功能定义

2.1 发布端 (官方/Club管理台)

板块字段/功能说明/规则
基础信息挑战名称e.g., "崇礼开板首滑挑战"
挑战时间开始时间 ~ 结束时间。
排名规则统计维度单选:
1. 累计里程 (KM)
2. 累计落差 (Vertical Drop)
3. 最高滑行速度 (需谨慎,并在前端提示安全风险)
范围限制可选指定雪场 (e.g., 仅限"万龙滑雪场"的数据)。
奖励配置排名奖前 [3] 名的奖品描述 (支持图文)。
参与奖完赛(达到基础门槛)即可获得的奖励。通常为积分/勋章。
参与门槛达标数据设定最低有效数据 (e.g., 累计滑行 > 10km) 才算"完赛"。
权限控制参与范围1. 全网公开 (仅官方可发)
2. 仅限俱乐部成员 (Club 默认)
3. 指定群组 (关联 IM 群)

2.2 用户端 (C-Side Flow)

A. 挑战列表

  • 我的挑战: 展示已报名且进行中的挑战进度条。
  • 发现挑战: 推荐官方热门挑战及用户所在俱乐部的挑战。

B. 挑战详情与排行榜

  • 实时榜单: 动态刷新 Top 100 排名。
    • 显示:头像、昵称、所属俱乐部、成绩数值。
  • 我的战绩:
    • 当前排名。
    • 距离上一名/获奖区的差距 ("再滑 2km 即可超越/获奖") -> 核心激励点

C. 数据同步逻辑

mermaid
sequenceDiagram
    participant U as 用户 (App)
    participant S as 服务端 (Challenge Svc)
    
    U->>U: 结束滑行,上传轨迹
    U->>S: 提交 Track Data
    S->>S: 校验数据有效性 (去噪)
    S->>S: 检索用户参与的所有"进行中"挑战
    loop 遍历挑战
        S->>S: 过滤是否符合挑战规则 (时间/雪场)
        S->>S: 累加成绩 (Increment Score)
    end
    S->>S: 更新排行榜 (Redis ZSet)
    S-->>U: 返回本次滑行更新的挑战进度

三、 验收标准 (Acceptance Criteria)

  1. 俱乐部隔离: 俱乐部 A 发起的内部挑战,非成员无法报名(或报名时提示加入俱乐部)。
  2. 数据过滤:
    • 验证时间范围: 挑战开始前或结束后的滑行数据不计入。
    • 验证雪场限制: 若挑战限定"北大壶",在"松花湖"的滑行数据不计入。
  3. 榜单更新: 上传一条 5km 的轨迹后,关联的"里程挑战"个人成绩应增加 5km,排名相应变动。
  4. 奖励发放: 模拟挑战结束,系统应自动向达标用户发放"参与奖"(如积分),并生成排名报表供管理员核对"排名奖"。

四、 不做范围 (Out-of-Scope)

  • 组队挑战: MVP 仅支持个人参赛,不支持"战队PK"模式。
  • 实物物流: 排名奖的实物发放由管理员线下联系或通过消息系统收集地址,不开发内置物流系统。

雪哒产品文档

请输入访问密码