基准: 健康界 2026/06/17《主动健康的六阶模型及其神经生理机制》 项目: CFClub 家庭健康小程序 (cfc-web 前端 + cfc-admin 后端) 阶段: P0 (微启动) → P1 (即时反馈 + 智能预警) → P2 (身份重塑 + 家庭互动) → P3 (社区扩散)
| 阶段 | 核心机制 | 神经基础 |
|---|---|---|
| ① 有效启动 | 最小行动单元<1s,零认知负荷 | 前扣带回-默认模式网络转换 |
| ② 持续坚持 | 即时正向反馈,多巴胺递质系统参与 | 纹状体多巴胺D1受体通路 |
| ③ 获得感形成 | 阶段性成就显性化,内啡肽/催产素 | 前额叶-边缘系统整合 |
| ④ 身份重塑 | 从"被动执行者"到"主动健康实践者" | 内侧前额叶自我参照加工 |
| ⑤ 意见领袖化 | 叙事输出,影响他人 | 颞顶联合区-心智化网络 |
| ⑥ 社会扩散 | 群体规范形成,家庭为单元扩散 | 镜像神经元-社会脑网络 |
| 原有功能 | 覆盖的阶 | 缺口 |
|---|---|---|
| 健康打卡 | ② (部分) | 缺有效启动(阶①) |
| 身体记录/测评 | — | 无反馈闭环 |
| 能量系统 | ② (部分) | 无身份标识(阶④) |
| 五行沙盘/情绪打卡 | — | 无社交扩散(阶⑥) |
| 家庭关系图 | — | 无家庭健康互动 |
| 报告上传/AI问答 | — | 无预警/趋势解读 |
| 优先级 | 改进项 | 覆盖阶 |
|---|---|---|
| P0 | 微行动系统(最小行为单元) | ① 有效启动 |
| P1-1 | 即时多巴胺反馈(动画/声音/AI鼓励) | ② 持续坚持 |
| P1-2 | 健康行为智能预警(趋势解读+触发建议) | ② 持续坚持 |
| P2-1 | 身份重塑系统(健康等级+称号+叙事) | ④ 身份重塑 |
| P2-2 | 家庭健康互动(点赞/挑战/排行) | ⑤ 意见领袖化 |
| P3 | 健康社区扩散(家庭圈/分享/荣誉墙) | ⑥ 社会扩散 |
用户注册后的第一道门槛太高——打开小程序面对的是完整的"健康打卡表单",需要填写多项内容,认知负荷大,导致大量用户在首次打开后就流失。
定义 12 个预置的"1秒完成"的健康行动:
| 编号 | 微行动 | 交互方式 | 预期完成时间 |
|---|---|---|---|
| A01 | 喝一杯水 ☕️ | 点击 | < 1s |
| A02 | 深呼吸 3 次 🫁 | 点击 | < 1s |
| A03 | 站起来伸个懒腰 🧘 | 点击 | < 1s |
| A04 | 看远处 10 秒 🌿 | 点击 | < 1s |
| A05 | 微笑一下 😊 | 点击 | < 1s |
| A06 | 转转头颈 5 圈 🔄 | 点击 | < 1s |
| A07 | 握拳放松 3 次 ✊ | 点击 | < 1s |
| A08 | 喝口水润喉 💧 | 点击 | < 1s |
| A09 | 眨眨眼 5 次 👁️ | 点击 | < 1s |
| A10 | 按揉合谷穴 3 下 🖐️ | 点击 | < 1s |
| A11 | 踮脚尖 5 次 ⬆️ | 点击 | < 1s |
| A12 | 耸肩放松 3 次 ↕️ | 点击 | < 1s |
components/MicroActionCard.vue — 首页核心组件
┌──────────────────────────────────┐
│ ☕️ 今天的小行动 · 已完成 0/1 │
│ │
│ [喝一杯水] 点击完成 → +1能量 │
│ │
│ 3s 倒计时后自动翻转下一项 │
│ (或点击立即翻转) │
└──────────────────────────────────┘
在家长端微信订阅消息中增加:
"您今天的小行动还没完成哦!喝杯水只需要 1 秒钟 ☕️"
推送触发条件:当日 18:00 未完成微行动,且最近 3 天有活跃记录。
微行动 (每日1次) 健康打卡 (每日1次)
│ │
└── 二选一 ──────────────┘
│
▼
都计入连续打卡进度
但同日只能完成其中一种
| 文件 | 说明 |
|---|---|
entity/MicroAction.java |
微行动定义表 |
entity/MicroActionRecord.java |
用户完成记录表 |
mapper/MicroActionMapper.java |
|
mapper/MicroActionRecordMapper.java |
|
service/MicroActionService.java |
分配+完成+配额校验 |
controller/MicroActionController.java |
/api/micro-action/today, /api/micro-action/complete |
| 文件 | 改动 |
|---|---|
store/index.js |
新增 microAction 模块 |
utils/api.js |
新增微行动 API |
service/EnergyRuleEngine.java |
增加微行动 +1 能量规则 |
service/TaskReminderService.java |
增加微行动定时提醒 |
用户完成健康行为后,只看到"保存成功"或纯文字提示,缺乏即时情感反馈。多巴胺闭环缺失,持行为缺乏"爽点"支撑。
| 层级 | 响应速度 | 内容来源 | 使用场景 |
|---|---|---|---|
| L1 即时反馈 | < 200ms | CSS动画 + 预设文案 | 每次点击"完成"/"打卡" |
| L2 深度反馈 | 异步 | AI 生成 (Dify) | 每日摘要/每周报告 |
| 触发动作 | 动画 | 文案 | 音效 |
|---|---|---|---|
| 完成微行动 | ✅ 绿色勾缩放 + 能量+1飞入 | "太棒了!🎉" | 叮当声 |
| 健康打卡 | 能量粒子迸发 | "今天又是健康的一天!" | 叮当声 |
| 运动记录 | 运动图标脉冲 | "今天动了 XX 分钟!💪" | 轻快音 |
| 睡眠记录 | 月亮图标动画 | "优质睡眠!😴" | 轻快音 |
| 饮水记录 | 水杯灌满 | "补水成功 💧" | 轻快音 |
| 里程碑达成 | 全屏彩带 (Canvas) | "连续7天!🔥" | 上升音阶 |
| 首次使用 | 引导光晕 | "你的健康之旅开始了!" | 叮当声 |
| 阶段 | 文案 |
|---|---|
| 第1天 | "第一步!最有意义的一步 🎉" |
| 连续3天 | "连续3天!你已经超过了50%的新手 💪" |
| 连续7天 | "一周了!习惯正在形成 🌱" |
| 连续14天 | "两周!坚持就是你的超能力 ⚡" |
| 连续21天 | "21天法则!习惯几乎自动化了 🔥" |
| 连续30天 | "一个月!你是健康行动派 🏆" |
| 首次运动 | "运动让大脑更聪明 🧠" |
| 首次睡眠记录 | "好睡眠是最好的免疫力 😴" |
| 恢复打卡(断后) | "欢迎回来!每一次重启都是勇敢的 🌟" |
wx.createInnerAudioContext() 播放音效(< 1s, 体积 < 50KB)通过已有 Dify AI Gateway 每天 22:00 定时任务:
"你是一个温暖的家庭健康教练。根据以下用户数据,生成1-2句鼓励语(不超过50字):[当日行为数据]"
展示位置:次日首次打开小程序时的"早安健康摘要"横幅。
前端:
| 文件 | 说明 |
|---|---|
components/FeedbackToast.vue |
新建 — L1即时反馈弹层 |
components/MilestoneCelebration.vue |
新建 — 全屏彩带动画组件 |
components/DailySummary.vue |
新建 — AI每日摘要卡片 |
utils/feedback-presets.js |
新建 — 预设文案+音效映射表 |
utils/feedback-engine.js |
新建 — 反馈触发引擎 |
store/feedback.js |
新建 — 反馈状态模块 |
pages/index/index.vue |
嵌入 DailySummary |
后端:
| 文件 | 说明 |
|---|---|
service/DailyFeedbackService.java |
新建 — 每日AI反馈生成 |
controller/DailyFeedbackController.java |
新建 — /api/feedback/today |
entity/DailyFeedback.java |
新建 — daily_feedback 表 |
mapper/DailyFeedbackMapper.java |
新建 |
service/AiGateway.java |
扩展 — 新增 health-coach prompt 类型 |
用户行为数据已入库,但系统不做任何解读。数据只是"死记录",用户不知道自己的行为趋势是好是坏,也不知道该改进什么。
| ID | 条件 | 预警文案 | 行动建议 |
|---|---|---|---|
| R001 | 连续3天睡眠评分↓ | "您已连续3天睡眠质量下降" | "睡前1小时放下手机,喝杯温牛奶" |
| R002 | 连续5天无运动 | "您已经5天没有运动了" | "站起来走3分钟就是好的开始!" |
| R003 | 饮水<500ml 连续2天 | "近2天饮水量偏低" | "每1小时喝一杯水,设置定时提醒" |
| R004 | 运动强度突增>50% | "今天运动量比平时多一半" | "适当拉伸,不要过度训练" |
| R005 | 连续7天无打卡 | "您已经7天没有健康打卡" | "从最小的动作开始:喝一杯水 ☕️" |
| R006 | 今日未打卡(18:00) | "今天的健康打卡还没完成哦" | "点我完成今日微行动" |
定时任务 (cron: 0 0 8,12,18 * * ?)
│
▼
HealthAlertEngine.evaluate(userId)
├── 读取近X天记录
├── 逐条匹配规则
├── 去重 (同规则24h内不重复)
└── 生成 HealthAlert 记录
│
▼
前端拉取 GET /api/health/alert
│
▼
首页预警横幅展示
首页微行动卡片下方:
┌──────────────────────────────────┐
│ ⚠️ 健康小提醒 │
│ 您已连续3天睡眠质量下降 │
│ 今晚试试:睡前1小时放下手机 │
│ [我知道了] │
└──────────────────────────────────┘
POST /api/health/alert/dismiss → 24h内不再展示后端:
| 文件 | 说明 |
|---|---|
service/HealthAlertEngine.java |
新建 — 规则引擎 |
service/HealthAlertService.java |
新建 — CRUD + 去重 |
controller/HealthAlertController.java |
新建 — /api/health/alert |
entity/HealthAlert.java |
新建 — health_alerts 表 |
mapper/HealthAlertMapper.java |
新建 |
前端:
| 文件 | 说明 |
|---|---|
components/HealthAlertBanner.vue |
新建 — 预警横幅 |
pages/index/index.vue |
嵌入横幅 |
store/health-alert.js |
新建 — 预警状态 |
用户完成健康行为后看到的只是打卡次数增加、能量值变化,没有"我是谁"的身份认同——缺少从"执行者"到"健康践行者"的身份跃迁感。
| 等级 | 称号 | 所需健康积分 | 视觉标识 |
|---|---|---|---|
| L1 | 健康探索者 🌱 | 0 | 绿色幼苗徽章 |
| L2 | 健康践行者 🌿 | 100 | 绿叶徽章 |
| L3 | 家庭健康官 🏡 | 300 | 房屋徽章 |
| L4 | 健康达人 ⭐ | 700 | 金星徽章 |
| L5 | 健康领航者 👑 | 1500 | 皇冠徽章 |
健康积分 =
打卡(每次+2, 上限每日1次) +
微行动(每次+1, 上限每日1次) +
运动记录(每次+3, 上限每日1次) +
睡眠记录(每次+2, 上限每日1次) +
饮水记录(每次+1, 上限每日3次) +
饮食记录(每次+2, 上限每日1次) +
健康报告上传(每次+10) +
连续打卡加成(连续7天+5, 连续30天+20) +
互动积分(点赞他人+1, 被赞+1)
与 Energy 能量的关系:
| 健康积分 (Health Score) | 能量 (Energy) | |
|---|---|---|
| 用途 | 等级晋升(不可消费) | 兑换心愿/任务(可消费) |
| 来源 | 长期健康行为积累 | 健康行为+互动 |
| 重置 | 永不重置 | 可重置/消耗 |
从用户行为数据自动生成:
🏁 2026/06/01 — 开始了健康之旅的第一步
🔥 第7天 — 突破了第一周!
📋 第一次上传健康报告
🌟 晋升为"健康践行者"!
🏆 连续30天!坚韧不拔!
👨👩👧👦 第一次为家人点赞
时间线事件存储在 health_timeline 表,行为触发生成。
后端:
| 文件 | 说明 |
|---|---|
entity/HealthLevel.java |
新建 — 等级定义表 |
entity/HealthTimelineEvent.java |
新建 — 时间线事件表 |
service/HealthScoreService.java |
新建 — 积分计算引擎 |
service/HealthLevelService.java |
新建 — 等级判定+升级通知 |
service/HealthTimelineService.java |
新建 — 时间线生成 |
controller/HealthScoreController.java |
新建 — /api/health/score |
controller/HealthTimelineController.java |
新建 — /api/health/timeline |
前端:
| 文件 | 说明 |
|---|---|
components/HealthBadge.vue |
新建 — 等级称号组件 |
components/HealthTimeline.vue |
新建 — 健康故事时间线组件 |
pages/profile/profile.vue |
展示等级+进度+时间线 |
store/health-score.js |
新建 — 积分/等级状态 |
现有"家庭关系图"只是静态结构展示,家庭功能完全是信息传递,没有任何健康行为层面的协同和激励。
家长端首页新增区域:
┌──────────────────────────────────┐
│ 👨👩👧👦 家庭健康榜 │
│ │
│ 🥇 妈妈 2,350分 🔥 15天 │
│ 🥈 爸爸 1,820分 🔥 8天 │
│ 🥉 小明 980分 🔥 3天 │
│ │
│ 全家总积分: 5,150分 │
│ [查看全家健康详情 →] │
└──────────────────────────────────┘
用户A完成打卡 → 通知其他家庭成员
│
▼
首页提示 → "妈妈刚刚完成了健康打卡 👍"
│
▼
点击👍 → POST /api/health/interact/like
│
▼
双方收到反馈 (点赞者"点赞成功"+1积分, 被赞者下次打开看到通知)
| 类型 | 内容 | 期限 | 奖励 |
|---|---|---|---|
| 全员打卡 | 全员连续打卡3天 | 3天 | +50 积分 |
| 运动PK | 家庭总运动时长>300min | 7天 | +100 积分 |
| 健康周 | 全员每日完成微行动 | 7天 | 限时徽章"健康之家" |
流程:
系统发起(每月首日) → 首页挑战卡片
→ 每日进度更新 → 到期自动结算 → 达标发奖
后端:
| 文件 | 说明 |
|---|---|
controller/FamilyHealthController.java |
新建 — /api/health/family/ranking |
controller/HealthInteractionController.java |
新建 — /api/health/interact/like |
controller/FamilyChallengeController.java |
新建 — 挑战CRUD/进度/结算 |
service/FamilyHealthScoreService.java |
新建 — 家庭排行计算 |
service/HealthInteractionService.java |
新建 — 点赞+通知 |
service/FamilyChallengeService.java |
新建 — 挑战引擎 |
entity/FamilyChallenge.java |
新建 — family_challenge 表 |
entity/FamilyChallengeProgress.java |
新建 — family_challenge_progress 表 |
entity/HealthInteraction.java |
新建 — health_interaction 表 |
前端:
| 文件 | 说明 |
|---|---|
components/FamilyHealthRanking.vue |
新建 — 家庭健康榜 |
components/FamilyChallengeCard.vue |
新建 — 挑战卡片 |
components/HealthLikeButton.vue |
新建 — 点赞按钮 |
pages/index/index.vue |
嵌入排行榜+挑战卡片 |
家庭健康数据完全封闭——每个家庭只看得到自己,没有社交动力激发用户向他人传递健康行为,六阶模型第⑥阶"社会扩散"缺失。
家庭A(2-6人)── 发起邀请 ──→ 家庭B(2-6人)
│ │
└────────── 组成健康圈 ─────────┘
(6-20人 / 圈)
│
▼
┌──────────────────┐
│ 圈总积分排行榜 │
│ 圈挑战(半月一次) │
│ 圈内排行(家庭级) │
└──────────────────┘
| 类型 | 周期 | 规则 |
|---|---|---|
| 全员达标赛 | 每周 | 圈内家庭全员打卡 ≥ 5天 |
| 运动总动员 | 每两周 | 圈内运动时长前3家庭 |
| 健康新秀榜 | 每月 | 圈内积分增长最快家庭 |
通过微信分享的 H5 页面(只读快照,无需登录):
─────────────────────────────────
XX家庭 · 健康足迹
─────────────────────────────────
妈妈 打卡 30 天 🏆
爸爸 打卡 22 天
小明 微行动 15 次 🎯
─────────────────────────────────
"我们坚持健康打卡30天了!"
─────────────────────────────────
[扫码加入我们一起健康]
─────────────────────────────────
底部小程序码 → 扫码进入小程序
后端:
| 文件 | 说明 |
|---|---|
controller/HealthCircleController.java |
新建 — 圈CRUD |
controller/CircleChallengeController.java |
新建 — 圈挑战管理 |
controller/ShareController.java |
新建 — 分享页接口 |
service/HealthCircleService.java |
新建 |
service/CircleChallengeService.java |
新建 |
service/ShareService.java |
新建 |
entity/HealthCircle.java |
新建 — 健康圈表 |
entity/HealthCircleMember.java |
新建 — 圈成员表(家庭级) |
entity/CircleChallenge.java |
新建 — 圈挑战表 |
前端:
| 文件 | 说明 |
|---|---|
pages/share/index.vue |
新建 — 分享H5页面 |
components/CircleRanking.vue |
新建 — 圈排行组件 |
| 优先级 | 表名 | 说明 |
|---|---|---|
| P0 | micro_action |
预定义微行动字典 |
| P0 | micro_action_record |
用户完成记录 |
| P1-1 | daily_feedback |
AI每日反馈 |
| P1-2 | health_alerts |
健康预警记录 |
| P2-1 | health_level |
等级定义 |
| P2-1 | health_timeline_event |
健康时间线事件 |
| P2-2 | family_challenge |
家庭挑战 |
| P2-2 | family_challenge_progress |
挑战进度 |
| P2-2 | health_interaction |
点赞记录 |
| P3 | health_circle |
健康圈 |
| P3 | health_circle_member |
圈成员 |
| P3 | circle_challenge |
圈挑战(扩展自家庭挑战) |
P0 微启动 ──────────────────────────────────┐
│
P1-1 即时反馈 ────┐ │
├── (P1-2 预警依赖行为数据) │
P1-2 智能预警 ────┘ │
├── 所有阶段独立可实施
P2-1 身份重塑 ────┐ │
├── (P2-2 依赖积分系统) │
P2-2 家庭互动 ────┘ │
│
P3 社区扩散 ──── 依赖 P2-2 的家庭概念完整 │
关键原则:四个阶段之间无阻塞依赖,可按照 P0→P1→P2→P3 顺序逐步实施,也可根据工期并行开发互不影响的模块。