- git init (分支 main) + remote origin → gitea comi-logic/vtubermini - 根级 .gitignore 排除 node_modules/dist/android-build/releases(APK)/日志/.codex-logs - .gitattributes 用 Git LFS 跟踪 *.png/*.mp4 等媒体(141 个文件) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
554 lines
25 KiB
Markdown
554 lines
25 KiB
Markdown
# Product Spec: VTuber Mini
|
||
|
||
## 产品概述
|
||
|
||
VTuber Mini 是一个面向单个虚拟主播粉丝的安卓周边 App 模板。用户通过照顾“主播动物化小狗形象”获得积分,再用积分抽取主播虚拟小卡;平台运营人员通过后台工坊发放钻石,用户在商城中使用钻石兑换实物周边奖品。
|
||
|
||
目标用户是该虚拟主播的粉丝,尤其是愿意每日互动、收集虚拟小卡、参与周边兑换活动的用户。产品核心价值是把粉丝日常互动、虚拟收藏和周边兑换整合成一个可持续运营的闭环,而不是只做一个静态周边商城。
|
||
|
||
第一版只服务一个主播,不做多主播入驻。后续为其他主播复制时,通过替换主播资料、主题视觉、小狗形象、卡牌素材、卡池配置、商城奖品和活动配置来复用模板。
|
||
|
||
## 应用场景
|
||
|
||
- 粉丝每天打开 App,进入宠物小屋照顾主播动物化小狗形象,完成喂食、抚摸、清洁、玩耍等操作获得积分,但每日积分有上限。
|
||
- 粉丝积攒积分后进入抽卡页,查看当前卡池、概率和卡牌预览,消耗积分抽取主播虚拟小卡,并在卡册中收藏。
|
||
- 粉丝抽到重复小卡时,系统自动将重复卡转化为碎片或少量积分,避免重复抽取完全无价值。
|
||
- 运营人员在后台工坊给指定用户发放钻石,例如活动奖励、主播线下活动补偿、运营补贴或特殊任务奖励。
|
||
- 粉丝进入钻石商城,使用后台发放的钻石兑换实物周边奖品,填写收货信息并查看兑换订单状态。
|
||
- 粉丝进入纪念日页面,记录自己的入团时间,查看主播生日和开播周年纪念日,并添加个人自定义纪念日,系统在临近日期时提醒用户。
|
||
|
||
## 功能需求
|
||
|
||
### 核心功能
|
||
|
||
- 用户登录:用户打开 App 并登录账号,系统识别用户身份,加载用户积分、钻石、卡册、宠物互动记录和商城订单。
|
||
- 首页:用户进入首页,系统展示主播主题视觉、当前积分和钻石余额、宠物入口、抽卡入口、商城入口、活动公告。
|
||
- 宠物小屋:用户进入宠物小屋,系统展示主播动物化小狗形象、状态值、今日可获得积分、今日任务进度和互动按钮。
|
||
- 宠物互动:用户点击喂食、抚摸、清洁、玩耍等操作,系统更新小狗状态、用户亲密度和每日任务进度。
|
||
- 宠物日常照顾:用户通过每日看小狗、喂食、抚摸、清洁、玩耍和全部照顾完成奖励获得积分,并受每日积分上限控制。
|
||
- 每日积分上限:用户通过宠物日常获得积分时,系统检查当日上限,超过上限后只给予亲密度或表现反馈,不再发放积分。
|
||
- 积分钱包:用户查看积分余额和积分流水,系统展示积分获得、抽卡消耗、重复卡返还等记录。
|
||
- 卡池列表:用户查看当前卡池,系统展示卡池名称、活动时间、单抽消耗、卡牌范围、稀有度概率、保底规则和抽取记录入口。
|
||
- 积分抽卡:用户消耗积分进行单抽或十连抽,系统按当前卡池版本生成结果,扣减积分,发放小卡,并写入抽卡日志。
|
||
- 卡册收藏:用户查看已拥有和未拥有的小卡,系统按系列、稀有度、获取时间展示卡牌,并支持查看卡面详情。
|
||
- 重复卡处理:用户抽到已拥有小卡时,系统自动转化为碎片或少量积分,并写入资产流水。
|
||
- 钻石钱包:用户查看钻石余额和钻石流水,系统展示后台发放、商城消耗、订单退款等记录。
|
||
- 钻石商城:用户浏览实物奖品,系统展示奖品图片、名称、规格、库存、兑换所需钻石、发货周期和兑换规则。
|
||
- 奖品兑换:用户选择奖品并提交收货信息,系统校验钻石余额和库存,扣减钻石,锁定库存,生成兑换订单。
|
||
- 订单记录:用户查看兑换订单,系统展示订单状态、收货信息、物流信息、售后入口。
|
||
- 纪念日:用户查看入团时间、主播生日、主播开播周年和自定义纪念日,系统展示倒计时、已陪伴天数和纪念日提醒。
|
||
- 入团时间记录:用户首次设置或修改入团时间,系统保存日期并计算加入粉丝团后的累计天数。
|
||
- 自定义纪念日:用户添加、编辑或删除个人纪念日,系统保存名称、日期、是否每年重复、提醒开关和备注。
|
||
- 后台工坊:运营人员管理用户、积分、钻石、卡池、卡牌、商城奖品、兑换订单和运营公告。
|
||
- 后台资产发放:运营人员给用户发放积分、钻石或卡牌,系统要求填写发放原因,记录操作人、时间、对象和流水。
|
||
- 后台卡池配置:运营人员配置卡牌、稀有度、概率、保底、活动时间和上下架状态,系统保存卡池版本。
|
||
- 后台商城管理:运营人员配置实物奖品、库存、兑换价格、上下架状态、订单发货状态和售后处理。
|
||
|
||
### 辅助功能
|
||
|
||
- 公告与活动:运营人员发布活动公告,用户在首页或消息中心查看。
|
||
- 消息通知:系统通知用户抽卡结果、钻石到账、兑换成功、发货、订单异常和风控提醒。
|
||
- 纪念日提醒:系统在主播生日、开播周年、用户入团周年和用户自定义纪念日前推送提醒,提醒提前天数由用户或后台配置决定。
|
||
- 客服与申诉:用户提交资产异常、抽卡异常、兑换异常或风控申诉,后台可查看并处理。
|
||
- 风控限制:系统根据设备、账号、IP、操作频率、同地址多号兑换等规则标记异常行为。
|
||
- 用户协议与规则页:系统展示积分规则、钻石规则、抽卡概率、商城兑换规则、隐私政策和未成年人提示。
|
||
|
||
## 纪念日规则
|
||
|
||
### 纪念日类型
|
||
|
||
| 类型 | 来源 | 用户是否可编辑 | 用途 |
|
||
| --- | --- | --- | --- |
|
||
| 入团时间 | 用户设置 | 可编辑 | 记录用户加入粉丝团或开始关注主播的日期,展示陪伴天数和入团周年 |
|
||
| 主播生日 | 后台配置 | 不可编辑 | 展示主播生日倒计时,承接生日活动、卡池或商城专题 |
|
||
| 开播周年 | 后台配置 | 不可编辑 | 展示主播开播周年倒计时,承接周年活动、纪念卡池或周边兑换 |
|
||
| 自定义纪念日 | 用户创建 | 可编辑 | 记录用户个人设定的纪念日,例如第一次看直播、第一次抽到 SSR、线下见面日 |
|
||
|
||
### 展示规则
|
||
|
||
- 纪念日页面按“即将到来”优先排序,同一天多个纪念日按系统纪念日优先展示。
|
||
- 入团时间展示为“已陪伴 X 天”,入团周年展示下一次周年倒计时。
|
||
- 主播生日和开播周年支持后台配置主题图、活动入口、祝福文案和关联卡池。
|
||
- 自定义纪念日支持一次性日期和每年重复两种模式。
|
||
- 纪念日不直接发放积分或钻石。若运营希望做纪念奖励,必须通过活动或后台资产发放配置,并写入资产流水。
|
||
|
||
### 提醒规则
|
||
|
||
- 用户可为入团周年和自定义纪念日开启或关闭提醒。
|
||
- 主播生日和开播周年默认展示站内提醒,是否推送由后台配置。
|
||
- 默认提醒时间为当天 09:00,可支持提前 1 天、3 天、7 天提醒。
|
||
- 提醒内容不能夸大诱导消费,关联抽卡或商城活动时必须展示活动规则。
|
||
|
||
## 宠物玩法规则
|
||
|
||
### 宠物定位
|
||
|
||
小狗是主播的动物化形象,所有用户看到的是同一只主播主题小狗。系统不为每个用户生成独立宠物,只记录每个用户自己的互动进度、亲密度、积分产出、装饰解锁和任务完成状态。
|
||
|
||
### 玩法目标
|
||
|
||
宠物玩法承担四个目标:
|
||
|
||
1. 给用户一个每日回访理由,让粉丝每天打开 App 时先看到主播动物化小狗的状态。
|
||
2. 作为积分主产出来源,通过每日照顾稳定产出积分,并严格受每日上限控制。
|
||
3. 承载轻量长期养成,通过亲密等级、连续照顾、装饰和回忆沉淀陪伴感。
|
||
4. 将积分自然导向抽卡和卡册收藏,但不让宠物属性影响抽卡概率、积分倍率或商城兑换。
|
||
|
||
### 最小可玩循环
|
||
|
||
1. 用户进入宠物小屋。
|
||
2. 系统展示小狗形象、今日状态、推荐照顾动作、今日任务和今日剩余可获得积分。
|
||
3. 用户执行喂食、抚摸、清洁或玩耍。
|
||
4. 系统更新状态值、亲密度、任务进度和即时反馈文案。
|
||
5. 系统检查每日积分上限,结算积分或仅结算亲密度。
|
||
6. 用户完成全部每日照顾后,系统发放一次完成奖励;若今日积分已满,只展示完成反馈,不再发积分。
|
||
7. 用户积分接近或达到单抽成本时,宠物页提示进入抽卡页抽取主播虚拟小卡。
|
||
|
||
### 状态值
|
||
|
||
| 状态 | 用途 | MVP 处理 |
|
||
| --- | --- | --- |
|
||
| 饱腹值 | 反馈喂食行为 | 影响小狗表情和任务进度,不影响抽卡概率 |
|
||
| 心情值 | 反馈抚摸和玩耍 | 影响小狗表情和亲密度,不影响积分倍率 |
|
||
| 清洁值 | 反馈清洁行为 | 影响小狗视觉状态,不设置严重惩罚 |
|
||
| 活力值 | 反馈玩耍和互动频率 | 用于限制连续操作,避免无脑刷 |
|
||
| 亲密度 | 长期成长值 | 解锁装饰、称号、表情或语音 |
|
||
|
||
状态值只做表现和推荐,不做强惩罚。用户未登录、断签或状态较低时,不扣积分、不扣亲密度、不锁抽卡。低状态只用于提示用户下一步该照顾什么,例如“今天优先:清洁”“它想被摸摸”“玩累了,适合轻轻陪它一会儿”。
|
||
|
||
### 积分产出
|
||
|
||
积分产出来自每日照顾,并必须有每日上限。宠物玩法建议把用户分为三档节奏:
|
||
|
||
| 活跃度 | 用户行为 | 每日积分预期 |
|
||
| --- | --- | ---: |
|
||
| 轻度 | 登录看小狗并完成部分照顾 | 35-45 |
|
||
| 中度 | 完成大部分照顾 | 60-70 |
|
||
| 满勤 | 全部照顾和完成奖励 | 80 |
|
||
|
||
第一版建议数值:
|
||
|
||
| 行为 | 每日次数 | 单次积分 | 每日上限 |
|
||
| --- | ---: | ---: | ---: |
|
||
| 登录看小狗 | 1 | 10 | 10 |
|
||
| 喂食 | 2 | 10 | 20 |
|
||
| 抚摸 | 3 | 7 | 21 |
|
||
| 清洁 | 1 | 10 | 10 |
|
||
| 玩耍互动 | 2 | 7 | 14 |
|
||
| 完成全部每日照顾 | 1 | 5 | 5 |
|
||
|
||
MVP 每日总积分上限建议为 80 积分。若单抽成本设为 100 积分,用户约 1-2 天可完成一次抽卡。具体数值后续可在运营配置中调整。
|
||
|
||
重复提交、网络重放或疑似脚本操作不重复结算积分。达到每日上限后,互动只结算亲密度和反馈,不再发放积分。
|
||
|
||
### 长期养成
|
||
|
||
长期养成只提供陪伴、收藏和展示价值,不提供抽卡概率、积分倍率或商城折扣。
|
||
|
||
| 养成层 | 设计 | MVP 处理 |
|
||
| --- | --- | --- |
|
||
| 连续照顾 | 记录连续照顾天数和累计照顾天数 | 展示连续 X 天;断签不惩罚,只重置连续展示 |
|
||
| 亲密等级 | 亲密度累计后提升 Lv.1-Lv.30 | MVP 可先做 Lv.1-Lv.10,后续扩展 |
|
||
| 解锁奖励 | 解锁称号、表情、台词、语音或小屋视觉变化 | 第一版优先做称号、表情和台词 |
|
||
| 宠物装饰 | 头饰、颈饰、小窝背景三类槽位 | 二期实现,来源为亲密等级、活动或碎片兑换 |
|
||
| 宠物回忆 | 记录第一次喂食、连续 7 天、第一次抽到 SSR、主播生日当天来访等节点 | 二期实现,与纪念日系统联动 |
|
||
| 周任务 | 本周照顾 5 天、完成 10 次互动、完成 3 次全部照顾等 | 二期实现,奖励以装饰、称号和少量积分为主 |
|
||
|
||
### 情绪反馈与页面引导
|
||
|
||
- 宠物页主视觉必须先展示小狗状态和陪伴反馈,再展示任务收益。
|
||
- 系统根据最低状态值生成今日推荐动作,例如“今天优先:喂食”“它想被摸摸”“毛毛需要整理一下”。
|
||
- 互动成功反馈要同时包含情绪反馈和积分反馈,例如“小狗叼着小点心蹭了蹭你,获得 10 积分”。
|
||
- 达到每日积分上限后,继续互动只提升亲密度和表现反馈,文案应明确“今天积分已满,继续陪它仍会增加亲密度”。
|
||
- 四项每日照顾全部完成后,今日任务区展示完成态,例如“今日照顾完成,明天它还会等你”。
|
||
- 当积分接近或达到单抽成本时,宠物页展示进入抽卡页的轻提示,但不能用倒计时或强刺激文案诱导消费。
|
||
|
||
### 玩法边界
|
||
|
||
- 不做多只宠物、多主播宠物、宠物繁殖、战斗、开放地图。
|
||
- 不让宠物属性影响抽卡概率、积分倍率、商城价格或实物兑换资格。
|
||
- 不做用户间宠物互动、排行榜、留言和互访,避免引入审核、举报和隐私成本。
|
||
- 不做强惩罚衰减,不因为用户断签或未照顾而扣除资产、亲密度或已有奖励。
|
||
- 重复卡长期建议转为碎片,碎片可用于兑换指定低稀有卡、宠物装饰、表情或称号;碎片不得兑换实物、不得交易、不得提现。
|
||
|
||
## 抽卡与卡册规则
|
||
|
||
### 卡池
|
||
|
||
- 卡池必须展示卡牌范围、稀有度、概率、活动时间、消耗积分、保底规则和重复卡处理规则。
|
||
- 每次抽卡必须绑定卡池版本。概率或卡牌范围变更时,不覆盖旧版本,创建新版本。
|
||
- 卡池不允许设置空奖。
|
||
- MVP 支持单抽;十连抽可作为第一版增强项。
|
||
|
||
### 稀有度
|
||
|
||
默认稀有度建议:
|
||
|
||
| 稀有度 | 说明 |
|
||
| --- | --- |
|
||
| N | 常规小卡 |
|
||
| R | 特别表情或日常服装小卡 |
|
||
| SR | 活动主题小卡 |
|
||
| SSR | 限定视觉或纪念小卡 |
|
||
|
||
### 重复卡
|
||
|
||
重复卡默认转化为碎片。碎片可用于后续兑换指定小卡、宠物装饰或少量积分。MVP 可先只做“重复卡转积分”,但要保留碎片字段,避免后续迁移困难。
|
||
|
||
## 钻石与商城规则
|
||
|
||
### 钻石定位
|
||
|
||
钻石是后台工坊发放的运营资产,MVP 不开放用户充值,不支持用户间转赠、交易、提现或兑换现金。钻石主要用于商城兑换实物周边奖品。
|
||
|
||
### 发放规则
|
||
|
||
后台发放钻石必须记录:
|
||
|
||
- 发放用户
|
||
- 发放数量
|
||
- 发放原因
|
||
- 操作人员
|
||
- 操作时间
|
||
- 审批状态
|
||
- 资产流水编号
|
||
|
||
### 商城兑换
|
||
|
||
- 商城商品必须展示图片、名称、规格、库存、钻石价格、发货周期、售后规则。
|
||
- 用户兑换时,系统校验库存和钻石余额。
|
||
- 兑换成功后,系统扣减钻石、锁定库存、生成订单。
|
||
- 后台可更新订单状态:待发货、已发货、已完成、售后中、已取消、已退款。
|
||
|
||
## UI 布局
|
||
|
||
### App 整体结构
|
||
|
||
移动端底部 Tab 布局,建议 5 个主入口:
|
||
|
||
1. 首页
|
||
2. 宠物
|
||
3. 抽卡
|
||
4. 商城
|
||
5. 我的
|
||
|
||
纪念日不单独占底部 Tab,第一版从首页纪念日卡片和我的页入口进入,避免主导航过重。
|
||
|
||
### 首页
|
||
|
||
- 顶部展示主播主题横幅、主播头像或标志、当前活动入口。
|
||
- 资产区展示积分余额、钻石余额。
|
||
- 快捷入口展示宠物小屋、当前卡池、商城新品。
|
||
- 纪念日卡片展示最近一个纪念日、倒计时、入团陪伴天数和查看全部入口。
|
||
- 公告区展示运营公告、活动规则、兑换提醒。
|
||
|
||
### 宠物页
|
||
|
||
- 主视觉区域展示小狗形象和当前状态,不使用复杂开放地图。
|
||
- 状态区展示饱腹、心情、清洁、活力、亲密度。
|
||
- 操作区提供喂食、抚摸、清洁、玩耍按钮。
|
||
- 今日任务区展示任务进度、可领取积分和今日剩余积分上限。
|
||
- 底部操作区展示今日积分进度,并在积分接近单抽成本时引导进入抽卡页。
|
||
|
||
### 抽卡页
|
||
|
||
- 顶部展示当前卡池视觉、活动时间和剩余时间。
|
||
- 中部展示卡牌预览、稀有度概率、保底规则入口。
|
||
- 底部固定抽卡按钮:单抽、十连抽。
|
||
- 结果弹窗展示抽到的小卡、稀有度、是否重复、重复转化结果。
|
||
|
||
### 卡册页
|
||
|
||
- 按系列、稀有度、已拥有/未拥有筛选。
|
||
- 卡片网格展示小卡缩略图、稀有度、拥有状态。
|
||
- 点击卡片进入详情页,展示大图、编号、获得时间、来源。
|
||
|
||
### 商城页
|
||
|
||
- 商品列表展示实物奖品图片、名称、库存、钻石价格。
|
||
- 商品详情展示规格、兑换规则、发货周期、售后说明。
|
||
- 兑换确认页展示收货地址、钻石扣减、库存锁定提示。
|
||
|
||
### 我的页
|
||
|
||
- 展示账号信息、积分余额、钻石余额。
|
||
- 入口包括:积分流水、钻石流水、抽卡记录、卡册、兑换订单、纪念日、地址管理、客服与申诉、规则与协议。
|
||
|
||
### 纪念日页
|
||
|
||
- 顶部展示入团时间和已陪伴天数,未设置时展示设置入口。
|
||
- 系统纪念日区展示主播生日、开播周年、倒计时、活动入口和后台配置的主题图。
|
||
- 自定义纪念日区展示用户创建的纪念日列表,支持添加、编辑、删除。
|
||
- 添加纪念日表单包含:名称、日期、是否每年重复、提醒开关、提前提醒时间、备注。
|
||
- 空状态提示用户添加第一次看直播、第一次抽卡、第一次参加线下活动等纪念日。
|
||
|
||
### 后台工坊
|
||
|
||
后台优先做 Web 管理端,不放入用户 App。模块包括:
|
||
|
||
- 用户管理
|
||
- 资产管理
|
||
- 钻石发放
|
||
- 卡牌管理
|
||
- 卡池管理
|
||
- 抽卡日志
|
||
- 商城商品
|
||
- 兑换订单
|
||
- 风控记录
|
||
- 公告管理
|
||
- 纪念日配置
|
||
- 操作审计
|
||
|
||
## 用户使用流程
|
||
|
||
### 每日互动流程
|
||
|
||
1. 用户登录 App。
|
||
2. 用户进入首页查看积分、钻石和活动。
|
||
3. 用户进入宠物页照顾小狗。
|
||
4. 用户完成每日照顾任务。
|
||
5. 系统按每日看小狗、喂食、抚摸、清洁、玩耍和全部照顾完成奖励结算积分。
|
||
6. 用户领取积分,系统写入积分流水。
|
||
7. 用户进入抽卡页消耗积分抽卡。
|
||
|
||
### 积分抽卡流程
|
||
|
||
1. 用户进入抽卡页。
|
||
2. 用户查看卡池、概率、保底和消耗。
|
||
3. 用户点击单抽或十连抽。
|
||
4. 系统校验积分余额和卡池状态。
|
||
5. 系统按卡池版本生成抽卡结果。
|
||
6. 系统扣减积分并发放小卡。
|
||
7. 系统展示结果并写入抽卡日志。
|
||
8. 用户进入卡册查看新卡。
|
||
|
||
### 钻石兑换流程
|
||
|
||
1. 后台运营人员给用户发放钻石。
|
||
2. 用户收到钻石到账通知。
|
||
3. 用户进入商城选择奖品。
|
||
4. 用户提交兑换并填写收货地址。
|
||
5. 系统扣减钻石、锁定库存、生成订单。
|
||
6. 后台运营人员处理发货。
|
||
7. 用户查看物流和订单状态。
|
||
|
||
### 纪念日使用流程
|
||
|
||
1. 用户进入首页,看到最近纪念日卡片。
|
||
2. 用户点击纪念日卡片,进入纪念日页。
|
||
3. 用户设置入团时间,系统计算已陪伴天数和下一次入团周年。
|
||
4. 用户查看主播生日和开播周年,系统展示倒计时和关联活动入口。
|
||
5. 用户添加自定义纪念日,设置名称、日期、重复方式和提醒。
|
||
6. 到达提醒时间后,系统发送站内提醒或推送提醒。
|
||
|
||
### 后台运营流程
|
||
|
||
1. 运营人员登录后台。
|
||
2. 配置卡牌和卡池。
|
||
3. 配置商城奖品和库存。
|
||
4. 审批并发放钻石。
|
||
5. 查看抽卡日志和资产流水。
|
||
6. 处理兑换订单和用户申诉。
|
||
|
||
## AI 能力需求
|
||
|
||
| 能力类型 | 用途说明 | 应用位置 |
|
||
| --- | --- | --- |
|
||
| 暂不需要 | MVP 不依赖 AI 能力,优先保证宠物互动、积分、抽卡、商城和后台资产系统稳定 | 无 |
|
||
|
||
后续可选 AI 增强:
|
||
|
||
- AI 生成小卡文案、卡面标题或活动公告草稿。
|
||
- AI 客服辅助回答规则、订单和资产问题。
|
||
- AI 风控辅助标记异常积分获取行为。
|
||
|
||
这些不进入 MVP,避免第一版复杂度失控。
|
||
|
||
## 技术方向
|
||
|
||
| 维度 | 选择 | 理由 |
|
||
| --- | --- | --- |
|
||
| 产品类型 | Mobile App,第一阶段 Android APK | 用户明确要求先在安卓平台使用,输出物为 APK |
|
||
| 推荐前端技术 | React + TypeScript + Vite + Capacitor | 当前本机已有 Node/npm,可先快速搭建前端和移动壳;最终通过 Android 工具链打 APK |
|
||
| 后台工坊 | Web 管理端 | 运营配置和订单处理更适合桌面浏览器后台 |
|
||
| 后端服务 | 云端 API + 数据库 | 积分、钻石、抽卡、商城、订单和风控都不能只放本地 |
|
||
| 数据存储 | 云端数据库为主,本地缓存为辅 | 资产类数据必须服务端可信,App 本地只缓存展示数据 |
|
||
| APK 构建 | Capacitor Android 工程 + Android SDK/JDK | 当前环境缺 Android SDK/JDK,后续打包前必须补齐 |
|
||
|
||
## 技术说明
|
||
|
||
### 服务端必须负责的逻辑
|
||
|
||
- 登录鉴权
|
||
- 积分发放与扣减
|
||
- 钻石发放与扣减
|
||
- 抽卡随机结果生成
|
||
- 卡池版本锁定
|
||
- 抽卡日志记录
|
||
- 商城库存锁定
|
||
- 订单生成
|
||
- 风控判断
|
||
- 后台操作审计
|
||
- 系统纪念日配置
|
||
- 纪念日提醒任务调度
|
||
|
||
前端不能自行决定积分、钻石、抽卡结果或订单状态。
|
||
|
||
### 本地 App 可以负责的逻辑
|
||
|
||
- 页面展示
|
||
- 动画反馈
|
||
- 宠物状态表现
|
||
- 临时 UI 状态
|
||
- 离线时的只读缓存
|
||
- 纪念日倒计时展示
|
||
|
||
宠物积分最终结算必须由服务端校验每日次数、每日上限和重复提交状态。
|
||
|
||
### 当前环境约束
|
||
|
||
当前工作区为空项目。本机已检测到 Node.js 和 npm,但缺少 Java/JDK、Android SDK、Gradle、Flutter 等 APK 构建工具。可以先搭建 Web/Capacitor 项目骨架;要真正输出 APK,需要先安装并配置 Android 构建环境。
|
||
|
||
## 数据需求
|
||
|
||
### 用户资产
|
||
|
||
| 数据 | 说明 |
|
||
| --- | --- |
|
||
| user_id | 用户标识 |
|
||
| points_balance | 积分余额 |
|
||
| diamonds_balance | 钻石余额 |
|
||
| points_log | 积分获得和消耗流水 |
|
||
| diamonds_log | 钻石获得和消耗流水 |
|
||
| owned_cards | 用户拥有的小卡 |
|
||
| gacha_logs | 抽卡记录 |
|
||
| orders | 商城兑换订单 |
|
||
|
||
### 宠物状态
|
||
|
||
| 数据 | 说明 |
|
||
| --- | --- |
|
||
| pet_profile_id | 主播动物化小狗形象配置 |
|
||
| intimacy | 用户与小狗的亲密度 |
|
||
| intimacy_level | 亲密等级,用于解锁称号、表情、台词、语音或装饰 |
|
||
| hunger | 饱腹状态 |
|
||
| mood | 心情状态 |
|
||
| cleanliness | 清洁状态 |
|
||
| energy | 活力状态 |
|
||
| daily_points_earned | 今日宠物玩法已获得积分 |
|
||
| daily_points_cap | 今日宠物玩法积分上限 |
|
||
| daily_action_counts | 今日各互动行为次数 |
|
||
| daily_login_seen | 今日是否已进入宠物页看小狗 |
|
||
| daily_care_completed | 今日全部照顾任务是否已完成 |
|
||
| daily_reset_date | 当前日常周期 |
|
||
| streak_days | 连续照顾天数 |
|
||
| total_care_days | 累计照顾天数 |
|
||
| weekly_task_state | 本周宠物任务进度 |
|
||
| owned_pet_items | 已解锁宠物装饰 |
|
||
| equipped_pet_items | 当前装备宠物装饰 |
|
||
| unlocked_pet_memories | 已解锁的宠物回忆节点 |
|
||
|
||
### 卡池
|
||
|
||
| 数据 | 说明 |
|
||
| --- | --- |
|
||
| pool_id | 卡池标识 |
|
||
| pool_version | 卡池版本 |
|
||
| card_list | 卡池内卡牌 |
|
||
| rarity_weights | 稀有度概率 |
|
||
| start_at / end_at | 活动时间 |
|
||
| cost_points | 单抽积分消耗 |
|
||
| pity_rule | 保底规则 |
|
||
| duplicate_rule | 重复卡处理规则 |
|
||
|
||
### 商城
|
||
|
||
| 数据 | 说明 |
|
||
| --- | --- |
|
||
| sku_id | 商品标识 |
|
||
| name | 商品名称 |
|
||
| image | 商品图片 |
|
||
| specs | 商品规格 |
|
||
| diamond_price | 钻石兑换价 |
|
||
| stock | 库存 |
|
||
| shipping_rule | 发货规则 |
|
||
| after_sales_rule | 售后规则 |
|
||
|
||
### 纪念日
|
||
|
||
| 数据 | 说明 |
|
||
| --- | --- |
|
||
| anniversary_id | 纪念日标识 |
|
||
| user_id | 用户标识;系统纪念日可为空 |
|
||
| type | 类型:入团时间、主播生日、开播周年、自定义 |
|
||
| title | 纪念日名称 |
|
||
| date | 纪念日日期 |
|
||
| repeat_yearly | 是否每年重复 |
|
||
| reminder_enabled | 是否开启提醒 |
|
||
| reminder_offsets | 提前提醒时间,例如当天、提前 1 天、提前 3 天 |
|
||
| note | 用户备注 |
|
||
| theme_image | 系统纪念日主题图 |
|
||
| linked_activity_id | 关联活动标识 |
|
||
| created_at / updated_at | 创建和更新时间 |
|
||
|
||
## 合规与风控要求
|
||
|
||
- 抽卡页必须展示概率、卡牌范围、保底规则、重复卡处理规则。
|
||
- 抽卡概率调整必须生成新卡池版本,不能覆盖历史配置。
|
||
- 抽卡日志、资产流水、后台操作日志必须可追踪。
|
||
- 不设置空奖。
|
||
- MVP 不开放钻石充值。
|
||
- MVP 不开放用户间卡牌交易、钻石转赠、提现或二级市场。
|
||
- 未成年人规则需要预留,正式上线前必须明确实名、防沉迷、抽卡和商城限制策略。
|
||
- 宠物积分必须有每日上限、每日次数限制和重复提交防护。
|
||
- 商城兑换必须有库存锁定、订单记录、物流状态和售后入口。
|
||
- 后台发放资产必须记录原因、操作人和审批状态。
|
||
- 纪念日提醒若关联抽卡或商城活动,必须清楚展示活动规则、概率或兑换条件,不用倒计时制造强诱导消费。
|
||
|
||
## MVP 范围
|
||
|
||
### 第一阶段必须完成
|
||
|
||
- 安卓 App 基础壳
|
||
- 登录与用户身份
|
||
- 首页
|
||
- 宠物小屋
|
||
- 每日积分上限
|
||
- 积分钱包与流水
|
||
- 卡池列表
|
||
- 积分抽卡
|
||
- 卡册
|
||
- 钻石钱包
|
||
- 钻石商城
|
||
- 兑换订单
|
||
- 纪念日记录与提醒
|
||
- 后台工坊基础管理
|
||
- 卡池概率公示
|
||
- 抽卡日志
|
||
- 资产流水
|
||
|
||
### 第一阶段暂不做
|
||
|
||
- 多主播入驻
|
||
- 用户充值钻石
|
||
- 付费抽卡
|
||
- 用户间交易
|
||
- 卡牌转卖或提现
|
||
- 多只宠物
|
||
- 宠物繁殖、战斗、开放地图
|
||
- 社区动态、评论、私信
|
||
- 复杂会员体系
|
||
|
||
## 待确认问题
|
||
|
||
| 问题 | 默认建议 |
|
||
| --- | --- |
|
||
| 登录方式 | 第一版用手机号验证码或第三方登录二选一 |
|
||
| 是否需要实名 | 若涉及未成年人或高价值兑换,建议预留实名能力 |
|
||
| 单抽积分成本 | 暂定 100 积分 |
|
||
| 每日积分上限 | 暂定 80 积分 |
|
||
| 钻石是否永不过期 | 建议 MVP 永不过期,后续再做活动钻石 |
|
||
| 实物奖品价值上限 | 建议第一版只放低价值周边,降低合规和履约风险 |
|
||
| 后端技术栈 | 待开发计划阶段确定 |
|
||
| 纪念日是否发奖励 | 默认不直接发奖励;如需发放,必须走活动配置或后台资产发放流水 |
|