|
@@ -0,0 +1,555 @@
|
|
|
|
|
+# 五维功能清单与能量映射:每个维度有什么功能 + 每个功能提供多少能量
|
|
|
|
|
+
|
|
|
|
|
+**日期:** 2026-07-12
|
|
|
|
|
+**状态:** 初稿
|
|
|
|
|
+**关联文档:** [五维能量系统设计](./2026-06-05-five-dimension-energy-design.md), [五维相克完整设计](./2026-07-12-wuxing-ke-full-design.md), [首页与转化算法](./2026-07-12-wuxing-homepage-and-conversion-algorithm.md), [五行哲学](./2026-06-08-five-dimension-wuxing-philosophy.md)
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 概述
|
|
|
|
|
+
|
|
|
|
|
+本文档定义**每个维度有哪些功能、每个功能做什么、每个功能提供多少能量**。
|
|
|
|
|
+
|
|
|
|
|
+系统有两套并行的能量体系:
|
|
|
|
|
+
|
|
|
|
|
+| 体系 | 用途 | 范围 |
|
|
|
|
|
+|:----|:-----|:-----|
|
|
|
|
|
+| **能量账本 (Ledger)** | 孩子消耗性能量(发/扣,有日上限) | 孩子端功能激励(任务/打卡/游戏/活动) |
|
|
|
|
|
+| **五维评分 (Score)** | 0-100 维度的健康评分(无消耗,纯评估) | 家长 + 孩子,综合评估 |
|
|
|
|
|
+
|
|
|
|
|
+账本能量通过 `awardEnergy()` 方法发放,通过 `EnergySourceConfig` 表配置到各维度。
|
|
|
|
|
+评分通过 `calcChildEnergy()` / `calcParentEnergy()` 计算,是各维度数据源的加权综合。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 一、能量账本体系 (Ledger)
|
|
|
|
|
+
|
|
|
|
|
+### 1.1 现有 sourceType 总览
|
|
|
|
|
+
|
|
|
|
|
+目前系统有 **14 种来源类型** 可发放能量:
|
|
|
|
|
+
|
|
|
|
|
+| # | sourceType | 中文名 | 触发时机 | 能量范围 | 维度映射 |
|
|
|
|
|
+|:-:|:-----------|:-------|:---------|:---------|:---------|
|
|
|
|
|
+| 1 | `task` | 任务奖励 | 孩子完成任务(状态→completed) | 1-30 | 按任务category配置 |
|
|
|
|
|
+| 2 | `activity` | 活动参与 | 孩子参加活动签到 | 5-20 | 按活动类型配置 |
|
|
|
|
|
+| 3 | `streak` | 连续打卡里程碑 | 达到连续打卡天数里程碑 | 5-30 | 默认→行(action) |
|
|
|
|
|
+| 4 | `product` | 商品购买 | 购买商品/套餐 | 10-50 | 按商品类型配置 |
|
|
|
|
|
+| 5 | `onboarding` | 新手引导 | 完成新手引导步骤 | 5-10 | 默认→行(action) |
|
|
|
|
|
+| 6 | `invite_milestone` | 邀请里程碑 | 成功邀请新用户 | 10-30 | 默认→行(action) |
|
|
|
|
|
+| 7 | `health_checkin` | 健康打卡 | 每日健康数据打卡 | 3-10 | 默认→身(body) |
|
|
|
|
|
+| 8 | `growth_day` | 成长日奖励 | 完成当日成长任务 | 5-15 | 按任务类型配置 |
|
|
|
|
|
+| 9 | `game` | 小游戏 | 完成小游戏(舒尔特/猜数字/数独) | 3-15 | 按游戏类型配置 |
|
|
|
|
|
+| 10 | `checkin` | 每日签到 | 每日签到 | 1-5 | 默认→行(action) |
|
|
|
|
|
+| 11 | `emotion_checkin` | 情绪打卡 | 记录当日情绪 | 5 | 硬编码→心(mind) |
|
|
|
|
|
+| 12 | `dimension` | 维度能量同步 | 五维评分≥阈值时同步发能量 | 5-20 | 按评分维度配置 |
|
|
|
|
|
+| 13 | `appointment` | 测评预约 | 完成测评预约/到场 | 10-30 | 按预约类型配置 |
|
|
|
|
|
+| 14 | `article` | 文章互动 | 阅读/点赞/评论文章 | 2-10 | 按文章维度配置 |
|
|
|
|
|
+
|
|
|
|
|
+### 1.2 日上限配置
|
|
|
|
|
+
|
|
|
|
|
+```java
|
|
|
|
|
+// EnergyService.java
|
|
|
|
|
+GLOBAL_DAILY_LIMIT = 200 // 全局每日最多 200 能量
|
|
|
|
|
+
|
|
|
|
|
+// 按维度
|
|
|
|
|
+body (身) 50/天
|
|
|
|
|
+mind (心) 40/天
|
|
|
|
|
+wisdom (智) 80/天
|
|
|
|
|
+action (行) 60/天
|
|
|
|
|
+wealth (富) 50/天
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 1.3 维度比例配置(Fallback 链)
|
|
|
|
|
+
|
|
|
|
|
+`EnergySourceConfig` 表配置每类来源的维度比例:
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+明确配置 → sourceType + sourceId 精确匹配 → 使用配置比例
|
|
|
|
|
+无配置 → Fallback 默认 → 行(action) 100%
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**建议的新 Fallback 链**(本文档提出):
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+明确配置 → sourceType + sourceId 精确匹配
|
|
|
|
|
+ → sourceType 通用配置(sourceId=0)
|
|
|
|
|
+ → 根据 sourceType 智能默认
|
|
|
|
|
+ → 行(action) 100%(兜底)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 1.4 各 sourceType 的能量值建议
|
|
|
|
|
+
|
|
|
|
|
+以下是基于现有代码经验 + 产品价值评估的**建议能量值**:
|
|
|
|
|
+
|
|
|
|
|
+| sourceType | 单次发放 | 频率上限 | 说明 |
|
|
|
|
|
+|:-----------|:---------|:---------|:------|
|
|
|
|
|
+| task | 任务难度×3(例:简单3、中等6、挑战15) | 按任务频率 | 鼓励完成 |
|
|
|
|
|
+| activity | 5-20,参与+10,积极互动+20 | 每活动1次 | 活动参与激励 |
|
|
|
|
|
+| streak | 连续3天=5, 7天=10, 14天=20, 30天=30 | 里程碑发放 | 鼓励坚持 |
|
|
|
|
|
+| product | 订单额/100(保底5,上限50) | 每订单1次 | 消费激励 |
|
|
|
|
|
+| onboarding | 5-10,完成所有步骤额外+20 | 一次性 | 新手引导 |
|
|
|
|
|
+| invite_milestone | 邀请1人=10,3人=20,5人=30 | 里程碑发放 | 社交裂变 |
|
|
|
|
|
+| health_checkin | 3/次,连续7天额外+10 | 每日1次 | 健康习惯 |
|
|
|
|
|
+| growth_day | 完成度×15(全部完成=15) | 每日1次 | 成长任务 |
|
|
|
|
|
+| game | 分数/10(最低3,上限15) | 每局1次 | 认知训练 |
|
|
|
|
|
+| checkin | 1/次,连续7天额外+5 | 每日1次 | 签到习惯 |
|
|
|
|
|
+| emotion_checkin | 5/次 | 每日1次 | 情绪觉察 |
|
|
|
|
|
+| dimension | 评分×0.2(评分80=16能量) | 每周1次 | 评分同步激励 |
|
|
|
|
|
+| appointment | 预约=10,到场=20,出结果=30 | 每次1次 | 测评闭环 |
|
|
|
|
|
+| article | 阅读=2,点赞=5,评论=8 | 每篇1次 | 内容互动 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 二、五维评分体系 (Score) — 每个维度的功能清单
|
|
|
|
|
+
|
|
|
|
|
+以下以 **孩子** 视角为主,同时注明 **家长** 的差异。
|
|
|
|
|
+
|
|
|
|
|
+### 2.1 身 (Body · 土 · 主动健康)
|
|
|
|
|
+
|
|
|
|
|
+#### 功能列表
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 数据源 | 家长/孩子 | 评分权重(孩子) | 能量账本关联 |
|
|
|
|
|
+|:-----|:-------|:----------|:----------------:|:------------|
|
|
|
|
|
+| **① 健康报告** | `HealthReport.overallScore`(体检/菌群/营养报告) | 孩子优先 | 主要(≥60%) | — |
|
|
|
|
|
+| **② 运动任务** | `Task` 中 category∈{运动,体育,户外,健康} 完成率 | 两者 | 降级使用(无报告时100%) | task→身 |
|
|
|
|
|
+| **③ 健康打卡** | `health_checkin` 打卡频率 | 孩子 | — | health_checkin |
|
|
|
|
|
+| **④ 体质调理** | 精准营养方案跟进(待实现) | 两者 | 待定 | — |
|
|
|
|
|
+
|
|
|
|
|
+#### 评分算法
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+孩子:
|
|
|
|
|
+ IF 有健康报告(overallScore) THEN 取overallScore
|
|
|
|
|
+ ELSE 运动/户外类任务完成率(近365天)
|
|
|
|
|
+
|
|
|
|
|
+家长:
|
|
|
|
|
+ 1. 优先:孩子健康报告(取任意一个孩子的第一份报告)
|
|
|
|
|
+ 2. 降级:运动/户外任务完成率
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+#### 能量账本中"身"的来源
|
|
|
|
|
+
|
|
|
|
|
+| 来源 | 单次能量 | 说明 |
|
|
|
|
|
+|:-----|:---------|:------|
|
|
|
|
|
+| health_checkin | 3-10/次 | 每日健康数据打卡 |
|
|
|
|
|
+| task(运动/户外类) | 按任务难度 3-20 | 运动任务完成 |
|
|
|
|
|
+| product(健康商品) | 5-30 | 购买健康类商品 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 2.2 心 (Mind · 火 · 大爱相随)
|
|
|
|
|
+
|
|
|
|
|
+#### 功能列表
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 数据源 | 家长/孩子 | 评分权重(孩子) | 能量账本关联 |
|
|
|
|
|
+|:-----|:-------|:----------|:----------------:|:------------|
|
|
|
|
|
+| **① DAN EMI测评** | `DanAssessmentResult` 的 emotionManagement + empathy + socialAdaptability + selfMotivation 平均分 | 孩子 | **70%** | — |
|
|
|
|
|
+| **② 先天心基分** | `FamilyMemberAttributes.mindBaseScore` | 孩子 | **30%**(有DAN时) | — |
|
|
|
|
|
+| **③ 情绪打卡** | `emotion_checkin` 打卡频率 → modifier | 孩子 | modifier±5% | emotion_checkin(5/次) |
|
|
|
|
|
+| **④ 亲子任务** | Task 中 category∈{学习,阅读,亲子,情感,成长} 完成率 | 两者 | Fallback降级 | task→心 |
|
|
|
|
|
+| **⑤ 家庭天盘相性** | 天盘中成员关系质量(待实现) | 两者 | 待定 | — |
|
|
|
|
|
+| **⑥ 传承记录** | 家训阅读、给孩子的信(待实现) | 家长 | 待定 | article→心 |
|
|
|
|
|
+
|
|
|
|
|
+#### 评分算法
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+孩子:
|
|
|
|
|
+ IF 有DAN EMI:
|
|
|
|
|
+ base = EMI四子分平均 × 0.70
|
|
|
|
|
+ IF 有先天心基分:
|
|
|
|
|
+ base += 先天心基分 × 0.30
|
|
|
|
|
+ score = base × (1 + behaviorModifier) // modifier: -20% ~ +20%
|
|
|
|
|
+ ELSE IF 有先天心基分:
|
|
|
|
|
+ score = 先天心基分 × (1 + behaviorModifier)
|
|
|
|
|
+ ELSE:
|
|
|
|
|
+ score = 学习/阅读/亲子类任务完成率(近365天)
|
|
|
|
|
+
|
|
|
|
|
+家长:
|
|
|
|
|
+ 学习/阅读/亲子类任务完成率(近365天)
|
|
|
|
|
+ (家长缺少DAN和先天数据,暂用任务完成率)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**behaviorModifier 构成(孩子):**
|
|
|
|
|
+- 任务完成率 ±5%(学习/阅读/亲子/好习惯/运动类,近90天)
|
|
|
|
|
+- 游戏表现 ±5%(所有游戏平均分)
|
|
|
|
|
+- clamped 到 ±20%
|
|
|
|
|
+
|
|
|
|
|
+#### 能量账本中"心"的来源
|
|
|
|
|
+
|
|
|
|
|
+| 来源 | 单次能量 | 说明 |
|
|
|
|
|
+|:-----|:---------|:------|
|
|
|
|
|
+| emotion_checkin | 5/次,日上限1次 | 情绪打卡 |
|
|
|
|
|
+| task(情感/成长类) | 5-15/次 | 亲子情感任务 |
|
|
|
|
|
+| article(心理/亲子类) | 2-8/次 | 阅读心理文章 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 2.3 智 (Wisdom · 金 · 赋能未来)
|
|
|
|
|
+
|
|
|
|
|
+#### 功能列表
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 数据源 | 家长/孩子 | 评分权重(孩子) | 能量账本关联 |
|
|
|
|
|
+|:-----|:-------|:----------|:----------------:|:------------|
|
|
|
|
|
+| **① DAN COG测评** | `DanAssessmentResult` 六子分加权平均:注意15%+专注15%+记忆20%+逻辑20%+感知15%+空间15% | 孩子 | **70%** | — |
|
|
|
|
|
+| **② 先天智基分** | `FamilyMemberAttributes.wisdomBaseScore` | 孩子 | **30%**(有DAN时) | — |
|
|
|
|
|
+| **③ 小游戏** | `GameRecord` 舒尔特方格/猜数字/数独 得分 | 孩子 | modifier±5% | game→智 |
|
|
|
|
|
+| **④ 阅读时长** | `ArticleReadingRecord` 近30天总阅读时长 | 孩子 | Fallback 33% | article→智 |
|
|
|
|
|
+| **⑤ 测评Overall** | `DanAssessmentResult.overallScore` | 孩子 | Fallback 33% | appointment→智 |
|
|
|
|
|
+| **⑥ 学习任务** | Task 中 category∈{学习,培训,技能,阅读,知识} 完成率 | 两者 | Fallback 降级/家长100% | task→智 |
|
|
|
|
|
+
|
|
|
|
|
+#### 评分算法
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+孩子:
|
|
|
|
|
+ IF 有DAN COG:
|
|
|
|
|
+ danScore = 注意×0.15 + 专注×0.15 + 记忆×0.20 + 逻辑×0.20 + 感知×0.15 + 空间×0.15
|
|
|
|
|
+ base = danScore × 0.70
|
|
|
|
|
+ IF 有先天智基分:
|
|
|
|
|
+ base += 先天智基分 × 0.30
|
|
|
|
|
+ score = base × (1 + behaviorModifier)
|
|
|
|
|
+ ELSE IF 有先天智基分:
|
|
|
|
|
+ score = 先天智基分 × (1 + behaviorModifier)
|
|
|
|
|
+ ELSE (旧逻辑Fallback):
|
|
|
|
|
+ score = 游戏平均分×34% + 测评Overall×33% + 阅读时长×33%
|
|
|
|
|
+
|
|
|
|
|
+家长:
|
|
|
|
|
+ 学习/培训/技能类任务完成率(近365天)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+#### 能量账本中"智"的来源
|
|
|
|
|
+
|
|
|
|
|
+| 来源 | 单次能量 | 说明 |
|
|
|
|
|
+|:-----|:---------|:------|
|
|
|
|
|
+| game | 得分/10(最低3,上限15) | 认知训练小游戏 |
|
|
|
|
|
+| article(知识类) | 2-8/次 | 阅读知识文章 |
|
|
|
|
|
+| task(学习/培训类) | 5-20/次 | 学习任务 |
|
|
|
|
|
+| appointment(测评) | 10-30/次 | 完成测评预约 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 2.4 行 (Action · 木 · 人际和谐)
|
|
|
|
|
+
|
|
|
|
|
+#### 圈子(珍珠图)概念
|
|
|
|
|
+
|
|
|
|
|
+圈子是行的核心社交机制。基于用户在其他三个维度(身·心·智)上的**共同话题、共同参与、共同爱好、共同能力**,自动或半自动形成社交圈,每个圈如同一颗"珍珠",多个圈串联成**珍珠图**。
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+身(健康/运动) ──┐
|
|
|
|
|
+心(情绪/亲子) ──┼──┐
|
|
|
|
|
+智(学习/游戏) ──┘ │
|
|
|
|
|
+ ├──→ 共同点匹配 → 圈子/珍珠 → 行(社交行动)
|
|
|
|
|
+富(产品/服务) ────┘ │
|
|
|
|
|
+ │
|
|
|
|
|
+身(身体状况) ──────┘
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+珍珠图 vs 章鱼图:
|
|
|
|
|
+
|
|
|
|
|
+| 维度 | 图 | 核心 | 表达 |
|
|
|
|
|
+|:----:|:--:|:-----|:-----|
|
|
|
|
|
+| **行** | **珍珠图** | 多维度共同点匹配 → 形成圈 | "我们有什么共同点" |
|
|
|
|
|
+| **富** | **章鱼图** | 现有重要关系组件 FamilyRelationGraph | "我认识谁" |
|
|
|
|
|
+
|
|
|
|
|
+珍珠图中的每个圈可以基于(来源覆盖所有维度):
|
|
|
|
|
+- **共同话题**(心·智):同一篇文章/测评的讨论组
|
|
|
|
|
+- **共同参与**(行·身):同一活动/任务的参与者
|
|
|
|
|
+- **共同爱好**(身·心):运动偏好/游戏偏好/阅读偏好相似的用户
|
|
|
|
|
+- **共同能力**(智):DAN 测评某子分接近(如逻辑能力相近的圈子)
|
|
|
|
|
+- **共同产品**(富):购买了同一商品/套餐的用户
|
|
|
|
|
+- **共同身体状况**(身):健康报告指标相似(如同为过敏体质、维生素D偏低)
|
|
|
|
|
+- **共同服务商身份**(富·行):绑定了同一位成长规划师/同一种 vendor_type
|
|
|
|
|
+
|
|
|
|
|
+#### 功能列表
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 数据源 | 家长/孩子 | 评分权重(孩子) | 能量账本关联 |
|
|
|
|
|
+|:-----|:-------|:----------|:----------------:|:------------|
|
|
|
|
|
+| **① 连续打卡** | `FamilyMember.streakDays` | 孩子 | **30%** | streak→行, checkin→行 |
|
|
|
|
|
+| **② 习惯任务** | Task 中 category∈{好习惯,习惯,自理,家务} 完成率 | 孩子 | **40%** | task→行 |
|
|
|
|
|
+| **③ 社交参与** | 活动参与/分享/邀请/社区互动,以及**圈子/珍珠图**内的互动频率 | 孩子 | **30%** | activity→行, invite_milestone→行 |
|
|
|
|
|
+| **④ 自律任务** | Task 中 category∈{习惯,自律,家务,自理,作息} 完成率 | 家长 | 家长100% | task→行 |
|
|
|
|
|
+
|
|
|
|
|
+#### 评分算法
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+孩子:
|
|
|
|
|
+ streakScore = 连续天数/参考上限 × 100 (打卡30%)
|
|
|
|
|
+ habitScore = 好习惯/自理/家务类任务完成率 (习惯40%)
|
|
|
|
|
+ socialScore = 活动参与频率 + 圈子互动热度 + 邀请/分享行为 (社交30%)
|
|
|
|
|
+ score = streakScore × 0.3 + habitScore × 0.4 + socialScore × 0.3
|
|
|
|
|
+
|
|
|
|
|
+家长:
|
|
|
|
|
+ 习惯/自律/家务/自理/作息类任务完成率(近365天)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**关于参考上限**:取当前孩子连续打卡天数 与 系统最高里程牌天数 的较大值。
|
|
|
|
|
+如果孩子打卡30天,系统最高里程碑也是30天,则 `streakScore = 30/30×100 = 100`。
|
|
|
|
|
+
|
|
|
|
|
+#### 能量账本中"行"的来源
|
|
|
|
|
+
|
|
|
|
|
+| 来源 | 单次能量 | 说明 |
|
|
|
|
|
+|:-----|:---------|:------|
|
|
|
|
|
+| checkin(签到) | 1-5/次 | 每日签到 |
|
|
|
|
|
+| streak(里程碑) | 5-30/里程碑 | 连续打卡奖励 |
|
|
|
|
|
+| task(习惯/家务类) | 3-15/次 | 习惯任务 |
|
|
|
|
|
+| activity | 5-20/次 | 活动参与 |
|
|
|
|
|
+| **所有 Fallback 默认** | 按sourceType | 无配置时默认100%→行 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 2.5 富 (Wealth · 水 · 利他创富)
|
|
|
|
|
+
|
|
|
|
|
+#### 功能列表
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 数据源 | 家长/孩子 | 评分权重(孩子) | 能量账本关联 |
|
|
|
|
|
+|:-----|:-------|:----------|:----------------:|:------------|
|
|
|
|
|
+| **① 积分获取效率** | 近1年正向积分 / 同期可用积分上限 | 孩子 | **60%** | — |
|
|
|
|
|
+| **② 学业成绩** | DanAssessmentResult 近3次 overviewScore 加权+进步趋势 | 孩子 | **40%** | appointment→富 |
|
|
|
|
|
+| **③ 金钱/收入** | 用户积分总量 / 500(参考上限) | 家长 | **50%** | product→富 |
|
|
|
|
|
+| **④ 社会成就** | 职称/奖项(待实现) | 家长 | **30%**(占位) | — |
|
|
|
|
|
+| **⑤ 资源网络** | **章鱼图**——现有 `FamilyRelationGraph` 组件,展示家庭重要关系网络及联系人管理 | 家长 | **20%** | ContactCard, ContactImport→富 |
|
|
|
|
|
+
|
|
|
|
|
+#### 评分算法
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+孩子(社交已移至行维度):
|
|
|
|
|
+ educationScore = 近3次DAN overallScore加权(权重递减: 0.5/0.3/0.2) + 进步加分(比上次提升≥5分加5%)
|
|
|
|
|
+ pointsScore = 近1年已得积分 / 同期任务总积分 × 100
|
|
|
|
|
+ score = education × 0.4 + points × 0.6
|
|
|
|
|
+
|
|
|
|
|
+家长:
|
|
|
|
|
+ incomeScore = totalPoints / 500 × 100 (上限100)
|
|
|
|
|
+ achievementScore = 0(待实现)
|
|
|
|
|
+ networkScore = 章鱼图关系网络活跃度(重要关系数量 + 互动频率折算)
|
|
|
|
|
+ score = income × 0.5 + achievement × 0.3 + network × 0.2
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+#### 能量账本中"富"的来源
|
|
|
|
|
+
|
|
|
|
|
+| 来源 | 单次能量 | 说明 |
|
|
|
|
|
+|:-----|:---------|:------|
|
|
|
|
|
+| product(高价值) | 消费额/100(保底5) | 消费反馈 |
|
|
|
|
|
+| invite_milestone | 10-30/里程碑 | 社交贡献 |
|
|
|
|
|
+| growth_day | 5-15/天 | 成长日任务 |
|
|
|
|
|
+| onboarding | 5-10/步 | 新手指引 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 三、功能-维度-能量全景映射表
|
|
|
|
|
+
|
|
|
|
|
+### 3.1 孩子端完整映射
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 所属维度 | 作用方式 | 单次/周期能量 | 日上限贡献 |
|
|
|
|
|
+|:-----|:---------|:---------|:-------------|:----------|
|
|
|
|
|
+| 健康报告解析 | 身(主要) | 评分数据源 | —(影响评分) | — |
|
|
|
|
|
+| 运动任务 | 身(主要)+行(次) | 评分+账本 | 3-20/次 | body=50 |
|
|
|
|
|
+| 健康打卡 | 身(主要) | 账本 | 3-10/次 | body=50 |
|
|
|
|
|
+| DAN EMI测评 | 心(主要) | 评分数据源 | —(影响评分) | — |
|
|
|
|
|
+| 情绪打卡 | 心(主要) | 账本+评分modifier | 5/次 | mind=40 |
|
|
|
|
|
+| 亲子任务 | 心(主要)+行(次) | 评分+账本 | 5-15/次 | mind=40 |
|
|
|
|
|
+| DAN COG测评 | 智(主要) | 评分数据源 | —(影响评分) | — |
|
|
|
|
|
+| 小游戏 | 智(主要)+心(次) | 评分modifier+账本 | 3-15/局 | wisdom=80 |
|
|
|
|
|
+| 阅读文章 | 智(主要)+心(次) | 评分+账本 | 2-8/篇 | wisdom=80 |
|
|
|
|
|
+| 学习任务 | 智(主要) | 评分+账本 | 5-20/次 | wisdom=80 |
|
|
|
|
|
+| 连续打卡 | 行(主要) | 评分+账本 | 1-5/天 | action=60 |
|
|
|
|
|
+| 习惯任务 | 行(主要)+身(次) | 评分+账本 | 3-15/次 | action=60 |
|
|
|
|
|
+| 活动参与 | 行(主要)+心(次) | 评分+账本 | 5-20/次 | action=60 |
|
|
|
|
|
+| 社交邀请 | 行(主要) | 评分+账本 | 10-30/里程碑 | action=60 |
|
|
|
|
|
+| 积分获取 | 富(主要) | 评分数据源 | —(影响评分) | — |
|
|
|
|
|
+| 邀请好友 | 富(主要)+行(次) | 账本 | 10-30/里程碑 | wealth=50 |
|
|
|
|
|
+| 成长日任务 | 富(主要)+智(次) | 账本 | 5-15/天 | wealth=50 |
|
|
|
|
|
+| 测评预约 | 智(主要)+心(次) | 账本 | 10-30/次 | wisdom=80 |
|
|
|
|
|
+| 商品购买 | 按商品类型 | 账本 | 5-50/次 | 按维度 |
|
|
|
|
|
+| 新手指引 | 行(主要) | 账本 | 5-10/步(一次性) | 不限制 |
|
|
|
|
|
+
|
|
|
|
|
+### 3.2 家长端完整映射
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 所属维度 | 作用方式 | 数据源 |
|
|
|
|
|
+|:-----|:---------|:---------|:-------|
|
|
|
|
|
+| 孩子健康报告间接 | 身 | 评分(取第一个孩子报告) | HealthReport |
|
|
|
|
|
+| 运动健康类任务 | 身 | 评分(降级) | Task完成率 |
|
|
|
|
|
+| 学习/培训类任务 | 智 | 评分 | Task完成率 |
|
|
|
|
|
+| 亲子/成长类任务 | 心 | 评分 | Task完成率 |
|
|
|
|
|
+| 习惯/自律类任务 | 行 | 评分 | Task完成率 |
|
|
|
|
|
+| 积分总量 | 富 | 评分 | totalPoints / 500 |
|
|
|
|
|
+
|
|
|
|
|
+家长端**没有能量账本**——家长不消耗/积累能量,只有五维评分(健康指数)。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 四、系统实现要点
|
|
|
|
|
+
|
|
|
|
|
+### 4.1 需要新增的 sourceType 配置
|
|
|
|
|
+
|
|
|
|
|
+建议在 `DatabaseInitializer` 中预置以下通用配置(sourceId=0 表示通用):
|
|
|
|
|
+
|
|
|
|
|
+```sql
|
|
|
|
|
+-- 身(body) 来源
|
|
|
|
|
+('health_checkin', 0, '健康打卡', @bodyId, 10000), -- 100% 身
|
|
|
|
|
+
|
|
|
|
|
+-- 心(mind) 来源
|
|
|
|
|
+('emotion_checkin', 0, '情绪打卡', @mindId, 10000), -- 100% 心
|
|
|
|
|
+
|
|
|
|
|
+-- 智(wisdom) 来源
|
|
|
|
|
+('game', 0, '小游戏', @wisdomId, 10000), -- 100% 智(暂定)
|
|
|
|
|
+('article', 0, '文章', @wisdomId, 6000), -- 60% 智
|
|
|
|
|
+('article', 0, '文章', @mindId, 4000), -- 40% 心
|
|
|
|
|
+('appointment', 0, '测评预约', @wisdomId, 10000), -- 100% 智
|
|
|
|
|
+
|
|
|
|
|
+-- 行(action) 来源
|
|
|
|
|
+('checkin', 0, '每日签到', @actionId, 10000), -- 100% 行
|
|
|
|
|
+('streak', 0, '连续打卡', @actionId, 10000), -- 100% 行
|
|
|
|
|
+('activity', 0, '活动参与', @actionId, 10000), -- 100% 行(暂定)
|
|
|
|
|
+
|
|
|
|
|
+-- 富(wealth) 来源
|
|
|
|
|
+('growth_day', 0, '成长日奖励', @wealthId, 10000), -- 100% 富
|
|
|
|
|
+('invite_milestone', 0, '邀请里程碑', @wealthId, 10000), -- 100% 富
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 4.2 日上限配置调整建议
|
|
|
|
|
+
|
|
|
|
|
+| 维度 | 当前 | 建议 | 理由 |
|
|
|
|
|
+|:-----|:-----|:-----|:------|
|
|
|
|
|
+| body | 50 | **50** | 健康打卡(3-10) + 运动任务,合理 |
|
|
|
|
|
+| mind | 40 | **50** | 情绪打卡(5) + 亲子任务,目前偏低 |
|
|
|
|
|
+| wisdom | 80 | **80** | 游戏(15) + 阅读(8) + 学习任务(20),认知类应最多 |
|
|
|
|
|
+| action | 60 | **60** | 签到(5) + 习惯任务(15) + 活动(20),合理 |
|
|
|
|
|
+| wealth | 50 | **50** | 成长日(15) + 邀请(30),合理 |
|
|
|
|
|
+
|
|
|
|
|
+### 4.3 MemberEnergyDTO 待扩展字段(从 v2.0 设计)
|
|
|
|
|
+
|
|
|
|
|
+```java
|
|
|
|
|
+// 新增字段(当前只有bodyScore/mindScore/wisdomScore/actionScore/wealthScore/overallScore)
|
|
|
|
|
+private Integer bodyScore;
|
|
|
|
|
+private Integer mindScore;
|
|
|
|
|
+private Integer wisdomScore;
|
|
|
|
|
+private Integer actionScore;
|
|
|
|
|
+private Integer wealthScore;
|
|
|
|
|
+private Integer overallScore;
|
|
|
|
|
+
|
|
|
|
|
+// 需要新增:
|
|
|
|
|
+// 子维度(心)
|
|
|
|
|
+private Integer mindEmotionStable; // 情绪稳定性
|
|
|
|
|
+private Integer mindUnderstanding; // 理解包容
|
|
|
|
|
+private Integer mindLegacy; // 传承传递
|
|
|
|
|
+
|
|
|
|
|
+// 子维度(富)
|
|
|
|
|
+// 孩子
|
|
|
|
|
+private Integer wealthEducation; // 学业成绩
|
|
|
|
|
+private Integer wealthSocial; // 社交筹码
|
|
|
|
|
+private Integer wealthPoints; // 规则博弈
|
|
|
|
|
+// 家长
|
|
|
|
|
+private Integer wealthIncome; // 金钱/收入
|
|
|
|
|
+private Integer wealthAchievement; // 社会成就
|
|
|
|
|
+private Integer wealthNetwork; // 资源网络
|
|
|
|
|
+
|
|
|
|
|
+// 克状态(5个)
|
|
|
|
|
+private String bodyWealthStatus; // 身克富: normal/overdraw/penalty
|
|
|
|
|
+private String bodyWealthMessage; // 用户可见消息
|
|
|
|
|
+// ... 其余4个克类似
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 4.4 未实现功能(待开发象限)
|
|
|
|
|
+
|
|
|
|
|
+| 功能 | 所属维度 | 优先级 | 当前状态 |
|
|
|
|
|
+|:-----|:---------|:------|:---------|
|
|
|
|
|
+| 体质调理方案跟进 | 身 | P1 | 未实现 |
|
|
|
|
|
+| 精准营养推荐反馈 | 身 | P1 | 部分实现 |
|
|
|
|
|
+| 家庭天盘相性分析 | 心 | P2 | 待实现 |
|
|
|
|
|
+| 传承传递(家训/信件) | 心 | P2 | 待实现 |
|
|
|
|
|
+| **珍珠图/圈子系统** | **行** | **P1** | **待实现** |
|
|
|
|
|
+| 家长社会成就数据 | 富 | P2 | 待实现 |
|
|
|
|
|
+| 家长资源网络数据(章鱼图) | 富 | P2 | **已有FamilyRelationGraph组件**,需接入评分 |
|
|
|
|
|
+| 孩子社交筹码数据 | 富 | P2 | 已移至行 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 五、能量分配示例
|
|
|
|
|
+
|
|
|
|
|
+### 例1:孩子完成运动任务(跳绳10分钟)
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+Task: 跳绳10分钟, category="运动", points=5
|
|
|
|
|
+时间线:
|
|
|
|
|
+ TaskService → awardEnergy(childId, "task", taskId, 3, "任务奖励", null)
|
|
|
|
|
+
|
|
|
|
|
+EnergySourceConfig 查找:
|
|
|
|
|
+ sourceType="task", sourceId=taskId → 没有精确配置
|
|
|
|
|
+ → 当前 Fallback: 行(action) 100%
|
|
|
|
|
+ → 建议 Fallback: 按 category 映射
|
|
|
|
|
+ category="运动" → body 80% + action 20%
|
|
|
|
|
+
|
|
|
|
|
+分配:
|
|
|
|
|
+ total=3, body=2, action=1
|
|
|
|
|
+ body日上限检查: 今日已有40 → +2 < 50 → OK
|
|
|
|
|
+ → body余额+2, action余额+1
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 例2:孩子完成情绪打卡
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+EmotionCheckin → awardEnergy(childId, "emotion_checkin", checkinId, 5, "情绪打卡奖励", 0)
|
|
|
|
|
+
|
|
|
|
|
+EnergySourceConfig:
|
|
|
|
|
+ sourceType="emotion_checkin" → mind 100%
|
|
|
|
|
+
|
|
|
|
|
+分配:
|
|
|
|
|
+ total=5, mind=5
|
|
|
|
|
+ mind日上限检查: 今日已有35 → +5 > 40 → ❌ 超过上限,本次不发放
|
|
|
|
|
+ → 提示"今日心维度能量已达上限"
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 例3:孩子完成DAN测评
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+AssessmentAppointment → 到场触发
|
|
|
|
|
+ awardEnergy(childId, "appointment", appointmentId, 20, "测评到场", null)
|
|
|
|
|
+
|
|
|
|
|
+EnergySourceConfig:
|
|
|
|
|
+ sourceType="appointment" → wisdom 100%
|
|
|
|
|
+
|
|
|
|
|
+分配:
|
|
|
|
|
+ total=20, wisdom=20
|
|
|
|
|
+ wisdom日上限检查: 今日已有30 → +20 < 80 → OK
|
|
|
|
|
+ → wisdom余额+20
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 附录:代码中关键方法签名
|
|
|
|
|
+
|
|
|
|
|
+```java
|
|
|
|
|
+// EnergyService.java
|
|
|
|
|
+
|
|
|
|
|
+// 账本发放
|
|
|
|
|
+public Map<String, Integer> awardEnergy(Long childId, String sourceType, Long sourceId,
|
|
|
|
|
+ Integer totalAmount, String description,
|
|
|
|
|
+ Integer daysToExpire)
|
|
|
|
|
+
|
|
|
|
|
+// 账本扣除
|
|
|
|
|
+public int deductEnergy(Long childId, Long dimensionId, Integer amount, String reason)
|
|
|
|
|
+
|
|
|
|
|
+// 配置来源->维度比例
|
|
|
|
|
+public void configureSourceRatios(String sourceType, Long sourceId, String sourceName,
|
|
|
|
|
+ List<Map<String, Object>> ratios)
|
|
|
|
|
+
|
|
|
|
|
+// 评分计算
|
|
|
|
|
+private MemberEnergyDTO calcParentEnergy(User parent)
|
|
|
|
|
+private MemberEnergyDTO calcChildEnergy(FamilyMember child)
|
|
|
|
|
+
|
|
|
|
|
+// 各维度评分
|
|
|
|
|
+private int calcParentBody(User parent)
|
|
|
|
|
+private int calcParentMind(User parent)
|
|
|
|
|
+private int calcParentWisdom(User parent)
|
|
|
|
|
+private int calcParentAction(User parent)
|
|
|
|
|
+private int calcParentWealth(User parent)
|
|
|
|
|
+
|
|
|
|
|
+private int calcChildBody(FamilyMember child)
|
|
|
|
|
+private int calcChildMind(FamilyMember child)
|
|
|
|
|
+private int calcChildWisdom(FamilyMember child)
|
|
|
|
|
+private int calcChildAction(FamilyMember child)
|
|
|
|
|
+private int calcChildWealth(FamilyMember child)
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+*本文档应与 `2026-06-05-five-dimension-energy-design.md`(系统设计)和 `2026-07-12-wuxing-ke-full-design.md`(相克关系)配合阅读。*
|