# 五维能量来源分析 ## 所有能量获取来源 | # | 来源 | sourceType | 触发行为 | 能量值 | 过期天数 | 说明 | |---|------|-----------|---------|--------|---------|------| | 1 | **完成任务** | `task` | 孩子完成任务(家长审核通过) | = 任务积分(1-10) | 永久 | 积分越高能量越多 | | 2 | **完成游戏** | `game` | 孩子完成小游戏 | = 获得积分(1-10) | 永久 | 游戏积分同步 | | 3 | **活动签到** | `activity` | 活动签到 | = 签到积分(默认5) | 永久 | 积分可配置 | | 4 | **阅读文章** | `article` | 阅读文章后完成任务 | = 文章积分 | 永久 | 积分由文章配置 | | 5 | **商品购买** | `product` | 支付成功 | = 订单总金额(分) | 30天 | 按消费金额计算 | | 6 | **健康打卡** | `health_checkin` | 完成健康打卡 | 默认5(可配置) | 30天 | 身维度 | | 7 | **理财打卡** | `checkin` | 完成理财打卡 | 默认5(可配置) | 永久 | 富维度 | | 8 | **情绪打卡** | `emotion_checkin` | 完成情绪打卡 | 5 | 0天(不过期) | 心维度 | | 9 | **预约测评** | `appointment` | 提交测评预约 | 10 | 永久 | 预约即给 | | 10 | **完成测评** | `appointment` | 规划师完成测评录入 | 30 | 永久 | 完成后给 | | 11 | **连续打卡** | `streak` | 每日打卡(每日) | 5 | 永久 | 每天连续打卡给 | | 12 | **打卡里程碑** | `streak` | 达到里程碑天数 | 里程碑奖励积分 | 永久 | 如7天/30天/100天 | | 13 | **成长任务** | `growth_day` | 完成每日成长任务 | 任务配置值 | 1天 | 每日任务 | | 14 | **微行动** | `micro_action` | 完成微行动 | 1 | 30天 | 每次1点 | | 15 | **新手引导** | `onboarding` | 完成引导任务 | 任务配置值 | 30天 | 一次性 | | 16 | **邀请里程碑** | `invite_milestone` | 达到邀请人数里程碑 | 里程碑配置值 | 30天 | 按邀请人数 | | 17 | **维度同步** | `dimension` | 健康维度数据上传 | 计算值(见下方) | 30天 | 根据维度评分计算 | | 18 | **能量规则引擎** | `eventType` | 各类事件(可配置) | 规则配置值 | 永久 | 动态规则 | | 19 | **手动发放** | `task`(对外) | 家长手动发放 | 自定义(1-200) | 永久 | 通过/grant接口 | ## 能量分配方式 `awardEnergy()` 方法内部按以下规则分配能量到各维度: ### 有 `energy_source_config` 配置时 从 `energy_source_config` 表读取 `source_type + source_id` 对应的维度比例配置。 ### 无配置时(默认 Fallback) 默认全部归入 **行动维度(action)**,比例 100%。 ```java // 默认 Fallback → 行(action) 100% EnergyDimension action = getDimByCode("action"); return Collections.singletonMap(action.getId(), 10000); // 100% ``` ### 日上限控制 | 限制类型 | 值 | 说明 | |---------|-----|------| | 全局日上限 | 200 | 所有维度合计每天最多200 | | 身(body) | 50 | 身维度每天最多50 | | 心(mind) | 40 | 心维度每天最多40 | | 智(wisdom) | 80 | 智维度每天最多80 | | 行(action) | 60 | 行维度每天最多60 | | 富(wealth) | 50 | 富维度每天最多50 | ## 动态值说明 ### 商品购买能量 ``` 能量值 = 订单总金额(单位:分) 例如:购买100元商品 → 10000分 → 获得10000能量 → 全部分配到action维度 ``` ### 维度同步能量 ``` 能量值 = 归一化维度评分 × 权重因子 评分范围0-100,权重因子从sys_config读取 ``` ### 成长任务/引导/里程碑 这些能量值存储在对应的数据库表中,由管理员在管理后台配置: | 表 | 字段 | 说明 | |----|------|------| | `growth_task` | `reward_energy` | 每日成长任务能量奖励 | | `onboarding_task` | `reward_energy` | 新手引导各步骤能量奖励 | | `invite_milestone` | `reward_energy` | 邀请里程碑能量奖励 | ## 能量消耗来源 | # | 用途 | 维度 | 说明 | |---|------|------|------| | 1 | 心愿兑换扣除 | `action`(行) | 孩子兑换心愿时扣减 | | 2 | 未报名签到惩罚 | 活动维度 | 未报名参加活动签到扣减 | | 3 | 能量规则引擎 | 规则配置 | 动态规则触发的扣除 |