Files
msh-system/msh_single_uniapp/documents/PRD_慢生活智能营养专家_v2.0.md

192 KiB
Raw Blame History

慢生活智能营养专家小程序 v2.0 产品需求文档PRD

基于 Figma Make项目 转换的微信小程序代码 基于Figma设计稿 转换的微信小程序代码


一、产品概述

1.1 产品愿景

打造国内领先的肾病患者专属智能营养管理平台通过科学计算、AI辅助和个性化服务帮助患者实现精准营养管理提高生活质量。

1.2 核心价值主张

"三分钟获得专属营养方案每日打卡赢积分AI营养师24小时在线"

  • 🎯 专业基于国家标准《慢性肾脏病患者膳食指导》2017
  • 🤖 智能AI驱动的食谱生成和智能问答
  • 👨‍⚕️ 个性化:基于个人健康数据的定制化方案
  • 📱 便捷:微信小程序,随时随地使用
  • 🍽️ 实用:提供完整一日三餐配餐方案
  • 🎁 激励:每日饮食打卡赢积分,养成健康饮食习惯

1.3 产品定位

定位:肾病患者的智能营养助手

差异化竞争优势

  1. 完整配餐方案:不仅计算营养数据,还提供每日早中晚三餐的完整菜谱(含食材清单、用量、图片)
  2. 饮食打卡激励:采纳配餐建议后每日打卡上传饮食记录,获得积分奖励,形成正向反馈闭环
  3. AI智能交互AI营养师实时问答支持食物适宜性判断和烹饪建议
  4. 视觉设计优秀现代化UI设计适合中老年用户操作
  5. 数据可视化:健康数据卡片化展示,一目了然

二、目标用户

2.1 用户画像(优化版 v2.1

版本说明基于uni-app小程序架构分析和Figma设计稿优化增强用户画像的完整性和可操作性

2.1.1 主要用户群:肾病患者

基础特征
  • 年龄分布
    • 主要群体50-65岁占比约60%
    • 次要群体35-49岁占比约25%
    • 其他群体66-70岁占比约15%
  • 性别分布男性略多于女性约55%:45%
  • 地域分布:以二三线城市为主,一线城市次之
  • 教育背景:初中至大专学历为主,对移动互联网有一定认知
疾病分期细分
分期类型 占比 核心需求 使用频率预期
CKD 1-3期 35% 预防性营养管理,延缓疾病进展 每周2-3次
CKD 4-5期非透析 25% 严格控制蛋白质、磷、钾、钠 每日1次
血液透析患者 25% 透析日与非透析日差异化配餐 每日1-2次
腹膜透析患者 10% 高蛋白、低磷饮食方案 每日1次
肾移植术后 5% 术后恢复期营养管理 每周3-4次
技术使用能力分析

基于uni-app小程序架构用户技术能力评估

  • 移动设备使用

    • 熟练使用微信100%
    • 会使用微信小程序85%
    • ⚠️ 对复杂操作接受度较低(需简化交互)
    • ⚠️ 字体大小需求建议最小14px推荐16px
  • 功能接受度

    • 高接受度:简单表单填写、图片上传、查看结果
    • ⚠️ 中等接受度:多步骤流程、复杂筛选
    • 低接受度:需要学习成本的功能、专业术语过多
典型使用场景(基于实际需求)

场景1首次确诊用户新用户

  • 触发时机:医生告知需要控制饮食,但不知道具体怎么吃
  • 用户状态:焦虑、迷茫、急需指导
  • 行为路径
    1. 搜索"肾病饮食"相关小程序
    2. 进入首页,看到"食谱计算器"入口
    3. 填写基本信息(性别、年龄、身高、血肌酐等)
    4. 查看计算结果和配餐方案
    5. 采纳方案,开始打卡
  • 关键需求:简单易懂、快速获得结果、有具体指导

场景2透析患者高频用户

  • 触发时机:每次透析前后需要记录饮食,控制水分和营养
  • 用户状态:已有一定营养知识,需要精准控制
  • 行为路径
    1. 每日打开小程序查看今日配餐
    2. 按照配餐准备食材
    3. 用餐后拍照打卡
    4. 查看营养达标情况
    5. 在社区分享饮食心得
  • 关键需求:精准计算、便捷打卡、数据追踪

场景3家属代操作间接用户

  • 触发时机:为患者准备三餐,需要知道具体菜谱和用量
  • 用户状态:关心患者健康,愿意花时间学习
  • 行为路径
    1. 使用患者账号登录(或绑定账号)
    2. 查看今日配餐方案
    3. 查看食物百科了解食材特性
    4. 按照菜谱准备食材
    5. 帮助患者打卡上传
  • 关键需求:详细菜谱、食材用量、烹饪方法
用户痛点深度分析
痛点类别 具体痛点 影响程度 解决方案优先级
信息获取 不知道能吃什么、不能吃什么 P0 - 食物百科+适宜性标注
计算困难 不会计算每日营养需求 P0 - 智能营养计算器
方案执行 知道要吃什么,但不知道怎么做 P1 - 完整配餐方案+菜谱
坚持困难 难以长期坚持健康饮食 P1 - 打卡激励+积分系统
专业咨询 有问题不知道问谁 P2 - AI营养师问答
学习需求 想了解营养知识但找不到靠谱来源 P2 - 营养知识库
操作复杂 小程序功能太多,找不到想要的功能 P3 - 简化导航+引导

2.1.2 次要用户群:患者家属

用户特征
  • 年龄35-60岁主要为患者子女或配偶
  • 关系:与患者共同生活,负责日常饮食准备
  • 技术能力:通常比患者更熟练使用智能手机
核心需求
  1. 具体菜谱:需要详细的食材清单、用量、烹饪步骤
  2. 食材采购:知道去哪里买、怎么挑选合适的食材
  3. 营养监控:了解患者是否按照方案执行
  4. 紧急咨询:遇到特殊情况(如患者食欲不振)时快速咨询
使用场景
  • 日常场景:每天查看配餐方案,准备三餐
  • 采购场景:去超市前查看食材清单,确认哪些可以买
  • 特殊情况:患者身体不适时,查询食物适宜性

2.1.3 潜在用户群:营养师/医生

用户特征
  • 职业:医院营养科医生、肾内科医生、社区营养师
  • 使用目的:为患者提供专业工具,提高工作效率
  • 技术能力:熟练使用各类医疗软件和移动应用
核心需求
  1. 计算准确性:营养计算公式必须符合国家标准
  2. 报告生成:能够导出或打印营养方案报告
  3. 患者管理:能够查看患者打卡记录和营养达标情况
  4. 专业背书:需要权威的参考文献和数据来源
使用场景
  • 门诊场景:在门诊时快速为患者生成营养方案
  • 随访场景:定期查看患者饮食打卡情况,调整方案
  • 教育场景:向患者展示如何使用小程序进行自我管理

2.1.4 用户画像总结

核心用户80%使用量)
  • 肾病患者CKD 4-5期 + 透析患者)
  • 特征:中老年、中等教育水平、微信熟练用户
  • 需求:简单易用、快速获得结果、有具体指导
  • 使用频率每日1-2次
重要用户15%使用量)
  • 患者家属
  • 特征:中年、负责患者饮食、技术能力较好
  • 需求:详细菜谱、食材信息、便捷操作
  • 使用频率每日1次
潜在用户5%使用量)
  • 营养师/医生
  • 特征:专业人士、需要工具辅助
  • 需求:准确性、报告功能、患者管理
  • 使用频率:每周数次

2.1.5 基于uni-app架构的用户体验考虑

技术架构优势
  • 跨平台兼容支持微信小程序、H5、APP多端用户可在不同设备使用
  • 性能优化分包加载subPackages减少首屏加载时间
  • 组件化开发:复用性强,维护成本低
针对目标用户的优化建议
  1. 字体和视觉

    • 最小字体14px推荐16px考虑中老年用户
    • 高对比度配色,避免浅色文字
    • 按钮尺寸不小于44x44px便于点击
  2. 交互简化

    • 减少多层级导航主要功能不超过3层
    • 使用底部TabBar固定导航已实现首页、分类、购物车、我的
    • 重要操作提供明确反馈和引导
  3. 功能优先级

    • P0功能食谱计算器、食物百科满足核心需求
    • P1功能饮食打卡、配餐方案增强粘性
    • P2功能AI营养师、营养知识差异化优势
  4. 数据存储

    • 利用uni-app的本地存储uni.setStorage保存用户健康数据
    • 支持离线查看已生成的营养方案
    • 同步到云端,支持多设备访问

2.2 用户需求分析

需求类型 具体需求 解决方案
基础需求 了解能吃什么、不能吃什么 食物百科 + 适宜性标注
核心需求 计算每日营养摄入量 智能营养计算器
高级需求 获得具体的一日三餐方案 完整配餐展示
坚持需求 记录饮食、养成习惯、获得激励 饮食打卡 + 积分奖励
咨询需求 随时咨询饮食问题 AI营养师问答
学习需求 了解营养知识 营养知识库

三、产品架构

3.1 信息架构图

慢生活智能营养专家
│
├── 【首页】
│   ├── 用户健康卡片
│   ├── 四大功能入口2x2网格
│   │   ├── 🧮 食谱计算器
│   │   ├── 💬 AI营养师
│   │   ├── 🔍 食物百科
│   │   └── 💡 营养知识
│   ├── 食谱推荐3条
│   ├── 健康知识2条
│   └── 营养方案领取入口
│
├── 【食谱计算器】⭐核心功能
│   ├── 输入表单页
│   │   ├── 性别选择
│   │   ├── 年龄输入
│   │   ├── 身高输入
│   │   ├── 透析状态(是/否)
│   │   ├── 透析类型(血透/腹透)
│   │   ├── 干体重输入
│   │   └── 血肌酐输入
│   └── 计算结果页 ⭐⭐⭐
│       ├── 健康数据卡片eGFR、BMI、标准体重、CKD分期
│       ├── 每日营养目标(蛋白质、能量)
│       ├── 食物份数建议7类食物
│       ├── ⭐每日营养配餐(创新功能)
│       │   ├── 早餐卡片(时间、菜品、食材、图片)
│       │   ├── 午餐卡片
│       │   └── 晚餐卡片
│       ├── 重要提示(饮食注意事项)
│       ├── ⭐"采纳并开始打卡"按钮(核心转化点)
│       ├── AI生成食谱按钮
│       └── 联系营养师按钮
│
├── 【饮食打卡】⭐⭐⭐新增核心功能
│   ├── 我的营养计划(采纳后自动创建)
│   │   ├── 计划概览(营养目标、配餐方案)
│   │   ├── 打卡日历(连续打卡天数、打卡记录)
│   │   └── 积分统计(累计积分、今日可得)
│   ├── 每日打卡页
│   │   ├── 早餐打卡
│   │   │   ├── 推荐菜品复选框
│   │   │   ├── 实际食用输入
│   │   │   ├── 上传照片1-3张
│   │   │   └── 备注说明
│   │   ├── 午餐打卡
│   │   └── 晚餐打卡
│   ├── 打卡提交页
│   │   ├── 今日营养总结摄入vs目标
│   │   ├── 营养分析图表
│   │   ├── 健康评分
│   │   └── 提交按钮
│   └── 打卡成功页
│       ├── 获得积分+XX
│       ├── 连续打卡X天
│       ├── 营养达标率
│       └── 分享激励
│
├── 【积分中心】⭐新增
│   ├── 我的积分(总积分、今日获得、使用记录)
│   ├── 积分任务
│   │   ├── 每日打卡(+30分
│   │   ├── 连续7天打卡+100分
│   │   ├── 上传饮食照片(+10分
│   │   └── 其他任务
│   ├── 积分商城
│   │   ├── 会员权益兑换
│   │   ├── 营养师咨询兑换
│   │   └── 优惠券兑换
│   └── 排行榜(本周/本月打卡之星)
│
├── 【打卡社区】⭐⭐⭐重磅新增(类似小红书)
│   ├── 社区广场(瀑布流展示)
│   │   ├── 筛选Tab推荐/最新/关注/热门)
│   │   ├── 打卡卡片(封面图+标题+用户+点赞数)
│   │   └── 下拉刷新/上拉加载
│   ├── 打卡详情页
│   │   ├── 饮食照片轮播1-3张
│   │   ├── 打卡内容(文字描述、菜品清单)
│   │   ├── 营养数据展示(蛋白质、能量、达标率)
│   │   ├── 标签(#早餐 #低钾 #透析期)
│   │   ├── 互动栏(点赞、评论、收藏、分享)
│   │   ├── 评论列表
│   │   └── 相关推荐
│   ├── 发布打卡页
│   │   ├── 从个人打卡记录选择分享
│   │   ├── 编辑标题和描述
│   │   ├── 选择封面图
│   │   ├── 添加话题标签
│   │   └── 隐私设置(公开/仅关注可见)
│   ├── 用户主页
│   │   ├── 用户头像和资料卡
│   │   ├── 打卡统计(总天数、获赞、收藏)
│   │   ├── 打卡作品网格展示
│   │   ├── 关注/粉丝列表
│   │   └── 成就勋章
│   └── 话题页
│       ├── 话题介绍
│       ├── 话题下的优质内容
│       └── 话题参与人数
│
├── 【AI营养师】⭐创新功能
│   ├── 欢迎消息AI能力介绍
│   ├── 常见问题快捷入口4个
│   ├── 对话界面
│   │   ├── 用户消息气泡(橙色)
│   │   ├── AI消息气泡白色
│   │   └── 打字动画
│   ├── 输入框 + 发送按钮
│   └── 附加功能(图片、语音)
│
├── 【食物百科】
│   ├── 搜索栏
│   ├── 分类横向滚动8类
│   ├── 食物列表(图片 + 营养信息)
│   └── 食物详情页
│       ├── 食物图片
│       ├── 营养成分表
│       ├── 适宜性判断
│       └── 食用建议
│
├── 【营养知识】
│   ├── Tab切换营养素百科/饮食指南/科普文章)
│   ├── 营养素百科(蛋白质、钾、磷、钠等)
│   ├── 饮食指南按CKD分期
│   └── 科普文章列表
│
└── 【个人中心】
    ├── 用户信息卡片
    ├── 我的健康(健康档案、营养计划、数据报告)
    ├── 我的食谱(收藏、历史、自定义)
    ├── 工具与服务(食物搜索、知识库、提醒)
    └── 设置(关于我们、反馈、客服)

3.2 页面流程图

启动小程序
    ↓
【首页】
    ↓
点击"食谱计算器"
    ↓
【计算表单页】
    ├→ 填写个人信息
    ├→ 填写健康数据
    └→ 点击"开始计算"
        ↓
    【计算结果页】⭐
        ├→ 查看健康数据
        ├→ 查看营养目标
        ├→ 查看食物份数
        ├→ ⭐查看每日配餐(早中晚)
        ├→ 点击"AI生成食谱"跳转AI营养师
        ├→ 点击"联系营养师"(跳转客服)
        └→ 保存/分享结果

四、核心功能详细设计

4.1 食谱计算器(核心功能)

4.1.1 输入表单页

页面标题:食谱计算器

表单字段

字段名称 类型 必填 说明
性别 单选(男/女) 自定义圆形选择器
年龄 数字输入 单位:岁
身高 数字输入 单位cm
是否透析 单选(是/否) -
透析类型 单选(血透/腹透) 条件必填 仅在"是否透析=是"时显示
干体重 数字输入 单位kg提示文案"透析患者请输入透析后的干体重"
血肌酐 数字输入 单位μmol/L

UI设计规范

  • 单选按钮:自定义圆形选择器,选中时显示橙色填充圆点
  • 输入框:灰色背景(bg-gray-50),圆角(rounded-xl),右侧显示单位
  • 布局:垂直排列,字段间距space-y-6
  • 底部按钮:固定在底部,橙色渐变,圆角按钮"开始计算"

交互说明

  1. 点击单选项时,显示选中状态(橙色边框 + 背景)
  2. 数字输入支持小数点(体重、血肌酐)
  3. 表单验证:所有必填项填写完成后,按钮才可点击
  4. 点击"开始计算"后,跳转到结果页

4.1.2 计算结果页 (最重要)

页面标题:营养计算结果

页面结构:(从上到下)

区域1健康数据卡片橙色渐变卡片

显示4个计算结果

数据项 显示格式 计算公式
eGFR数值 XX.XX ml/min/1.73²m CKD-EPI公式见附录
标准体重 XX.X kg 男:(身高-80)×0.7
女:(身高-70)×0.6
体重指数 XX.X BMI = 体重 / (身高/100)²
CKD分期 CKD X期 / 透析期 根据eGFR自动判断

UI样式

  • 渐变背景:from-orange-500 to-orange-600
  • 2x2网格布局
  • 每个数据卡片:白色半透明背景(bg-white/10
区域2每日营养目标

显示2个关键指标大数字展示

指标 显示格式 计算公式
蛋白质摄入 XX.X 克/天 透析期:标准体重 × 1.2
非透析期:标准体重 × 0.8
能量摄入 XXXX 千卡/天 标准体重 × 35

UI样式

  • 1x2网格布局
  • 左侧卡片:橙色渐变(蛋白质)
  • 右侧卡片:红色渐变(能量)
区域3食物份数建议

显示7类食物的推荐摄入量

食物类别 单位 示例份数
谷薯50g 50g 5.7 份
淀粉100g 100g 0.77 份
绿叶蔬菜200g 200g 1 份
瓜果蔬菜200g 200g 2 份
奶类230g 230g 1 份
肉蛋类50/60g 50/60g 7 份
油脂类10g 10g 5.7 份

UI样式

  • 列表卡片,每行一个食物类别
  • 左侧:序号 + 类别名称
  • 右侧橙色Badge显示份数 + "详情"按钮
区域4每日营养配餐 (创新功能)

这是本次升级的最大亮点!

显示完整的一日三餐方案,每餐包含:

  • 餐次名称(早餐/午餐/晚餐)
  • 用餐时间建议
  • Emoji图标🌅/☀️/🌙
  • 菜品数量
  • 每道菜的详细信息

早餐示例7:00-8:00

🥛 牛奶
   └─ 牛奶 120g
   
🍜 鸡蛋拌面
   ├─ 面条 90g
   ├─ 鸡蛋 120g
   └─ 葱花 5g
   
🥒 凉拌黄瓜
   └─ 黄瓜 100g

午餐示例12:00-13:00

🍚 米饭
   └─ 大米 100g
   
🐟 清蒸鲈鱼
   ├─ 鲈鱼 120g
   ├─ 生姜 5g
   └─ 葱 5g
   
🥦 蒜蓉西兰花
   ├─ 西兰花 150g
   ├─ 大蒜 5g
   └─ 植物油 8g
   
🍲 冬瓜汤
   └─ 冬瓜 150g

晚餐示例18:00-19:00

🍚 杂粮饭
   ├─ 大米 70g
   └─ 小米 30g
   
🍗 香菇炒鸡丁
   ├─ 鸡胸肉 100g
   ├─ 香菇 50g
   └─ 植物油 8g
   
🥬 清炒油菜
   ├─ 油菜 150g
   └─ 植物油 5g
   
🍅 番茄蛋花汤
   ├─ 番茄 100g
   └─ 鸡蛋 60g

UI样式

  • 每餐一个独立大卡片
  • 顶部渐变色Header早餐橙粉、午餐黄橙、晚餐橙红
  • 菜品卡片左侧图片80x80 + 右侧信息(菜名 + 食材列表)
  • 食材以小Badge形式展示
区域5重要提示

显示透析患者的饮食注意事项:

⚠️ 重要提示

• 透析患者需严格控制水分摄入
• 建议低盐饮食每日少于5g
• 注意限制高钾食物(香蕉、橙子、土豆等)
• 限制高磷食物(坚果、动物内脏等)

UI样式:橙色左边框警告卡片

区域6操作按钮
  • 主按钮" 生成AI智能食谱"(橙色渐变,圆角)
  • 次按钮"联系专业营养师"(白色边框)

交互

  • 点击"生成AI智能食谱"跳转到AI营养师页面
  • 点击"联系专业营养师":打开客服对话或拨打电话
区域7温馨提示
💡 温馨提示
以上计算结果仅供参考,具体饮食方案请咨询专业营养师或医生。
每个人的身体状况不同,需要个性化的营养指导。

UI样式:蓝色渐变信息卡片


4.2 AI营养师创新功能

4.2.1 功能定位

提供24小时在线的智能营养咨询服务支持

  • 食物适宜性判断
  • 饮食问题解答
  • 烹饪方法建议
  • 营养知识科普

4.2.2 页面设计

页面结构

  1. 顶部导航栏:标题"AI营养师"
  2. 消息区域(可滚动)
  3. 底部输入栏

首次进入:显示欢迎消息

👋您好我是您的AI营养师助手。

我可以帮您:
• 解答饮食疑问
• 评估食物适宜性
• 提供烹饪建议
• 解读检验报告

有什么想问的吗?

常见问题快捷按钮4个

  1. "我今天想吃香蕉,可以吗?"
  2. "如何降低蔬菜中的钾含量?"
  3. "透析患者可以喝牛奶吗?"
  4. "什么食物含磷比较低?"

4.2.3 对话交互

用户消息样式

  • 橙色渐变气泡(from-orange-500 to-orange-600
  • 白色文字
  • 右对齐
  • 显示发送时间

AI消息样式

  • 白色气泡 + 灰色边框
  • 黑色文字
  • 左对齐
  • 顶部显示"AI 营养师助手"头像和标签
  • 显示发送时间

打字动画

  • 3个灰色小圆点跳动
  • 显示时机用户发送消息后1-2秒

4.2.4 AI回复示例

场景1询问香蕉

问:我今天想吃香蕉,可以吗?

答香蕉含钾量较高每100g约330mg对于需要控制钾摄入的透析患者来说需要谨慎食用。

建议:
• 如果血钾控制良好,可以少量食用(如半根)
• 透析后食用更安全
• 建议咨询您的主治医生确认

您最近的血钾指标如何呢?

场景2降低钾含量

问:如何降低蔬菜中的钾含量?

答:降低蔬菜中钾含量的方法:

1⃣ 切小块浸泡
将蔬菜切成小块用温水浸泡30分钟以上

2⃣ 焯水处理
沸水中焯烫2-3分钟后再烹饪

3⃣ 选择低钾蔬菜
推荐:黄瓜、白菜、冬瓜、丝瓜等

这样可以减少30-50%的钾含量哦!

4.2.5 智能匹配规则

关键词 触发回复
香蕉、高钾水果 钾含量警告 + 食用建议
钾、蔬菜、去钾 降钾处理方法
牛奶、乳制品 透析患者乳制品指南
磷、高磷 低磷食物推荐
蛋白质、优质蛋白 蛋白质来源建议
其他 通用营养建议

4.3 食物百科

4.3.1 功能定位

提供食物营养成分查询和适宜性判断。

4.3.2 页面设计

顶部固定区域

  1. 标题栏:"食物百科"
  2. 搜索栏带放大镜图标placeholder"搜索食物名称..."
  3. 分类横向滚动条8个分类

分类列表带Emoji

  • 🌾 谷薯类45种
  • 🥬 蔬菜类68种
  • 🍎 水果类52种
  • 🍖 肉蛋类38种
  • 🐟 水产类31种
  • 🥛 奶类15种
  • 🫘 豆类22种
  • 🥜 坚果类18种

食物列表卡片

  • 左侧食物图片80x80圆角
  • 右侧上方:食物名称 + 分类标签
  • 右侧下方营养成分最多显示3个
  • 警告标志:慎用食物显示"⚠️"

营养成分颜色标识

  • 🟢 绿色(低):适宜
  • 🟡 黄色(中):适量
  • 🔴 红色(高):慎用

4.3.3 食物详情页

点击食物卡片后,显示详情页:

【食物图片】(大图)

香蕉
分类:水果类

┌─ 营养成分每100g─────┐
│ 蛋白质  1.4g  🟢      │
│ 钾      330mg 🔴      │
│ 磷      28mg  🟡      │
│ 钠      1mg   🟢      │
│ 能量    89kcal        │
└──────────────────────┘

┌─ 适宜性判断 ────────────┐
│ ⚠️ 慎用                │
│                        │
│ 香蕉含钾量较高,透析患者  │
│ 应谨慎食用或避免。       │
└──────────────────────┘

┌─ 食用建议 ─────────────┐
│ • 非透析期CKD 1-2期患者  │
│   可适量食用             │
│ • 透析患者建议避免或      │
│   在血钾正常时少量食用    │
│ • 建议食用时间:透析后    │
└──────────────────────┘

4.4 营养知识

4.4.1 页面结构

Tab切换3个

  1. 营养素百科
  2. 饮食指南
  3. 科普文章

4.4.2 营养素百科

显示关键营养素的详细信息:

列表

  • 蛋白质
  • 水分
  • 能量

点击后显示详情

💪 蛋白质

【作用】
蛋白质是人体必需的营养素,用于:
• 修复组织
• 维持肌肉量
• 支持免疫功能

【肾病患者的特殊要求】
• 非透析期限制摄入0.6-0.8g/kg/天)
• 透析期增加摄入1.0-1.2g/kg/天)
• 优先选择优质蛋白

【优质蛋白来源】
✅ 鸡蛋、鱼肉、瘦肉、牛奶

【避免食物】
❌ 植物蛋白(豆类、坚果)

4.4.3 饮食指南按CKD分期

CKD 1-2期轻度
├─ 蛋白质0.8-1.0 g/kg/天
├─ 能量30-35 kcal/kg/天
├─ 钾:正常摄入
├─ 磷:正常摄入
└─ 钠:<5g/天

CKD 3-4期中重度
├─ 蛋白质0.6-0.8 g/kg/天
├─ 能量30-35 kcal/kg/天
├─ 钾:<2000mg/天
├─ 磷:<800mg/天
└─ 钠:<3g/天

CKD 5期透析期
├─ 蛋白质1.0-1.2 g/kg/天
├─ 能量30-35 kcal/kg/天
├─ 钾:<1500mg/天
├─ 磷:<800mg/天
└─ 钠:<2g/天

4.4.4 科普文章

显示文章列表,每篇文章包含:

  • 文章标题
  • 摘要2行
  • 阅读时间
  • 阅读量
  • 分类标签

示例文章

  1. "透析患者的饮食原则"
  2. "如何科学补充蛋白质"
  3. "高钾食物有哪些?"
  4. "降磷攻略:磷结合剂怎么吃?"
  5. "肾病患者能吃水果吗?"

4.5 个人中心

4.5.1 页面结构

用户信息卡片(顶部):

  • 头像
  • 昵称
  • CKD分期
  • 透析状态

功能分区

1. 我的健康

  • 健康档案:查看/编辑个人健康信息
  • 营养计划:查看当前营养方案
  • 饮食记录:记录每日饮食
  • 数据报告:查看营养分析报告

2. 我的食谱

  • 收藏的食谱
  • 历史食谱
  • 自定义食谱

3. 工具与服务

  • 食物搜索
  • 知识库
  • 用药提醒
  • 透析提醒

4. 设置

  • 关于我们
  • 意见反馈
  • 联系客服
  • 隐私政策

4.6 饮食打卡系统(核心激励功能)

4.6.1 功能定位

核心目标:通过"采纳配餐建议 → 每日打卡上传 → 获得积分奖励"的闭环,提升用户留存和数据价值。

业务价值

  1. 📈 提升留存率每日打卡培养用户习惯提高DAU和留存
  2. 📊 收集真实数据积累大量真实饮食数据优化AI推荐算法
  3. 💰 商业化基础:积分体系为会员、咨询等付费服务导流
  4. 🏥 医疗价值:为医生/营养师提供患者饮食依从性数据

4.6.2 用户流程

【步骤1采纳配餐】
食谱计算器结果页
    ↓
点击"采纳并开始打卡"按钮
    ↓
创建"我的营养计划"7天周期
    ↓
【步骤2每日打卡】
进入"饮食打卡"页面
    ↓
选择早餐/午餐/晚餐
    ↓
勾选实际食用的推荐菜品
    ↓
(可选)上传饮食照片
    ↓
(可选)输入备注说明
    ↓
点击"提交打卡"
    ↓
【步骤3获得奖励】
打卡成功页
    ├─ 获得积分 +30分
    ├─ 连续打卡天数 +1
    ├─ 营养达标分析
    └─ 分享到朋友圈(额外+10分

4.6.3 页面设计详解

页面1计算结果页的转化入口

新增按钮:在计算结果页底部,原有"AI生成食谱"按钮前增加主按钮。

┌──────────────────────────────┐
│  ✨ 采纳并开始打卡           │  ← 主按钮(橙色渐变)
│  每日打卡赢积分,养成健康习惯  │
└──────────────────────────────┘

┌──────────────────────────────┐
│  🤖 生成AI智能食谱           │  ← 次按钮(白色边框)
└──────────────────────────────┘

点击后弹窗确认

╔═════════════════════════════╗
║  🎉 采纳专属营养方案         ║
╠═════════════════════════════╣
║                             ║
║  您的营养计划已生成:        ║
║  • 蛋白质摄入56.0g/天      ║
║  • 能量摄入1960kcal/天     ║
║  • 完整三餐配餐方案          ║
║                             ║
║  坚持打卡,可获得:          ║
║  ✅ 每日打卡 +30积分         ║
║  ✅ 连续7天 +100积分         ║
║  ✅ 营养分析报告            ║
║                             ║
║  ┌─────────┐  ┌─────────┐  ║
║  │  取消   │  │ 开始打卡 │  ║
║  └─────────┘  └─────────┘  ║
╚═════════════════════════════╝
页面2我的营养计划页

入口:首页 → 个人中心 → 我的健康 → 营养计划

页面结构

┌────────────────────────────────┐
│  < 我的营养计划               │  ← 顶部导航
└────────────────────────────────┘

┌────────────────────────────────┐
│  📊 营养目标                    │
│  ┌──────────┐  ┌──────────┐   │
│  │ 蛋白质    │  │ 能量      │   │
│  │ 56.0g/天 │  │ 1960kcal │   │
│  └──────────┘  └──────────┘   │
└────────────────────────────────┘

┌────────────────────────────────┐
│  📅 打卡日历(本周)            │
│  一  二  三  四  五  六  日      │
│  ✅  ✅  ✅  ⭕  ⭕  ⭕  ⭕     │
│                                │
│  📈 连续打卡3天               │
│  🎁 累计积分90分              │
└────────────────────────────────┘

┌────────────────────────────────┐
│  🍽️ 今日配餐                   │
│  早餐 (未打卡) →                │
│  午餐 (已打卡) ✅               │
│  晚餐 (未打卡) →                │
└────────────────────────────────┘

┌────────────────────────────────┐
│     [立即打卡]                  │  ← 主按钮
└────────────────────────────────┘
页面3每日打卡页 核心页面(极简版)

设计理念极简打卡AI智能分析 - 只需拍照+说话,无需任何手动输入!

入口

  1. 营养计划页 → 点击"立即打卡"
  2. 首页 → 快捷打卡入口
  3. 定时推送通知 → 点击进入

页面结构

┌────────────────────────────────┐
│  < 饮食打卡 - 2025年11月20日    │
└────────────────────────────────┘

【Tab切换】 [早餐] [午餐] [晚餐]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌅 早餐打卡
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【步骤1拍摄饮食照片】⭐必填    │
│                                │
│  ┌──────┐ ┌──────┐ ┌──────┐   │
│  │ 📷  │ │ 📷  │ │  +   │   │
│  │拍照  │ │相册  │ │添加  │   │
│  └──────┘ └──────┘ └──────┘   │
│                                │
│  支持1-3张照片                  │
│  💡 拍清楚一点AI会自动识别哦   │
└────────────────────────────────┘

【已上传照片预览】
┌────┐ ┌────┐
│图片1│ │图片2│ 
│ X  │ │ X  │  ← 点击删除
└────┘ └────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【步骤2补充说明】可选      │
│                                │
│  ┌──────────────────────────┐  │
│  │ 说点什么吧(可选)...      │  │
│  │                          │  │
│  └──────────────────────────┘  │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 🎤 语音  │  │ 💬 文字  │   │
│  │   录入   │  │   输入   │   │
│  └──────────┘  └──────────┘   │
│                                │
│  💡 例如:今天吃的比较清淡,     │
│     没有放盐,味道还不错        │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【AI自动分析中...】⏳          │
│  AI正在识别您的饮食内容          │
│  预计需要3-5秒                   │
│  [进度条 ████████░░ 80%]        │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【AI识别结果】分析完成后显示

┌────────────────────────────────┐
│  🤖 AI识别到以下食物           │
│                                │
│  ✅ 牛奶 约120ml                │
│  ✅ 鸡蛋拌面 约150g              │
│  ✅ 黄瓜 约80g                  │
│                                │
│  识别不准确?[点击修正]          │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【营养分析】⭐核心价值

┌────────────────────────────────┐
│  📊 今日早餐营养分析             │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 蛋白质    │  │ 能量      │   │
│  │ 18.8g    │  │ 452kcal  │   │
│  │ 达标94%  │  │ 达标90%  │   │
│  │ ✅ 良好  │  │ ✅ 良好  │   │
│  └──────────┘  └──────────┘   │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 钾        │  │ 磷        │   │
│  │ 320mg    │  │ 180mg    │   │
│  │ ✅ 安全  │  │ ✅ 安全  │   │
│  └──────────┘  └──────────┘   │
│                                │
│  🎯 整体评分92分优秀       │
│                                │
│  ┌──────────────────────────┐  │
│  │ 📄 查看完整营养分析报告   │  │
│  └──────────────────────────┘  │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【AI建议】                      │
│                                │
│  💡 营养师点评:                 │
│  早餐搭配均衡,蛋白质和能量都达标 │
│  建议可以再增加50g蔬菜        │
│                                │
│  ⚠️ 注意事项:                  │
│  • 鸡蛋拌面含磷较高,注意不要    │
│    连续几天都吃                 │
│  • 建议搭配低钾水果(如苹果)    │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│      [提交打卡]  +30积分         │
│                                │
│  提交后可获得:                  │
│  ✅ 打卡积分 +10分               │
│  ✅ 照片上传 +10分               │
│  ✅ AI分析 +10分                │
└────────────────────────────────┘

核心优化点

  1. 极简输入

    • 只需上传照片(必填)
    • 备注说明(可选,支持语音录入)
    • 不需要勾选菜品、不需要输入用量、不需要任何手动计算
  2. AI智能识别 🤖

    • 自动识别照片中的食物种类
    • 自动估算食物重量
    • 自动计算营养成分(蛋白质、能量、钾、磷、钠等)
    • 识别不准可手动修正
  3. 语音录入 🎤

    • 支持语音输入备注说明
    • 自动转文字
    • 降低老年用户打卡门槛
  4. 营养分析报告 📊

    • AI自动生成营养分析
    • 包含营养素达标情况
    • AI营养师点评和建议
    • 可下载、可分享

技术实现

// AI识别食物API调用
async function recognizeFoodFromImage(imageUrls) {
  // 调用腾讯云/百度AI图像识别API
  const response = await wx.request({
    url: 'https://api.xxx.com/food-recognition',
    method: 'POST',
    data: {
      images: imageUrls,
      user_profile: {
        ckd_stage: 'dialysis',
        dietary_restrictions: ['low_potassium', 'low_phosphorus']
      }
    }
  });
  
  return {
    foods: [
      { name: '牛奶', weight: 120, unit: 'ml', confidence: 0.95 },
      { name: '鸡蛋拌面', weight: 150, unit: 'g', confidence: 0.88 },
      { name: '黄瓜', weight: 80, unit: 'g', confidence: 0.92 }
    ],
    nutrition: {
      protein: 18.8,
      energy: 452,
      potassium: 320,
      phosphorus: 180,
      sodium: 250
    }
  };
}

// 语音转文字
async function voiceToText(voiceFilePath) {
  const response = await wx.request({
    url: 'https://api.xxx.com/voice-recognition',
    method: 'POST',
    data: {
      audio_url: voiceFilePath,
      format: 'mp3'
    }
  });
  
  return response.text; // "今天吃的比较清淡,没有放盐"
}

交互说明

  1. 拍照上传

    • 点击"拍照"按钮→调用相机→拍摄→上传
    • 点击"相册"按钮→选择照片→上传
    • 支持上传1-3张照片
    • 显示上传进度
  2. 语音录入

    • 长按"语音录入"按钮开始录音
    • 松开结束录音
    • 自动转文字显示
    • 可重新录制
  3. AI识别流程

    • 点击"提交打卡"→上传照片→AI分析3-5秒
    • 显示识别结果→用户确认或修正
    • 显示营养分析和AI建议
    • 确认无误后提交
  4. 修正识别

    • 点击"识别不准确?点击修正"
    • 弹出食物列表,可修改食物名称和重量
    • 重新计算营养数据
页面4打卡成功页

点击"提交打卡"后跳转

┌────────────────────────────────┐
│                                │
│        🎉                      │
│     打卡成功!                  │
│                                │
│    ┌──────────────────┐       │
│    │                  │       │
│    │   + 30 积分      │       │
│    │                  │       │
│    └──────────────────┘       │
│                                │
│    🔥 连续打卡 3 天             │
│    📊 今日营养达标率 92%        │
│                                │
│  ┌──────────────────────────┐ │
│  │  早餐  ✅  蛋白质 18.8g   │ │
│  │  午餐  ⭕  待打卡         │ │
│  │  晚餐  ⭕  待打卡         │ │
│  └──────────────────────────┘ │
│                                │
│  🎁 连续打卡7天可额外获得100积分 │
│     还差 4 天                   │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  ⭐⭐⭐【AI营养分析报告】        │
│                                │
│  ┌──────────────────────────┐ │
│  │ 📊 查看完整营养分析报告   │ │
│  └──────────────────────────┘ │
│                                │
│  ┌──────────┐  ┌──────────┐  │
│  │ 📥 下载  │  │ ➤ 分享   │  │
│  │   报告   │  │   报告   │  │
│  └──────────┘  └──────────┘  │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  ┌──────────┐  ┌──────────┐  │
│  │ 分享社区 │  │ 继续打卡  │  │
│  │  +20积分 │  │          │  │
│  └──────────┘  └──────────┘  │
└────────────────────────────────┘

新增功能

  1. 查看完整营养分析报告 - 进入详细报告页
  2. 下载报告 - 生成PDF报告保存到手机
  3. 分享报告 - 分享到微信好友/朋友圈/社区
页面4.5AI营养分析报告页 新增核心页面

入口

  1. 打卡成功页 → 点击"查看完整营养分析报告"
  2. 饮食记录 → 点击某次打卡 → "查看报告"
  3. 个人中心 → 我的健康 → "营养报告"

页面结构

┌────────────────────────────────┐
│  < AI营养分析报告       [分享] │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【报告头部】                    │
│  🤖 慢生活智能营养专家          │
│                                │
│  姓名:张小慢                    │
│  日期2025年11月20日 早餐      │
│  CKD分期透析期腹膜透析     │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【饮食照片】                    │
│  ┌────┐ ┌────┐ ┌────┐         │
│  │图片1│ │图片2│ │图片3│         │
│  └────┘ └────┘ └────┘         │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【AI识别食物清单】              │
│                                │
│  1. 牛奶 120ml                  │
│     └─ 识别可信度95%          │
│                                │
│  2. 鸡蛋拌面 150g               │
│     └─ 识别可信度88%          │
│     └─ 食材面条90g+鸡蛋60g    │
│                                │
│  3. 凉拌黄瓜 80g                │
│     └─ 识别可信度92%          │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【营养成分分析】⭐核心价值      │
│                                │
│  ┌──────────────────────────┐  │
│  │ 营养素   实际  推荐  达标率│  │
│  ├──────────────────────────┤  │
│  │ 蛋白质  18.8g 20.0g  94% │  │
│  │ ████████████░░░░  ✅优秀 │  │
│  │                          │  │
│  │ 能量   452   500   90%   │  │
│  │ ███████████░░░░░  ✅良好 │  │
│  │                          │  │
│  │ 钾     320mg <350mg ✅   │  │
│  │ ████████████░░░░  安全   │  │
│  │                          │  │
│  │ 磷     180mg <200mg ✅   │  │
│  │ ██████████░░░░░░  安全   │  │
│  │                          │  │
│  │ 钠     250mg <300mg ✅   │  │
│  │ ███████████░░░░░  良好   │  │
│  └──────────────────────────┘  │
│                                │
│  🎯 整体营养评分92分优秀   │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【营养素详细解读】              │
│                                │
│  ✅ 蛋白质18.8g达标94%     │
│  本餐蛋白质摄入接近推荐值,主要   │
│  来自鸡蛋和牛奶,属于优质蛋白。   │
│  鸡蛋、牛奶、鱼肉都是透析患者的   │
│  优质蛋白来源。                 │
│                                │
│  ✅ 能量452kcal达标90%     │
│  能量摄入略低于推荐值,建议可以   │
│  增加50g主食如面包、馒头。    │
│                                │
│  ✅ 钾320mg安全范围        │
│  钾摄入在安全范围内。黄瓜属于低   │
│  钾蔬菜,透析患者可以放心食用。   │
│                                │
│  ✅ 磷180mg安全范围        │
│  磷摄入控制良好。注意鸡蛋黄含磷   │
│  较高,如果血磷偏高,可以只吃蛋白 │
│                                │
│  ✅ 钠250mg良好            │
│  钠摄入良好,继续保持低盐饮食。   │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【AI营养师点评】🤖              │
│                                │
│  💡 优点:                       │
│  • 食物搭配均衡,包含主食、蛋白质 │
│    和蔬菜                        │
│  • 优质蛋白来源充足(鸡蛋+牛奶) │
│  • 钾、磷、钠控制都很好          │
│                                │
│  ⚠️ 改进建议:                   │
│  1. 能量略低建议增加50g主食     │
│  2. 可以再增加50g低钾水果如苹果│
│  3. 鸡蛋拌面注意不要连续多天吃    │
│                                │
│  🎯 下一餐建议:                 │
│  午餐可以吃:米饭+清蒸鱼+炒蔬菜   │
│  (具体参考您的个人营养计划)     │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【注意事项】                    │
│                                │
│  ⚠️ 透析患者饮食提醒:           │
│  • 严格控制水分摄入              │
│  • 低盐饮食(每日<3g           │
│  • 限制高钾食物(香蕉、橙子等)   │
│  • 限制高磷食物(坚果、内脏等)   │
│  • 透析日适当增加蛋白质摄入      │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【报告尾部】                    │
│                                │
│  生成时间2025-11-20 08:15     │
│  报告编号R20251120081501      │
│                                │
│  💡 本报告由AI自动生成仅供参考 │
│     具体饮食方案请咨询专业营养师 │
│                                │
│  慢生活智能营养专家              │
│  让每一餐都营养达标 🥗           │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【底部操作栏】
┌────────────────────────────────┐
│ [📥 下载PDF] [➤ 分享] [❤️ 收藏] │
└────────────────────────────────┘

报告功能特性

  1. 完整专业 📊

    • 包含饮食照片、食物清单、营养分析、AI点评
    • 报告格式规范,可用于医疗咨询
    • 带报告编号,便于追溯
  2. 可下载 📥

    • 生成PDF格式报告
    • 保存到手机相册或文件
    • 可打印给医生看
  3. 可分享

    • 分享到微信好友/群聊
    • 分享到朋友圈(带小程序卡片)
    • 分享到社区(自动生成社区帖子)
    • 发送给营养师(用于咨询)
  4. AI生成 🤖

    • 营养素详细解读(通俗易懂)
    • AI营养师点评优点+改进建议)
    • 下一餐建议
    • 注意事项提醒

技术实现

// 生成PDF报告
async function generateNutritionReport(checkInData) {
  // 调用后端API生成PDF
  const response = await wx.request({
    url: 'https://api.xxx.com/generate-report',
    method: 'POST',
    data: {
      check_in_id: checkInData.id,
      user_info: {
        name: '张小慢',
        ckd_stage: '透析期',
        dialysis_type: '腹膜透析'
      },
      foods: checkInData.recognized_foods,
      nutrition: checkInData.nutrition_data,
      ai_comments: checkInData.ai_analysis
    }
  });
  
  return {
    pdf_url: 'https://cdn.xxx.com/reports/R20251120081501.pdf',
    report_id: 'R20251120081501'
  };
}

// 分享报告
function shareReport(reportData) {
  wx.shareAppMessage({
    title: '我的营养分析报告 - 整体评分92分',
    path: `/pages/report/report?id=${reportData.report_id}`,
    imageUrl: reportData.cover_image
  });
}
页面4.6AI视频生成页 核心创新功能

入口

  1. 打卡成功页 → 勾选"生成AI视频" → 自动跳转
  2. 打卡历史 → "一键复制打卡" → 勾选"生成AI视频"
  3. 营养分析报告页 → 点击"生成视频分享"

功能定位 将用户的饮食打卡内容自动生成精美短视频15-30秒可一键分享到微信、抖音、快手、视频号极大提升内容传播力和产品曝光度。

页面结构

┌────────────────────────────────┐
│  < AI视频生成中...     [关闭]  │
└────────────────────────────────┘

┌────────────────────────────────┐
│  🎬 AI正在为您生成精美视频       │
│                                │
│  ┌──────────────────────────┐  │
│  │                          │  │
│  │    [视频预览区域]         │  │
│  │                          │  │
│  │    🎨 正在渲染中...       │  │
│  │                          │  │
│  └──────────────────────────┘  │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  【生成进度】                   │
│  ████████████░░░░ 75%          │
│                                │
│  ✅ 照片处理完成                │
│  ✅ 营养数据提取完成             │
│  ✅ 音乐匹配完成                │
│  ⏳ 正在生成视频特效...          │
│                                │
│  预计剩余时间8秒               │
└────────────────────────────────┘

生成完成后

┌────────────────────────────────┐
│  < AI视频已生成     [编辑] [×] │
└────────────────────────────────┘

┌────────────────────────────────┐
│  🎉 您的AI视频已生成           │
│                                │
│  ┌──────────────────────────┐  │
│  │                          │  │
│  │    [视频播放器]           │  │
│  │                          │  │
│  │    ▶️ 点击播放预览        │  │
│  │                          │  │
│  │    时长23秒             │  │
│  └──────────────────────────┘  │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  【视频信息】                   │
│  📹 分辨率1080×1920竖屏   │
│  🎵 背景音乐:《健康每一天》      │
│  ✨ 特效:营养数据动画展示        │
│  💧 水印:慢生活智能营养专家      │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  【一键分享】                   │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 📱 微信  │  │ 🎬 抖音  │   │
│  │  好友    │  │          │   │
│  └──────────┘  └──────────┘   │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 📲 朋友圈│  │ 🎥 快手  │   │
│  │          │  │          │   │
│  └──────────┘  └──────────┘   │
│                                │
│  ┌──────────┐  ┌──────────┐   │
│  │ 📺 视频号│  │ 💾 保存  │   │
│  │          │  │  到相册  │   │
│  └──────────┘  └──────────┘   │
│                                │
│  ━━━━━━━━━━━━━━━━━━━━━━━━━━  │
│                                │
│  【视频内容预览】                │
│  0s  - 封面:饮食照片拼图         │
│  3s  - 转场:营养数据卡片展示     │
│  8s  - 动画:蛋白质达标率进度条   │
│  12s - 动画:能量达标率进度条     │
│  16s - 文字AI营养师点评        │
│  20s - 结尾:二维码+品牌水印      │
│                                │
│  [重新生成]  [高级编辑]          │
└────────────────────────────────┘

AI视频生成逻辑 核心技术:

  1. 视频结构设计15-30秒
const videoStructure = {
  duration: 23, // 总时长(秒)
  
  scenes: [
    {
      name: '封面',
      duration: 3,
      content: {
        background: 'gradient_green', // 渐变绿色背景
        elements: [
          {
            type: 'photo_grid', // 照片网格
            photos: ['photo1.jpg', 'photo2.jpg', 'photo3.jpg'],
            layout: '3-column', // 3列布局
            animation: 'fade_in' // 淡入动画
          },
          {
            type: 'text',
            content: '今日早餐打卡 ✅',
            position: 'top',
            font_size: 48,
            animation: 'slide_down'
          },
          {
            type: 'text',
            content: '2025-11-20',
            position: 'bottom',
            font_size: 32,
            color: '#666'
          }
        ]
      }
    },
    
    {
      name: '营养数据展示',
      duration: 10,
      content: {
        background: 'white',
        elements: [
          {
            type: 'nutrition_card',
            data: {
              protein: { actual: 18.8, target: 20.0, rate: 94 },
              energy: { actual: 452, target: 500, rate: 90 },
              potassium: { actual: 320, limit: 350, status: 'safe' },
              phosphorus: { actual: 180, limit: 200, status: 'safe' }
            },
            animation: 'card_flip', // 卡片翻转
            stagger: 0.5 // 每个卡片间隔0.5秒
          },
          {
            type: 'progress_bar',
            label: '蛋白质达标率',
            value: 94,
            color: '#4CAF50',
            animation: 'progress_fill', // 进度条填充动画
            duration: 2
          },
          {
            type: 'progress_bar',
            label: '能量达标率',
            value: 90,
            color: '#FF9800',
            animation: 'progress_fill',
            duration: 2
          }
        ]
      }
    },
    
    {
      name: 'AI点评',
      duration: 7,
      content: {
        background: 'light_blue',
        elements: [
          {
            type: 'avatar',
            image: 'ai_nutritionist_avatar.png',
            position: 'left',
            animation: 'bounce_in'
          },
          {
            type: 'text_bubble',
            content: '💡 食物搭配均衡蛋白质和能量都达标建议可以再增加50g蔬菜。',
            position: 'right',
            animation: 'typewriter', // 打字机效果
            duration: 5
          },
          {
            type: 'icon',
            name: 'thumbs_up',
            position: 'bottom_right',
            animation: 'scale_bounce'
          }
        ]
      }
    },
    
    {
      name: '结尾页',
      duration: 3,
      content: {
        background: 'gradient_green',
        elements: [
          {
            type: 'text',
            content: '🎯 营养评分92分优秀',
            font_size: 44,
            position: 'center',
            animation: 'zoom_in'
          },
          {
            type: 'qrcode',
            url: 'https://xxx.com/mini-program',
            position: 'bottom',
            size: 120
          },
          {
            type: 'text',
            content: '慢生活智能营养专家',
            position: 'bottom',
            font_size: 24,
            color: '#666'
          }
        ]
      }
    }
  ],
  
  // 背景音乐
  background_music: {
    name: '健康每一天',
    url: 'https://cdn.xxx.com/music/health_everyday.mp3',
    volume: 0.3, // 音量30%
    fade_in: 1, // 淡入1秒
    fade_out: 1 // 淡出1秒
  },
  
  // 转场效果
  transitions: [
    { from: 0, to: 1, effect: 'fade' },
    { from: 1, to: 2, effect: 'slide_left' },
    { from: 2, to: 3, effect: 'zoom_out' }
  ],
  
  // 水印
  watermark: {
    logo: 'https://cdn.xxx.com/logo.png',
    position: 'bottom_right',
    opacity: 0.6,
    size: 80
  }
};
  1. AI视频生成API调用
/**
 * 调用AI视频生成服务
 * @param {Object} checkInData - 打卡数据
 * @returns {Promise<Object>} 视频URL和元数据
 */
async function generateAIVideo(checkInData) {
  wx.showLoading({ title: 'AI生成中...' });
  
  try {
    // 调用后端API集成第三方视频生成服务
    const response = await wx.request({
      url: 'https://api.xxx.com/generate-video',
      method: 'POST',
      data: {
        check_in_id: checkInData.record_id,
        
        // 照片数据
        photos: checkInData.photos_json, // ['url1', 'url2', 'url3']
        
        // 营养数据
        nutrition: {
          protein: checkInData.actual_protein,
          energy: checkInData.actual_energy,
          potassium: checkInData.actual_potassium,
          phosphorus: checkInData.actual_phosphorus,
          sodium: checkInData.actual_sodium,
          target_protein: checkInData.target_protein,
          target_energy: checkInData.target_energy,
          nutrition_score: checkInData.nutrition_score
        },
        
        // AI点评
        ai_comments: checkInData.ai_comments_json,
        
        // 用户备注
        user_notes: checkInData.notes,
        
        // 视频配置
        video_config: {
          duration: 'auto', // 自动计算时长15-30秒
          resolution: '1080x1920', // 竖屏
          fps: 30,
          format: 'mp4',
          music_style: 'light_and_cheerful', // 轻松欢快
          include_qrcode: true, // 包含二维码
          watermark: true // 包含水印
        }
      },
      timeout: 60000 // 60秒超时
    });
    
    wx.hideLoading();
    
    return {
      video_id: response.data.video_id,
      video_url: response.data.video_url, // CDN地址
      cover_url: response.data.cover_url, // 视频封面
      duration: response.data.duration, // 实际时长
      file_size: response.data.file_size, // 文件大小MB
      status: 'success'
    };
    
  } catch (error) {
    wx.hideLoading();
    wx.showToast({ title: '生成失败,请重试', icon: 'error' });
    
    return {
      status: 'failed',
      error: error.message
    };
  }
}

// 使用示例
const videoResult = await generateAIVideo({
  record_id: 12345,
  photos_json: ['https://cdn.xxx.com/photo1.jpg', 'https://cdn.xxx.com/photo2.jpg'],
  actual_protein: 18.8,
  actual_energy: 452,
  // ... 其他数据
});

if (videoResult.status === 'success') {
  // 跳转到视频预览页
  wx.navigateTo({
    url: `/pages/video-preview/video-preview?id=${videoResult.video_id}`
  });
}
  1. 第三方AI视频生成服务推荐
服务商 优势 价格 API文档
剪映开放平台 抖音官方,转场特效丰富 ¥0.2/视频 https://openapi.lv.com/
腾讯云智能视频 稳定可靠AI能力强 ¥0.3/视频 https://cloud.tencent.com/product/ivpd
阿里云视频AI 性价比高 ¥0.15/视频 https://ai.aliyun.com/video
D-ID国际 AI数字人视频 $0.5/视频 https://www.d-id.com/

推荐方案:剪映开放平台(与抖音深度集成,生成的视频可直接分享到抖音)

  1. 视频分享功能
// 分享到微信好友
function shareToWechat(videoData) {
  wx.shareAppMessage({
    title: '我的健康饮食打卡 🥗 营养评分92分',
    path: `/pages/video-preview/video-preview?id=${videoData.video_id}`,
    imageUrl: videoData.cover_url
  });
}

// 分享到朋友圈
function shareToMoments(videoData) {
  wx.shareVideoMessage({
    videoPath: videoData.video_url,
    thumbPath: videoData.cover_url,
    title: '我的健康饮食打卡 🥗'
  });
}

// 保存到相册
async function saveToAlbum(videoData) {
  // 下载视频到本地
  const res = await wx.downloadFile({
    url: videoData.video_url
  });
  
  // 保存到相册
  await wx.saveVideoToPhotosAlbum({
    filePath: res.tempFilePath
  });
  
  wx.showToast({ title: '已保存到相册', icon: 'success' });
}

// 分享到抖音/快手跳转外部APP
function shareToDouyin(videoData) {
  // 先保存到相册
  saveToAlbum(videoData).then(() => {
    wx.showModal({
      title: '提示',
      content: '视频已保存到相册即将跳转到抖音APP您可以在抖音中选择该视频发布。',
      confirmText: '打开抖音',
      success: (res) => {
        if (res.confirm) {
          // 跳转到抖音APP需要配置URL Scheme
          wx.navigateToMiniProgram({
            appId: 'douyin_app_id', // 抖音小程序AppID
            path: 'pages/video/publish'
          });
        }
      }
    });
  });
}

核心价值

  1. 提升传播力

    • 视频比图文更有传播力转发率提升300%+
    • 一键分享到抖音/快手,扩大用户覆盖面
    • 视频自带品牌水印,增加产品曝光
  2. 降低创作门槛

    • 用户无需任何视频制作技能
    • AI自动生成15-30秒完成
    • 专业级视频效果(转场、特效、音乐)
  3. 增强用户粘性

    • 打卡变得更有成就感
    • 生成的视频可收藏、回看
    • 分享到社交平台获得点赞,增强自我激励
  4. 商业价值

    • 视频自带品牌水印和二维码,自然引流
    • 短视频平台流量巨大,低成本获客
    • 优质UGC视频内容可用于官方营销

积分激励

行为 积分 说明
生成AI视频 +20分 首次生成视频
分享视频到微信 +10分 每日上限30分
分享视频到抖音/快手 +30分 每日上限30分
视频被点赞100+ +50分 里程碑奖励
视频被转发50+ +100分 里程碑奖励
页面5打卡历史/数据分析

入口:个人中心 → 我的健康 → 饮食记录

┌────────────────────────────────┐
│  < 我的饮食记录                 │
└────────────────────────────────┘

【筛选】 [本周] [本月] [全部]

【本周数据概览】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 打卡统计
• 打卡天数5/7天
• 打卡次数13/21次
• 平均达标率88%
• 获得积分150分

📈 营养趋势
[蛋白质摄入折线图]
[能量摄入柱状图]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【打卡记录】

┌────────────────────────────────┐
│ 11月20日今天                │
│ ✅ 早餐 7:30  达标率 94%        │
│ ✅ 午餐 12:15 达标率 89%        │
│ ⭕ 晚餐 未打卡                  │
│                                │
│  [📊 查看详情] [⚡一键复制打卡]  │
│   ↓可进入详情页  ↓快速复制      │
└────────────────────────────────┘

┌────────────────────────────────┐
│ 11月19日                        │
│ ✅ 早餐 8:00  达标率 92% ⭐高分  │
│ ✅ 午餐 12:30 达标率 95% ⭐高分  │
│ ✅ 晚餐 18:45 达标率 88%        │
│                                │
│  [📊 查看详情] [⚡一键复制打卡]  │
│   ↓可进入详情页  ↓快速复制      │
└────────────────────────────────┘

💡 操作提示:
• 点击"📊 查看详情" → 进入打卡详情页
  └─ 详情页内有"⚡一键复制打卡"按钮
  └─ 可查看完整营养分析和照片
  └─ 可以选择生成AI视频

• 点击"⚡一键复制打卡" → 直接跳转到复制确认页
  └─ 快捷方式,适合快速打卡
  └─ 30秒完成打卡

新增功能:一键复制打卡

点击"一键复制打卡"按钮后:

┌────────────────────────────────┐
│  < 一键复制打卡                 │
└────────────────────────────────┘

【原打卡记录】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 11月19日 早餐
⭐ 达标率92%(优秀)
🎯 营养评分88分

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【选择要复制的内容】

✅ 饮食照片(已勾选)
┌────┐ ┌────┐ ┌────┐
│图片1│ │图片2│ │图片3│
└────┘ └────┘ └────┘
[点击可预览/取消选择]

✅ 备注说明(已勾选,可修改)
┌────────────────────────────────┐
│ 今天吃的比较清淡,没有放盐,      │
│ 味道还不错。鸡蛋只吃了蛋白。      │
│                                │
│ [点击修改内容]                  │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【新功能】⚡⚡⚡

☐ ⭐ AI自动生成视频作品推荐

┌────────────────────────────────┐
│  🎬 AI视频生成器                │
│                                │
│  将您的打卡内容自动生成          │
│  精美短视频,可分享到社区!       │
│                                │
│  ✨ 自动配背景音乐               │
│  ✨ 智能添加营养数据展示          │
│  ✨ 专业转场和特效               │
│  ✨ 一键分享到抖音/快手/视频号    │
│                                │
│  预计生成时间15-30秒           │
│                                │
│  [预览视频样式]                 │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  [✅ 确认复制并发布]             │
│                                │
│  复制后将跳转到打卡页,您可以:   │
│  • 修改照片和备注内容            │
│  • 重新拍摄新照片                │
│  • 选择是否生成AI视频            │
└────────────────────────────────┘

完整的"一键打卡"入口流程图

【3个主要入口】

入口1打卡历史页 → 直接复制
┌──────────────────────────┐
│ 我的饮食记录              │
│ ┌──────────────────────┐ │
│ │ 11月19日 早餐         │ │
│ │ ✅ 达标率92% ⭐高分    │ │
│ │ [📊 查看详情]          │ │
│ │ [⚡一键复制打卡] ←入口1 │ │
│ └──────────────────────┘ │
└──────────────────────────┘
        ↓
    【复制确认页】
        ↓
    【打卡页】(内容已填充)
        ↓
    【发布完成】

入口2打卡详情页 → 详细查看后复制
┌──────────────────────────┐
│ 我的饮食记录              │
│ [📊 查看详情] ←先点这里    │
└──────────────────────────┘
        ↓
┌──────────────────────────┐
│ 打卡详情页                │
│ • 完整照片查看            │
│ • 营养数据详情            │
│ • 菜品清单               │
│ ┌──────────────────────┐ │
│ │ ⚡一键复制打卡 ←入口2  │ │
│ └──────────────────────┘ │
└──────────────────────────┘
        ↓
    【复制确认页】
        ↓
    【打卡页】(内容已填充)
        ↓
    【发布完成】

入口3社区打卡详情页 → 借鉴他人
┌──────────────────────────┐
│ 社区广场 → 他人的打卡      │
│ [点击帖子查看详情]         │
└──────────────────────────┘
        ↓
┌──────────────────────────┐
│ 打卡详情页(他人的)       │
│ • 查看他人饮食方案         │
│ • 营养数据参考            │
│ ┌──────────────────────┐ │
│ │ 🎬一键借鉴打卡 ←入口3  │ │
│ └──────────────────────┘ │
└──────────────────────────┘
        ↓
    【借鉴确认页】
    AI自动调整用量
        ↓
    【打卡页】(需上传自己的照片)
        ↓
    【发布完成】
    (原作者+2分自己+5分

页面路径说明

页面 路径 参数
打卡历史页 /pages/check-in-history/history -
打卡详情页(自己的) /pages/check-in-detail/detail ?id={recordId}&type=self
打卡详情页(他人的) /pages/check-in-detail/detail ?id={recordId}&type=others
复制确认页 /pages/copy-confirm/confirm ?from={recordId}
借鉴确认页 /pages/learn-confirm/confirm ?from={recordId}
打卡页 /pages/check-in/check-in ?from=copy&recordId={id}

交互说明

  1. 一键复制功能入口1和2

    • 点击任意历史打卡记录的"一键复制打卡"
    • 自动复制该次打卡的:
      • 饮食照片1-3张
      • 备注说明(可修改)
    • 跳转到打卡页面,内容自动填充
    • 获得积分:+5分
  2. 一键借鉴功能入口3

    • 查看他人的打卡详情页
    • 点击"🎬一键借鉴打卡"
    • AI自动调整菜品用量根据你的营养计划
    • 需要上传自己的饮食照片(必须)
    • 获得积分:+5分原作者+2分
  3. 内容可编辑

    • 照片:可删除、重新选择、添加新照片
    • 备注:可直接修改文字内容
    • 语音:可重新录制语音备注
  4. AI生成视频 核心创新:

    • 用户勾选"AI自动生成视频作品"
    • 点击"发布"后AI自动处理
    • 生成时间15-30秒
    • 视频特性:
      • 时长15-30秒短视频
      • 自动配背景音乐(轻松、温馨风格)
      • 智能展示营养数据(动画效果)
      • 专业转场和特效
      • 添加"慢生活智能营养专家"水印

4.6.4 积分奖励规则

基础积分规则v2.2优化后)
行为 积分 每日上限 说明
完成每餐打卡 +10分 30分 早中晚各10分
上传饮食照片 +10分 30分 每餐上传照片额外奖励
AI智能分析 +10分 30分 使用AI识别和营养分析
营养达标90%+ +5分 15分 每餐达标额外奖励
生成AI视频 新增 +20分 60分 AI自动生成打卡视频
分享视频到微信 新增 +10分 30分 分享视频到微信好友/朋友圈
分享视频到抖音/快手 新增 +30分 30分 分享到短视频平台
一键复制打卡 新增 +5分 15分 从历史记录快速复制打卡
连续打卡3天 +50分 - 里程碑奖励
连续打卡7天 +100分 - 里程碑奖励
连续打卡30天 +500分 - 里程碑奖励
视频被点赞100+ 新增 +50分 - 视频里程碑奖励
视频被转发50+ 新增 +100分 - 视频里程碑奖励
分享打卡记录 +5分 15分 每日最多分享3次
下载营养报告 +5分 15分 下载PDF报告
分享营养报告 +10分 10分 分享报告到微信
邀请好友打卡 +50分 - 好友完成首次打卡后获得

单次打卡最高可得积分v2.2

  • 基础打卡10分
  • 上传照片10分
  • AI分析10分
  • 营养达标5分
  • 生成AI视频20分 新增
  • 一键复制5分 新增
  • 合计60分/餐原35分提升71%

额外积分

  • 下载报告5分
  • 分享报告10分
  • 分享视频到微信10分 新增
  • 分享视频到抖音/快手30分 新增
  • 单次打卡最高可得115分原50分提升130%

积分获取示例

场景1普通打卡不生成视频
基础打卡 +10分
上传照片 +10分
AI分析 +10分
营养达标 +5分
下载报告 +5分
━━━━━━━━━━━━━━━━
合计40分

场景2完整打卡生成视频+分享)⭐推荐
基础打卡 +10分
上传照片 +10分
AI分析 +10分
营养达标 +5分
生成AI视频 +20分
分享视频到抖音 +30分
下载报告 +5分
━━━━━━━━━━━━━━━━
合计90分提升125%

场景3一键复制打卡快速打卡
一键复制 +5分
基础打卡 +10分
上传照片 +10分
AI分析 +10分
营养达标 +5分
━━━━━━━━━━━━━━━━
合计40分节省时间90%
会员倍率加成
会员等级 积分倍率 月费
普通用户 1.0x 免费
高级会员 1.5x ¥29.9
年度会员 2.0x ¥199立省159
积分兑换商城(优化后)
商品 所需积分 价值 说明
免费咨询次数(图文) 新增 100分 ¥19 向专业营养师提问1次提问+3次追问
免费咨询次数(语音/视频) 新增 300分 ¥49 与营养师语音/视频通话15分钟
AI营养师不限次咨询24小时 新增 50分 ¥9.9 24小时内AI营养师无限次提问
7天高级会员 300分 ¥9.9 会员权益积分倍率1.5x
30天高级会员 1000分 ¥29.9 会员权益积分倍率1.5x
专业营养师1对1深度咨询30分钟 2000分 ¥199 包含个性化营养方案制定
个性化食谱定制7天 800分 ¥79 营养师定制7天食谱
营养报告深度解读 200分 ¥29 营养师解读您的打卡报告
优惠券-20元 400分 ¥20 商城购物通用
实物礼品(低钠盐、低磷米等) 1500分 - 适合肾病患者的健康食品

重点推荐

  1. 免费咨询次数(图文) - 100积分

    • 最实惠的选择
    • 连续打卡3天即可获得30×3+50=140分
    • 适合快速咨询简单问题
    • 24小时内营养师回复
  2. 免费咨询次数(语音/视频) - 300积分

    • 连续打卡10天即可获得30×10+100=400分
    • 更深入的交流
    • 可以展示饮食照片获得即时反馈
    • 预约制,营养师实时在线
  3. AI营养师不限次咨询 - 50积分

    • 打卡2天即可获得30×2=60分
    • 适合频繁提问的用户
    • AI即时回复无需等待

积分消耗核心价值

打通"打卡赚积分 → 兑换咨询服务 → 获得专业指导 → 更好地打卡"的完整闭环!

打卡赚积分
    ↓
兑换免费咨询
    ↓
向营养师提问
    ↓
获得专业指导
    ↓
改善饮食习惯
    ↓
更好地打卡(更高分、更达标)
    ↓
赚更多积分

咨询服务流程

  1. 兑换咨询次数

    • 积分中心 → 积分商城 → 选择咨询服务
    • 点击"立即兑换"
    • 扣除积分,获得咨询次数
  2. 发起咨询(图文)

    • AI营养师页面 → 点击"人工营养师"
    • 选择要咨询的问题类型
    • 上传相关照片/报告
    • 提交问题
    • 24小时内收到营养师回复
  3. 预约咨询(语音/视频)

    • AI营养师页面 → 点击"预约视频咨询"
    • 选择时间段
    • 营养师确认
    • 到时间自动发起视频通话

营养师咨询典型场景

场景1血钾偏高怎么办
用户我最近血钾5.8,医生说偏高了,
      饮食应该怎么调整?
营养师您好血钾5.8确实偏高了。建议:
       1. 蔬菜切小块浸泡30分钟再煮
       2. 避免高钾水果(香蕉、橙子)
       3. 主食选择米饭,少吃土豆
       4. 查看您的打卡记录,我帮您分析...

场景2打卡报告看不懂
用户:今天的营养报告显示磷超标了,
      但我不知道哪个菜磷高
营养师:让我看看您的报告...鸡蛋含磷较高,
       建议只吃蛋白不吃蛋黄。另外坚果、
       动物内脏都要避免...

场景3想增加蛋白质摄入
用户:医生说我营养不良,要增加蛋白质,
      有什么好的食物推荐吗?
营养师:透析患者需要优质蛋白,推荐:
       1. 鸡蛋白(去黄,低磷)
       2. 鱼肉(清蒸最好)
       3. 瘦肉(少量)
       每天建议...

4.6.5 数据结构设计

营养计划表nutrition_plans
CREATE TABLE nutrition_plans (
  plan_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  
  -- 健康数据
  gender VARCHAR(10),
  age INT,
  height INT,
  weight DECIMAL(5,2),
  has_dialysis BOOLEAN,
  dialysis_type VARCHAR(20),
  creatinine DECIMAL(8,2),
  
  -- 计算结果
  egfr DECIMAL(5,2),
  standard_weight DECIMAL(5,2),
  bmi DECIMAL(4,1),
  ckd_stage VARCHAR(50),
  protein_intake DECIMAL(5,1),
  energy_intake INT,
  
  -- 配餐方案JSON
  meal_plan_json TEXT,
  
  -- 计划状态
  status VARCHAR(20), -- active, completed, abandoned
  start_date DATE,
  end_date DATE, -- 通常为start_date + 7天
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  
  INDEX idx_user_id (user_id),
  INDEX idx_status (status),
  INDEX idx_start_date (start_date)
);
打卡记录表check_in_records
CREATE TABLE check_in_records (
  record_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  plan_id BIGINT NOT NULL,
  
  check_in_date DATE NOT NULL,
  meal_type VARCHAR(20) NOT NULL, -- breakfast, lunch, dinner
  check_in_time TIMESTAMP,
  
  -- ⭐优化简化输入AI智能识别
  photos_json TEXT, -- ⭐必填饮食照片URL数组1-3张
  notes TEXT, -- 可选:备注说明(支持语音转文字)
  voice_url VARCHAR(500), -- ⭐新增语音备注原始文件URL
  
  -- ⭐新增AI识别结果
  ai_recognized_foods_json TEXT, -- ⭐AI识别的食物列表 [{name, weight, confidence}]
  ai_recognition_status VARCHAR(20), -- pending, success, failed
  ai_recognition_time TIMESTAMP, -- AI识别完成时间
  is_manually_corrected TINYINT DEFAULT 0, -- 用户是否手动修正了AI识别结果
  
  -- 推荐vs实际保留原有字段但现在由AI自动填充
  recommended_dishes_json TEXT, -- 推荐菜品(来自营养计划)
  actual_dishes_json TEXT, -- 实际食用由AI识别结果生成
  
  -- ⭐新增详细营养统计AI自动计算
  actual_protein DECIMAL(5,1),
  actual_energy INT,
  actual_potassium INT, -- ⭐新增:钾 (mg)
  actual_phosphorus INT, -- ⭐新增:磷 (mg)
  actual_sodium INT, -- ⭐新增:钠 (mg)
  
  target_protein DECIMAL(5,1),
  target_energy INT,
  compliance_rate INT, -- 整体达标率(%
  
  -- ⭐新增:营养分析报告
  report_id VARCHAR(50), -- ⭐报告编号 (如 R20251120081501)
  report_pdf_url VARCHAR(500), -- ⭐PDF报告下载链接
  report_generated_at TIMESTAMP, -- 报告生成时间
  report_download_count INT DEFAULT 0, -- 报告下载次数
  report_share_count INT DEFAULT 0, -- 报告分享次数
  
  -- ⭐新增AI营养师点评
  ai_comments_json TEXT, -- ⭐AI生成的点评 {strengths:[], suggestions:[], next_meal_advice:''}
  nutrition_score INT, -- ⭐营养评分0-100
  
  -- ⭐⭐⭐新增AI视频生成v2.2核心功能)
  video_id VARCHAR(50), -- ⭐视频ID
  video_url VARCHAR(500), -- ⭐视频CDN地址
  video_cover_url VARCHAR(500), -- ⭐视频封面图
  video_duration INT, -- ⭐视频时长(秒)
  video_file_size DECIMAL(5,2), -- ⭐视频文件大小MB
  video_status VARCHAR(20), -- ⭐视频状态pending, generating, success, failed
  video_generated_at TIMESTAMP, -- ⭐视频生成完成时间
  video_view_count INT DEFAULT 0, -- ⭐视频观看次数
  video_like_count INT DEFAULT 0, -- ⭐视频点赞次数
  video_share_count INT DEFAULT 0, -- ⭐视频分享次数
  is_video_public TINYINT DEFAULT 1, -- ⭐视频是否公开1=公开0=私密)
  
  -- 一键复制打卡
  copied_from_record_id BIGINT, -- ⭐复制自哪条打卡记录
  is_copied TINYINT DEFAULT 0, -- ⭐是否为复制的打卡1=是0=否)
  
  -- 积分奖励
  points_earned INT DEFAULT 0,
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  
  UNIQUE KEY uk_user_date_meal (user_id, check_in_date, meal_type),
  INDEX idx_user_id (user_id),
  INDEX idx_plan_id (plan_id),
  INDEX idx_check_in_date (check_in_date),
  INDEX idx_report_id (report_id), -- ⭐新增报告ID索引
  INDEX idx_nutrition_score (nutrition_score), -- ⭐新增:评分索引(用于排行榜)
  INDEX idx_video_id (video_id), -- ⭐⭐⭐新增视频ID索引
  INDEX idx_video_status (video_status), -- ⭐⭐⭐新增:视频状态索引
  INDEX idx_copied_from (copied_from_record_id) -- ⭐⭐⭐新增:复制来源索引
);

-- ⭐数据示例
/*
{
  "record_id": 12345,
  "photos_json": [
    "https://cdn.xxx.com/photos/user123/20251120_breakfast_1.jpg",
    "https://cdn.xxx.com/photos/user123/20251120_breakfast_2.jpg"
  ],
  "notes": "今天吃的比较清淡,没有放盐",
  "voice_url": "https://cdn.xxx.com/voices/user123/20251120_081505.mp3",
  
  "ai_recognized_foods_json": [
    {"name": "牛奶", "weight": 120, "unit": "ml", "confidence": 0.95},
    {"name": "鸡蛋拌面", "weight": 150, "unit": "g", "confidence": 0.88},
    {"name": "黄瓜", "weight": 80, "unit": "g", "confidence": 0.92}
  ],
  
  "actual_protein": 18.8,
  "actual_energy": 452,
  "actual_potassium": 320,
  "actual_phosphorus": 180,
  "actual_sodium": 250,
  
  "report_id": "R20251120081501",
  "report_pdf_url": "https://cdn.xxx.com/reports/R20251120081501.pdf",
  "nutrition_score": 92,
  
  "ai_comments_json": {
    "strengths": [
      "食物搭配均衡,包含主食、蛋白质和蔬菜",
      "优质蛋白来源充足(鸡蛋+牛奶)",
      "钾、磷、钠控制都很好"
    ],
    "suggestions": [
      "能量略低建议增加50g主食",
      "可以再增加50g低钾水果如苹果"
    ],
    "next_meal_advice": "午餐可以吃:米饭+清蒸鱼+炒蔬菜"
  },
  
  "video_id": "V20251120081520",
  "video_url": "https://cdn.xxx.com/videos/V20251120081520.mp4",
  "video_cover_url": "https://cdn.xxx.com/videos/V20251120081520_cover.jpg",
  "video_duration": 23,
  "video_file_size": 5.8,
  "video_status": "success",
  "video_view_count": 156,
  "video_like_count": 32,
  "video_share_count": 8,
  "is_video_public": 1,
  
  "copied_from_record_id": null,
  "is_copied": 0,
  
  "points_earned": 55
}
*/
积分记录表points_transactions
CREATE TABLE points_transactions (
  transaction_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  
  transaction_type VARCHAR(20), -- earn, spend
  source VARCHAR(50), -- check_in, photo, share, streak, exchange
  source_id BIGINT, -- 关联的记录ID
  
  points INT NOT NULL, -- 正数为获得,负数为消费
  balance_after INT, -- 交易后余额
  
  description VARCHAR(255),
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  
  INDEX idx_user_id (user_id),
  INDEX idx_transaction_type (transaction_type),
  INDEX idx_created_at (created_at)
);
用户积分表user_points
CREATE TABLE user_points (
  user_id BIGINT PRIMARY KEY,
  
  total_points INT DEFAULT 0, -- 累计总积分
  available_points INT DEFAULT 0, -- 可用积分
  used_points INT DEFAULT 0, -- 已使用积分
  
  -- 打卡统计
  total_check_ins INT DEFAULT 0,
  current_streak INT DEFAULT 0, -- 当前连续打卡天数
  longest_streak INT DEFAULT 0, -- 最长连续打卡天数
  last_check_in_date DATE,
  
  -- ⭐新增:咨询服务次数
  free_consult_text_count INT DEFAULT 0, -- 可用的图文咨询次数
  free_consult_voice_count INT DEFAULT 0, -- 可用的语音/视频咨询次数
  ai_consult_unlimited_expire_at TIMESTAMP, -- AI不限次咨询过期时间
  
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
新增营养师咨询记录表nutritionist_consultations
CREATE TABLE nutritionist_consultations (
  consultation_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  
  -- 咨询类型
  consult_type VARCHAR(20) NOT NULL, -- text, voice, video
  status VARCHAR(20) NOT NULL, -- pending, in_progress, completed, cancelled
  
  -- 问题内容
  question_text TEXT, -- 用户提问
  question_images_json TEXT, -- 问题相关图片URL数组
  related_report_id VARCHAR(50), -- 关联的营养报告ID
  related_check_in_id BIGINT, -- 关联的打卡记录ID
  
  -- 营养师回复
  nutritionist_id BIGINT, -- 营养师ID
  nutritionist_reply TEXT, -- 营养师回复
  reply_images_json TEXT, -- 回复相关图片
  
  -- 追问最多3次
  follow_up_count INT DEFAULT 0,
  follow_up_questions_json TEXT, -- 追问和回复记录
  
  -- 语音/视频咨询
  call_start_time TIMESTAMP, -- 通话开始时间
  call_end_time TIMESTAMP, -- 通话结束时间
  call_duration INT, -- 通话时长(秒)
  call_recording_url VARCHAR(500), -- 通话录音URL可选
  
  -- 费用
  points_cost INT DEFAULT 0, -- 消耗积分
  cash_cost DECIMAL(10,2) DEFAULT 0, -- 现金支付(元)
  
  -- 评价
  user_rating INT, -- 用户评分1-5星
  user_feedback TEXT, -- 用户反馈
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  replied_at TIMESTAMP, -- 营养师回复时间
  
  INDEX idx_user_id (user_id),
  INDEX idx_nutritionist_id (nutritionist_id),
  INDEX idx_status (status),
  INDEX idx_created_at (created_at)
);

-- ⭐数据示例
/*
{
  "consultation_id": 1001,
  "user_id": 123,
  "consult_type": "text",
  "status": "completed",
  
  "question_text": "我最近血钾5.8,医生说偏高了,饮食应该怎么调整?",
  "question_images_json": ["https://cdn.xxx.com/reports/R20251120081501.pdf"],
  "related_report_id": "R20251120081501",
  
  "nutritionist_id": 88,
  "nutritionist_reply": "您好血钾5.8确实偏高了。建议:\n1. 蔬菜切小块浸泡30分钟再煮\n2. 避免高钾水果(香蕉、橙子)\n3. 主食选择米饭,少吃土豆\n4. 查看您的打卡记录,我帮您分析...",
  
  "follow_up_count": 2,
  "follow_up_questions_json": [
    {
      "question": "那我可以吃西瓜吗?",
      "reply": "西瓜属于中等钾含量水果建议少量食用每次不超过100g",
      "created_at": "2025-11-20 10:30:00"
    },
    {
      "question": "好的,谢谢!",
      "reply": "不客气,祝您身体健康!",
      "created_at": "2025-11-20 10:35:00"
    }
  ],
  
  "points_cost": 100,
  "user_rating": 5,
  "user_feedback": "营养师回复很专业,解决了我的问题!"
}
*/

4.6.6 核心算法

算法1连续打卡判断
/**
 * 判断是否连续打卡
 * @param {string} lastCheckInDate - 上次打卡日期 YYYY-MM-DD
 * @param {string} todayDate - 今天日期 YYYY-MM-DD
 * @returns {boolean} 是否连续
 */
function isConsecutiveCheckIn(lastCheckInDate, todayDate) {
  if (!lastCheckInDate) return false;
  
  const last = new Date(lastCheckInDate);
  const today = new Date(todayDate);
  
  // 计算日期差(天数)
  const diffDays = Math.floor((today - last) / (1000 * 60 * 60 * 24));
  
  return diffDays === 1; // 恰好相差1天
}

/**
 * 更新连续打卡天数
 */
function updateCheckInStreak(userId, todayDate) {
  const user = getUserPoints(userId);
  
  if (isConsecutiveCheckIn(user.last_check_in_date, todayDate)) {
    // 连续打卡,天数+1
    user.current_streak += 1;
    user.longest_streak = Math.max(user.longest_streak, user.current_streak);
    
    // 检查里程碑奖励
    if (user.current_streak === 3) {
      awardPoints(userId, 50, 'streak_3', '连续打卡3天奖励');
    } else if (user.current_streak === 7) {
      awardPoints(userId, 100, 'streak_7', '连续打卡7天奖励');
    } else if (user.current_streak === 30) {
      awardPoints(userId, 500, 'streak_30', '连续打卡30天奖励');
    }
  } else if (user.last_check_in_date !== todayDate) {
    // 不连续重置为1
    user.current_streak = 1;
  }
  
  user.last_check_in_date = todayDate;
  updateUserPoints(user);
}
算法2营养达标率计算
/**
 * 计算营养达标率
 * @param {number} actual - 实际摄入
 * @param {number} target - 目标摄入
 * @returns {number} 达标率0-100
 */
function calculateComplianceRate(actual, target) {
  if (target === 0) return 100;
  
  const rate = (actual / target) * 100;
  
  // 限制在50-150%范围内显示
  return Math.min(Math.max(rate, 50), 150);
}

/**
 * 判断是否达标90%-110%为达标)
 */
function isCompliant(actual, target) {
  const rate = calculateComplianceRate(actual, target);
  return rate >= 90 && rate <= 110;
}
算法3积分计算
/**
 * 计算单次打卡获得的积分
 */
function calculateCheckInPoints(checkInData, userLevel) {
  let points = 0;
  
  // 1. 基础打卡积分
  points += 10;
  
  // 2. 上传照片奖励
  if (checkInData.photos && checkInData.photos.length > 0) {
    points += 10;
  }
  
  // 3. 营养达标奖励
  const proteinCompliant = isCompliant(
    checkInData.actual_protein, 
    checkInData.target_protein
  );
  const energyCompliant = isCompliant(
    checkInData.actual_energy, 
    checkInData.target_energy
  );
  
  if (proteinCompliant && energyCompliant) {
    points += 5; // 营养达标额外奖励
  }
  
  // 4. 会员倍率加成
  const multiplier = getMemberMultiplier(userLevel);
  points = Math.floor(points * multiplier);
  
  return points;
}

/**
 * 获取会员积分倍率
 */
function getMemberMultiplier(userLevel) {
  const multipliers = {
    'free': 1.0,
    'premium': 1.5,
    'annual': 2.0
  };
  return multipliers[userLevel] || 1.0;
}

4.6.7 推送通知策略

推送时机
时间 推送内容 目标
早上7:00 "早安!记得吃早餐并打卡哦 🌅" 提醒早餐打卡
中午11:30 "午餐时间到啦!今天吃什么?🍱" 提醒午餐打卡
晚上17:30 "晚餐准备好了吗?记得打卡哦 🌙" 提醒晚餐打卡
晚上21:00 "今天还有X餐未打卡快来记录吧" 提醒补卡
连续打卡2天 "再坚持1天就能获得50积分啦💪" 激励继续
断签后第2天 "好久不见!继续打卡赢积分吧 🎁" 召回用户
推送模板
// 早餐提醒
{
  title: "早安!记得吃早餐哦 🌅",
  content: "今天推荐:牛奶+鸡蛋拌面打卡即得10积分",
  path: "/pages/check-in/check-in?meal=breakfast"
}

// 连续打卡激励
{
  title: "连续打卡{days}天,太棒了!🎉",
  content: "再坚持{remaining}天可获得{points}积分奖励",
  path: "/pages/nutrition-plan/plan"
}

// 积分到账通知
{
  title: "积分到账啦!💰",
  content: "打卡成功,获得{points}积分。当前余额:{balance}分",
  path: "/pages/points/center"
}

4.6.8 防作弊机制

问题:用户可能虚假打卡或作弊获取积分

防范措施

  1. 时间限制

    • 早餐6:00-10:00可打卡
    • 午餐11:00-14:00可打卡
    • 晚餐17:00-21:00可打卡
    • 超时可补卡但不获得积分
  2. 照片验证(可选,高级功能)

    • AI识别上传照片是否为食物
    • 检测图片是否为网络图片
    • 照片EXIF信息验证拍摄时间
  3. 异常检测

    • 单日打卡次数超过3次预警
    • 连续多天营养数据完全一致(疑似复制)
    • 积分获取速度异常单日超过100分
  4. 人工审核

    • 兑换高价值商品时人工审核历史记录
    • 用户投诉机制
    • 黑名单管理

4.7 积分中心

4.7.1 我的积分页

┌────────────────────────────────┐
│  < 我的积分                     │
└────────────────────────────────┘

┌────────────────────────────────┐
│  💰 可用积分                    │
│                                │
│        1,250 分                │
│                                │
│  今日已获得30分               │
│  累计获得3,500分              │
│  已使用2,250分                │
└────────────────────────────────┘

【积分明细】 [收入] [支出]

┌────────────────────────────────┐
│ 今天 14:30                      │
│ 午餐打卡                        │
│                  +15分  ✅      │
└────────────────────────────────┘

┌────────────────────────────────┐
│ 今天 07:45                      │
│ 早餐打卡(上传照片)             │
│                  +15分  ✅      │
└────────────────────────────────┘

4.7.2 积分商城

入口:积分中心 → 积分商城

商品分类

  1. 会员权益
  2. 咨询服务
  3. 优惠券
  4. 实物礼品

4.7.3 打卡排行榜

规则

  • 本周/本月打卡次数排名
  • 前10名额外奖励
  • 每周一重置排名

4.8 打卡社区系统(类似小红书)重磅新增

4.8.1 功能定位

核心理念将个人打卡记录转化为可分享的UGC内容打造肾病患者的饮食分享社区。

产品价值

  1. 📸 内容生产用户打卡记录变成优质内容降低UGC门槛
  2. 👥 社交连接:患者之间互相学习、点赞、评论、关注
  3. 🎯 激励增强:社交认同感增强打卡动力
  4. 📊 数据价值:优质内容吸引新用户,提高转化率
  5. 💰 商业化为KOL孵化、广告变现打基础

对标产品

  • 小红书:内容社区模式
  • Keep运动社区运动打卡分享
  • 薄荷健康:饮食记录社区

4.8.2 核心功能架构

打卡社区
│
├── 社区广场Feed流
│   ├── 推荐Tab算法推荐
│   ├── 最新Tab时间排序
│   ├── 关注Tab关注用户的内容
│   └── 热门Tab高互动内容
│
├── 内容详情页
│   ├── 图片轮播
│   ├── 文字内容
│   ├── 营养数据卡片
│   ├── 互动操作(点赞/评论/收藏/分享)
│   └── 相关推荐
│
├── 发布流程
│   ├── 选择打卡记录
│   ├── 编辑内容
│   ├── 添加标签
│   └── 发布
│
├── 用户主页
│   ├── 个人资料
│   ├── 打卡作品集
│   ├── 关注/粉丝
│   └── 成就勋章
│
└── 互动系统
    ├── 点赞
    ├── 评论(含回复)
    ├── 收藏
    └── 分享

4.8.3 页面设计详解

页面1社区广场瀑布流

入口

  1. 首页底部Tab"社区"(新增)
  2. 打卡成功页"分享到社区"按钮
  3. 个人中心"我的打卡作品"

页面结构

┌────────────────────────────────┐
│  🏠 社区广场         [发布+]   │  ← 顶部导航
└────────────────────────────────┘

【筛选Tab】 [推荐] [最新] [关注] [热门]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【瀑布流布局】2列

┌──────────┐  ┌──────────┐
│   图片    │  │   图片    │
│          │  │          │
├──────────┤  ├──────────┤
│ 🥗 早餐打 │  │ 🍱 午餐低 │
│    卡第7天│  │    钾配餐 │
│          │  │          │
│ 👤 张小慢 │  │ 👤 李大康 │
│ ❤️ 128  │  │ ❤️ 256  │
└──────────┘  └──────────┘

┌──────────┐  ┌──────────┐
│   图片    │  │   图片    │
│          │  │          │
├──────────┤  ├──────────┤
│ 🍲 透析餐 │  │ 🥛 低磷早 │
│    分享  │  │    餐食谱 │
│          │  │          │
│ 👤 王老师 │  │ 👤 慢生活 │
│ ❤️ 89   │  │ ❤️ 512  │
└──────────┘  └──────────┘

[下拉刷新/上拉加载更多]

卡片信息

  • 封面图4:3比例取打卡照片第一张
  • 标题(自动生成或用户编辑)
  • 用户头像和昵称
  • 点赞数
  • 标签最多2个

交互

  • 点击卡片→进入详情页
  • 长按卡片→快速操作(收藏/不感兴趣)
  • 下拉刷新
  • 上拉加载更多每页20条
页面2打卡详情页

页面结构

┌────────────────────────────────┐
│  < 打卡详情               ⋮    │  ← 顶部导航(返回+更多)
└────────────────────────────────┘

┌────────────────────────────────┐
│  【用户信息栏】                  │
│  👤 张小慢透析3年            │
│  📅 2025-11-20 12:30            │
│  [+ 关注]                       │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【图片轮播】1/3                 │
│  ┌──────────────────────────┐  │
│  │                          │  │
│  │      饮食照片            │  │
│  │                          │  │
│  └──────────────────────────┘  │
│  ●  ○  ○                       │  ← 指示器
└────────────────────────────────┘

┌────────────────────────────────┐
│  【标题】                        │
│  🥗 早餐打卡第7天终于坚持下来了 │
│                                │
│  【标签】                        │
│  #早餐 #低钾饮食 #透析期         │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【正文】                        │
│  今天的早餐:牛奶+鸡蛋拌面+黄瓜   │
│  照片不是很好看但营养达标啦~      │
│  分享给大家参考                  │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【营养数据卡片】                 │
│  ┌──────────┐  ┌──────────┐   │
│  │ 蛋白质    │  │ 能量      │   │
│  │ 18.8g    │  │ 452kcal  │   │
│  │ 达标94%  │  │ 达标90%  │   │
│  └──────────┘  └──────────┘   │
│                                │
│  🎯 整体营养达标率92%          │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【菜品清单】(可折叠)           │
│  ☑️ 牛奶 120g                   │
│  ☑️ 鸡蛋拌面 (面条90g+鸡蛋120g)  │
│  ☑️ 凉拌黄瓜 100g                │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【⭐⭐⭐核心功能:一键打卡入口】

// 场景1查看【自己的】打卡详情页
┌────────────────────────────────┐
│  【快速操作】                    │
│  ┌──────────────────────────┐  │
│  │  ⚡ 一键复制打卡            │  │
│  │  快速复用这份饮食方案       │  │
│  └──────────────────────────┘  │
│                                │
│  点击后可以:                    │
│  ✅ 复制照片和备注到新打卡       │
│  ✅ 修改内容后重新发布           │
│  ✅ 可选生成AI视频               │
│  ✅ 获得5积分奖励                │
│                                │
│  💡 适用场景:                   │
│  • 今天吃的和之前某天一样        │
│  • 想复用高分打卡记录            │
│  • 快速打卡不想重新拍照          │
└────────────────────────────────┘

// 场景2查看【他人的】打卡详情页社区内容
┌────────────────────────────────┐
│  【一键借鉴】                    │
│  ┌──────────────────────────┐  │
│  │  🎬 一键借鉴打卡            │  │
│  │  学习这份营养方案           │  │
│  └──────────────────────────┘  │
│                                │
│  点击后可以:                    │
│  ✅ 复制菜品清单到我的打卡       │
│  ✅ 根据我的情况调整用量         │
│  ✅ AI生成适合我的食谱           │
│  ✅ 获得5积分奖励                │
│                                │
│  💡 适用场景:                   │
│  • 看到他人的优质打卡想学习      │
│  • 发现适合自己的饮食方案        │
│  • 需要新的饮食灵感              │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【互动栏】                      │
│  ❤️ 128  💬 23  ⭐ 45  ➤ 分享  │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【评论区】                      │
│  💬 共23条评论                   │
│                                │
│  👤 李大康  2小时前              │
│     太棒了!我也要学习这样吃     │
│     ❤️ 12  💬 回复              │
│                                │
│  👤 王老师  3小时前              │
│     坚持得很好,营养搭配合理👍   │
│     ❤️ 8   💬 回复              │
│                                │
│  [查看全部23条评论]              │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌────────────────────────────────┐
│  【相关推荐】                    │
│  更多透析期早餐打卡 →            │
│                                │
│  [卡片1] [卡片2] [卡片3]        │
└────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【底部评论输入栏】
┌────────────────────────────────┐
│ [说点什么...]              [发送] │
└────────────────────────────────┘

核心元素

  1. 用户信息栏

    • 头像圆形48px
    • 昵称 + 个人标签(如"透析3年"
    • 发布时间
    • 关注按钮(已关注则显示"已关注"
  2. 图片轮播

    • 支持1-3张照片
    • 左右滑动切换
    • 底部指示器
    • 双击图片放大
  3. 营养数据卡片

    • 蛋白质、能量摄入
    • 达标率显示90%+绿色,<90%橙色)
    • 整体营养评分
  4. 互动栏

    • 点赞(红色❤️,点击有动画)
    • 评论(显示数量)
    • 收藏(星标
    • 分享(微信好友/朋友圈)
  5. 评论区

    • 显示前2-3条评论
    • 支持点赞评论
    • 支持回复评论
    • "查看全部评论"进入评论详情页
  6. 一键打卡入口(核心功能)

    场景A自己的打卡详情页

    • 按钮文案:" 一键复制打卡"
    • 按钮样式:绿色渐变,大按钮,醒目
    • 点击后流程:
      1. 弹出确认页面(复制内容预览)
      2. 用户可以选择要复制的内容:
         ☑️ 饮食照片1-3张
         ☑️ 备注说明(可修改)
         ☐ AI生成视频可选
      3. 点击"确认复制并发布"
      4. 跳转到打卡页,内容已自动填充
      5. 用户可修改内容
      6. 点击"发布"完成打卡
      7. 获得积分:一键复制+5分
      

    场景B他人的打卡详情页社区内容

    • 按钮文案:"🎬 一键借鉴打卡"
    • 按钮样式:蓝色渐变,大按钮
    • 点击后流程:
      1. 弹出确认页面
      2. 显示:
         • 原作者的菜品清单
         • AI自动调整提示"已根据您的情况调整用量"
      3. 用户可以:
         ☑️ 复制菜品清单
         ☑️ AI自动调整为适合我的用量
         ☐ 上传自己的饮食照片(必须)
         ☐ 添加自己的备注
      4. 点击"确认并发布"
      5. 完成打卡
      6. 获得积分:借鉴打卡+5分
      7. 原作者获得:被借鉴+2分
      

    技术实现

    /**
     * 判断打卡详情页的场景
     */
    function getCheckInDetailScene(recordId, currentUserId) {
      const record = getCheckInRecordById(recordId);
    
      if (record.user_id === currentUserId) {
        // 场景A查看自己的打卡
        return {
          scene: 'self',
          buttonText: '⚡ 一键复制打卡',
          buttonColor: 'green',
          action: 'copyOwnCheckIn'
        };
      } else {
        // 场景B查看他人的打卡
        return {
          scene: 'others',
          buttonText: '🎬 一键借鉴打卡',
          buttonColor: 'blue',
          action: 'learnFromOthers'
        };
      }
    }
    
    /**
     * 一键复制自己的打卡
     */
    function copyOwnCheckIn(recordId) {
      const record = getCheckInRecordById(recordId);
    
      // 复制数据
      const copiedData = {
        photos_json: record.photos_json, // 照片URL数组
        notes: record.notes, // 备注说明
        copied_from_record_id: recordId, // 记录复制来源
        is_copied: 1 // 标记为复制的打卡
      };
    
      // 保存到临时存储
      wx.setStorageSync('tempCheckInData', copiedData);
    
      // 跳转到打卡页
      wx.navigateTo({
        url: '/pages/check-in/check-in?from=copy&recordId=' + recordId
      });
    }
    
    /**
     * 一键借鉴他人的打卡
     */
    function learnFromOthers(recordId, currentUserId) {
      const record = getCheckInRecordById(recordId);
    
      // 获取用户自己的营养计划
      const myPlan = getNutritionPlan(currentUserId);
    
      // AI自动调整菜品用量
      const adjustedDishes = adjustDishesForUser(
        record.actual_dishes_json,
        myPlan
      );
    
      // 准备借鉴数据
      const learnedData = {
        dishes_json: adjustedDishes, // AI调整后的菜品清单
        reference_record_id: recordId, // 参考来源
        reference_user_id: record.user_id, // 原作者ID
        is_learned_from_others: 1 // 标记为借鉴的打卡
      };
    
      // 保存到临时存储
      wx.setStorageSync('tempCheckInData', learnedData);
    
      // 跳转到打卡页
      wx.navigateTo({
        url: '/pages/check-in/check-in?from=learn&recordId=' + recordId
      });
    }
    
    /**
     * AI调整菜品用量根据用户的营养计划
     */
    function adjustDishesForUser(originalDishes, userPlan) {
      return originalDishes.map(dish => {
        // 根据用户的目标蛋白质和能量,按比例调整用量
        const ratio = userPlan.target_protein / calculateTotalProtein(originalDishes);
    
        return {
          ...dish,
          amount: Math.round(dish.amount * ratio),
          adjusted: true, // 标记为AI调整过的
          original_amount: dish.amount // 保留原始用量供参考
        };
      });
    }
    
页面3发布打卡到社区

触发时机

  1. 打卡成功页点击"分享到社区"
  2. 饮食记录页选择某次打卡,点击"分享"
  3. 社区广场点击右上角"发布+"

发布流程

步骤1选择打卡记录如果从打卡成功页进入则跳过
    ↓
步骤2编辑内容
    ├─ 选择封面图(从打卡照片中选择)
    ├─ 编辑标题可使用AI生成建议标题
    ├─ 编辑正文描述
    ├─ 添加话题标签(#早餐 #低钾饮食等)
    └─ 隐私设置(公开/仅关注可见/私密)
    ↓
步骤3预览确认
    ↓
步骤4发布成功
    ├─ 获得积分 +20分
    └─ 跳转到社区广场或详情页

编辑页面设计

┌────────────────────────────────┐
│  < 分享打卡记录         [发布]  │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【封面图选择】                  │
│  ┌────┐ ┌────┐ ┌────┐         │
│  │图1●│ │图2○│ │图3○│         │
│  └────┘ └────┘ └────┘         │
│  点击选择封面图                  │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【标题】                        │
│  🥗 早餐打卡第7天             │
│  [AI帮你写标题 ✨]              │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【正文】                        │
│  ┌──────────────────────────┐  │
│  │分享一下你的打卡心得吧~...   │  │
│  │                          │  │
│  │                          │  │
│  └──────────────────────────┘  │
│  [AI帮你写描述 ✨]              │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【添加话题】                    │
│  #早餐 #低钾饮食 #透析期         │
│  [+ 添加话题]                   │
│                                │
│  推荐话题:                      │
│  #打卡挑战 #营养达标 #今日食谱   │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【营养数据预览】(自动带入)     │
│  蛋白质18.8g  能量452kcal    │
│  营养达标率92%                 │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【隐私设置】                    │
│  ○ 公开(所有人可见)            │
│  ○ 仅关注可见                   │
│  ○ 私密(仅自己可见)            │
└────────────────────────────────┘

┌────────────────────────────────┐
│  提示分享到社区可获得20积分     │
└────────────────────────────────┘

AI辅助生成功能

  1. AI生成标题建议3-5个

    - "早餐打卡第7天坚持就是胜利💪"
    - "透析患者的低钾早餐,营养满分!"
    - "营养师推荐的早餐搭配,你也可以试试"
    
  2. AI生成描述建议

    今天的早餐包括牛奶120g、鸡蛋拌面和凉拌黄瓜。
    营养搭配合理,蛋白质和能量都达标了!
    分享给同样需要控制饮食的慢友们参考。
    
页面4用户主页

入口

  1. 点击任意内容的用户头像
  2. 个人中心"我的打卡作品"
  3. 关注列表

页面结构

┌────────────────────────────────┐
│  < 用户主页               ⋮    │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【用户资料卡】                  │
│  ┌────────┐                     │
│  │  头像  │  张小慢               │
│  │  80px  │  透析3年 | CKD 5期   │
│  └────────┘                     │
│                                │
│  简介:坚持健康饮食,享受慢生活   │
│                                │
│  [✏️ 编辑资料]  [+ 关注]        │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【数据统计】                    │
│  ┌──────┐ ┌──────┐ ┌──────┐   │
│  │ 128  │ │ 256  │ │ 89   │   │
│  │ 作品 │ │ 获赞 │ │ 粉丝 │   │
│  └──────┘ └──────┘ └──────┘   │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【成就勋章】                    │
│  🏆 连续打卡7天  🎖️ 获赞100+    │
│  ⭐ 营养达标王   💎 早起达人      │
└────────────────────────────────┘

【Tab切换】 [作品 128] [收藏 45] [点赞 312]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【作品网格展示】3列

┌────┐ ┌────┐ ┌────┐
│图片 │ │图片 │ │图片 │
│❤12│ │❤45│ │❤89│
└────┘ └────┘ └────┘

┌────┐ ┌────┐ ┌────┐
│图片 │ │图片 │ │图片 │
│❤34│ │❤67│ │❤23│
└────┘ └────┘ └────┘

资料卡元素

  • 头像(可点击放大)
  • 昵称 + 个人标签疾病状态、CKD分期
  • 个人简介(可编辑)
  • 编辑资料按钮(自己)或关注按钮(他人)

数据统计

  • 作品数:发布的打卡数量
  • 获赞数:所有作品获得的点赞总数
  • 粉丝数关注TA的人数
  • (点击可进入详情列表)

成就勋章

  • 根据用户行为自动解锁
  • 示例:连续打卡、获赞里程碑、营养达标王等
  • 可以设置展示顺序
页面5话题页

入口:点击任意内容的话题标签

页面结构

┌────────────────────────────────┐
│  < #早餐                 [关注] │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【话题介绍】                    │
│  🥗 #早餐                       │
│                                │
│  分享你的健康早餐搭配            │
│  让每一天从营养满满开始          │
│                                │
│  📊 1.2k 篇内容 | 5.6k 参与    │
└────────────────────────────────┘

【排序】 [最热] [最新]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

【内容列表】(瀑布流布局)

[与社区广场相同的卡片展示]

常见话题

#早餐 #午餐 #晚餐
#低钾饮食 #低磷饮食 #低钠饮食
#透析期 #非透析期
#营养达标 #打卡挑战
#优质蛋白 #健康食谱
#新手上路 #经验分享

4.8.4 互动系统设计

点赞功能

交互

  • 点击❤️图标触发点赞
  • 点赞动画:心形放大+红色填充
  • 取消点赞:再次点击,心形缩小
  • 实时更新点赞数

积分奖励

  • 发布内容获得第1个赞+5分
  • 发布内容获得第10个赞+10分
  • 发布内容获得第100个赞+50分
  • 给他人点赞:不消耗积分
评论功能

评论层级

一级评论(对内容)
    ├─ 二级评论(回复评论)
    └─ 二级评论(回复评论)

评论输入

  • 底部固定输入框
  • 支持Emoji
  • 支持@用户
  • 字数限制500字

评论展示

  • 默认显示前3条
  • 按点赞数排序(热门优先)
  • 支持点赞评论
  • 支持举报评论

积分奖励

  • 发布评论:+2分每日上限10条
  • 收到评论:+3分
  • 评论被点赞:+1分
收藏功能

交互

  • 点击图标收藏
  • 收藏后图标变为实心金色
  • 取消收藏:再次点击

我的收藏

  • 个人中心"我的收藏"
  • 按收藏时间倒序排列
  • 支持批量取消收藏
分享功能

分享渠道

  1. 微信好友
  2. 微信朋友圈
  3. 复制链接
  4. 生成海报(带二维码)

分享样式

┌─────────────────────┐
│                     │
│   【封面图】        │
│                     │
│   标题              │
│   作者 | 点赞数     │
│                     │
│   慢生活智能营养专家 │
│   [小程序码]        │
└─────────────────────┘

积分奖励

  • 分享到朋友圈:+5分每日上限1次
  • 分享被点击:+2分每日上限5次
一键打卡功能 核心创新

功能定位

核心理念将优质打卡内容转化为可复用的模板用户可以一键借鉴并通过AI生成食谱制作视频。

产品价值

  1. 📉 降低打卡门槛 - 不知道吃什么的用户可以直接借鉴优质内容
  2. 🎬 AI视频生成 - 自动生成食谱制作过程视频,提供更丰富的内容形式
  3. 🔄 内容复用 - 优质内容被更多人使用,增加原创者成就感
  4. 📈 提升打卡率 - 降低决策成本,提高用户打卡频率
  5. 💰 AI技术展示 - 展现产品的AI能力提升品牌形象

用户场景

场景1新手用户不知道吃什么
  看到优质打卡内容
      ↓
  点击"一键打卡"
      ↓
  菜品清单自动复制到今日打卡
      ↓
  AI生成该食谱的制作视频
      ↓
  观看视频学习制作
      ↓
  完成打卡 + 获得积分

场景2资深用户发现好食谱
  浏览社区看到喜欢的食谱
      ↓
  点击"一键打卡"
      ↓
  保存为明天的打卡计划
      ↓
  AI视频保存到"我的收藏"
      ↓
  第二天按照视频制作
      ↓
  完成打卡并分享

功能流程

【步骤1触发一键打卡】
内容详情页
    ↓
点击"🎬 一键借鉴打卡 + 生成AI视频"按钮
    ↓
【步骤2选择打卡时间】
弹窗确认:
  ○ 立即打卡(今天)
  ○ 明天打卡
  ○ 加入计划(选择日期)
    ↓
【步骤3AI视频生成】
显示加载动画:"AI正在为您生成食谱视频..."
    ├─ 调用AI视频生成接口
    ├─ 生成时间30-60秒
    └─ 视频时长1-3分钟
    ↓
【步骤4视频预览】
视频生成成功
  ├─ 播放视频预览
  ├─ 显示菜品清单
  └─ 显示营养数据
    ↓
【步骤5确认打卡】
  ├─ 可编辑菜品清单
  ├─ 可添加自己的照片
  └─ 点击"确认打卡"
    ↓
【步骤6打卡成功】
  ├─ 获得打卡积分 +10分
  ├─ 使用借鉴内容额外 +5分
  ├─ AI视频保存到打卡记录
  └─ 原创作者获得"被借鉴"徽章

页面设计

详情页按钮样式

┌────────────────────────────────┐
│  【一键打卡按钮】                │
│  ┌──────────────────────────┐  │
│  │ 🎬 一键借鉴打卡 + AI视频  │  │  ← 主按钮(橙色渐变)
│  │                          │  │
│  │ 快速复制营养方案          │  │
│  │ ✅ 复制菜品 ✅ AI视频     │  │
│  │ ✅ 获得积分              │  │
│  └──────────────────────────┘  │
└────────────────────────────────┘

点击后弹窗

╔═════════════════════════════╗
║  🎬 一键打卡                 ║
╠═════════════════════════════╣
║                             ║
║  借鉴这份营养方案:          ║
║  • 牛奶 120g                ║
║  • 鸡蛋拌面 215g            ║
║  • 凉拌黄瓜 100g            ║
║                             ║
║  营养数据:                  ║
║  蛋白质 18.8g | 能量 452kcal║
║                             ║
║  【选择打卡时间】            ║
║  ○ 立即打卡(今天)          ║
║  ○ 明天打卡                 ║
║  ○ 加入计划(选择日期)      ║
║                             ║
║  ┌─────────────────────┐   ║
║  │  ✨ 生成AI食谱视频   │   ║  ← 勾选框(默认勾选)
║  │  约1分钟生成时间  │   ║
║  └─────────────────────┘   ║
║                             ║
║  ┌─────────┐  ┌─────────┐  ║
║  │  取消   │  │ 确认打卡 │  ║
║  └─────────┘  └─────────┘  ║
╚═════════════════════════════╝

AI视频生成中

╔═════════════════════════════╗
║  🎬 AI视频生成中...          ║
╠═════════════════════════════╣
║                             ║
║    [进度条 ▓▓▓▓▓░░░░ 60%]   ║
║                             ║
║  ✨ AI正在为您生成食谱视频   ║
║                             ║
║  当前进度:                  ║
║  ✅ 分析食材和营养数据       ║
║  ✅ 生成制作步骤             ║
║  🔄 渲染视频画面...          ║
║  ⏳ 添加语音讲解...          ║
║                             ║
║  预计剩余时间30秒          ║
║                             ║
║  [后台生成,可关闭此页面]    ║
╚═════════════════════════════╝

AI视频预览页

┌────────────────────────────────┐
│  < AI视频预览          [保存]  │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【视频播放器】                  │
│  ┌──────────────────────────┐  │
│  │                          │  │
│  │    ▶️  播放视频          │  │
│  │                          │  │
│  │    [00:45 / 02:30]      │  │
│  └──────────────────────────┘  │
│                                │
│  🎬 营养早餐制作教程             │
│  时长2分30秒                   │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【视频内容大纲】                │
│  0:00 营养介绍                  │
│  0:15 食材准备                  │
│  0:45 制作步骤1煮面           │
│  1:15 制作步骤2煎蛋           │
│  1:45 制作步骤3凉拌黄瓜       │
│  2:15 摆盘和营养总结            │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【菜品清单】(可编辑)          │
│  ☑️ 牛奶 120g                   │
│  ☑️ 鸡蛋拌面 215g               │
│  ☑️ 凉拌黄瓜 100g               │
│  [+ 添加其他食物]               │
└────────────────────────────────┘

┌────────────────────────────────┐
│  【上传实拍照片】(可选)         │
│  ┌────┐ ┌────┐ ┌────┐         │
│  │ 📷 │ │ 📷 │ │  + │         │
│  └────┘ └────┘ └────┘         │
└────────────────────────────────┘

┌────────────────────────────────┐
│     [稍后打卡]    [立即提交]    │
└────────────────────────────────┘

AI视频生成技术方案

方案1调用第三方AI视频生成API

推荐服务

  1. Runway Gen-3 - 文本/图片生成视频
  2. HeyGen - AI数字人讲解视频
  3. D-ID - 静态图片转视频+语音
  4. 剪映开放平台 - 自动剪辑API

生成流程

/**
 * AI视频生成流程
 */
async function generateRecipeVideo(postData) {
  // 步骤1准备视频素材
  const materials = {
    images: postData.images, // 饮食照片
    dishes: postData.dishes, // 菜品清单
    nutrition: postData.nutrition, // 营养数据
    steps: generateCookingSteps(postData.dishes) // AI生成制作步骤
  };
  
  // 步骤2生成视频脚本
  const script = await generateVideoScript(materials);
  /*
  script = {
    scenes: [
      {
        duration: 5,
        type: 'intro',
        text: '今天为您介绍一份营养均衡的早餐',
        image: materials.images[0]
      },
      {
        duration: 8,
        type: 'ingredients',
        text: '需要准备牛奶120g、面条90g、鸡蛋120g...',
        image: materials.images[1]
      },
      // ... 更多场景
    ],
    totalDuration: 150 // 2分30秒
  };
  */
  
  // 步骤3调用AI视频生成API
  const videoRequest = {
    scenes: script.scenes.map(scene => ({
      image: scene.image,
      text: scene.text,
      duration: scene.duration,
      voice: 'zh-CN-female-1', // 中文女声
      transition: 'fade' // 淡入淡出过渡
    })),
    bgm: 'light_cooking', // 背景音乐
    resolution: '1080x1920', // 竖屏视频
    format: 'mp4'
  };
  
  const videoUrl = await callVideoGenerationAPI(videoRequest);
  
  // 步骤4保存视频记录
  await saveVideoRecord({
    user_id: postData.user_id,
    post_id: postData.post_id,
    video_url: videoUrl,
    duration: script.totalDuration,
    script_json: JSON.stringify(script)
  });
  
  return {
    video_url: videoUrl,
    duration: script.totalDuration,
    thumbnail: videoRequest.scenes[0].image
  };
}

/**
 * AI生成制作步骤
 */
async function generateCookingSteps(dishes) {
  const prompt = `
    根据以下菜品生成详细的制作步骤:
    ${dishes.map(d => `- ${d.name} ${d.amount}`).join('\n')}
    
    要求:
    1. 步骤简洁明了
    2. 适合肾病患者(低钾低磷)
    3. 包含烹饪技巧
    4. 每个步骤30-60秒
  `;
  
  // 调用GPT/Claude生成步骤
  const steps = await callLLM(prompt);
  
  return steps;
}

成本估算

  • Runway Gen-3$0.05/秒2分30秒视频约$7.5
  • HeyGen$0.03/秒2分30秒视频约$4.5
  • D-ID$0.02/秒2分30秒视频约$3
  • 剪映:$0.01/秒2分30秒视频约$1.5

优化方案

  • 仅高级会员可生成AI视频控制成本
  • 或每日限制生成次数免费用户1次会员5次
  • 视频缓存:相同内容只生成一次
方案2本地模板视频合成

技术方案

  1. 提前制作视频模板(不同菜品类型)
  2. 用户选择后,替换文字和图片
  3. 使用FFmpeg本地合成

优点

  • 成本低无需调用第三方API
  • 速度快本地合成5-10秒
  • 可控性强

缺点

  • 灵活性差(模板固定)
  • 视频质量不如AI生成

实现示例

// 使用FFmpeg合成视频
async function createVideoFromTemplate(template, data) {
  const ffmpegCommand = `
    ffmpeg -i ${template.video} \
      -i ${data.image1} \
      -i ${data.image2} \
      -filter_complex "
        [0:v]drawtext=text='${data.title}':x=50:y=50[v1];
        [v1][1:v]overlay=0:200[v2];
        [v2][2:v]overlay=0:600[out]
      " \
      -map "[out]" \
      output.mp4
  `;
  
  await execAsync(ffmpegCommand);
  return 'output.mp4';
}

推荐方案

阶段1MVP使用方案2模板合成快速上线验证需求
阶段2优化使用方案1AI生成提供更好的用户体验

积分奖励规则

行为 积分 说明
使用一键打卡 +5分 借鉴他人内容并打卡
生成AI视频 +10分 首次生成AI视频奖励
内容被借鉴 +3分 每次被借鉴
内容被借鉴10次 +50分 里程碑奖励(优质内容)
内容被借鉴100次 +500分 超级优质内容

成就徽章

  • 🏅 被借鉴达人内容被借鉴10次以上
  • 👑 食谱大师内容被借鉴100次以上
  • 🎬 AI视频达人生成AI视频10次以上

数据统计

在原创内容下方显示:

┌────────────────────────────────┐
│  📊 内容数据                     │
│  被借鉴128次                   │
│  生成AI视频89次                │
│  帮助了128位慢友                 │
└────────────────────────────────┘

4.8.5 内容推荐算法

推荐Tab算法

推荐策略

推荐分数 = 内容质量分 × 0.4 
         + 用户兴趣分 × 0.3 
         + 时效性分 × 0.2 
         + 多样性分 × 0.1

内容质量分

  • 有配图:+20分
  • 3张图+10分
  • 有营养数据:+15分
  • 字数>50字+10分
  • 点赞数每10个+5分
  • 评论数每5个+10分
  • 收藏数每1个+15分

用户兴趣分

  • 同疾病状态(透析/非透析):+30分
  • 同CKD分期+20分
  • 同餐次(早中晚):+15分
  • 关注的用户:+50分
  • 历史互动过的标签:+10分

时效性分

  • 24小时内100分
  • 1-3天80分
  • 3-7天60分
  • 7天以上40分

多样性分

  • 避免连续推荐同一用户的内容
  • 避免连续推荐同一话题的内容
热门Tab算法

热门分数

热门分数 = (点赞数 × 1 + 评论数 × 5 + 收藏数 × 10) 
         / (发布时间距离现在的小时数 + 2)^1.5

规则

  • 新发布24小时内的内容优先
  • 互动率高的内容优先
  • 收藏权重最高(说明内容有价值)

4.8.6 内容审核机制

自动审核

  1. 敏感词过滤

    • 医疗广告词汇
    • 政治敏感词汇
    • 联系方式(电话、微信号)
  2. 图片审核

    • 调用腾讯云图片审核API
    • 检测违规内容、广告、二维码
  3. 异常检测

    • 短时间大量发布(疑似刷屏)
    • 重复内容发布

人工审核

  • 被举报内容人工复审
  • 热门内容抽查
  • 新用户首次发布审核

处理机制

  • 轻微违规:内容下架+警告
  • 严重违规:封禁账号+删除所有内容
  • 申诉机制:用户可申诉,人工复审

4.8.7 数据库设计

社区内容表community_posts
CREATE TABLE community_posts (
  post_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  check_in_record_id BIGINT, -- 关联的打卡记录ID
  
  -- 内容
  title VARCHAR(100) NOT NULL,
  content TEXT,
  cover_image VARCHAR(255), -- 封面图URL
  images_json TEXT, -- 图片数组JSON
  
  -- 营养数据快照避免join查询
  nutrition_data_json TEXT,
  
  -- 标签和话题
  tags_json TEXT, -- 标签数组
  
  -- 互动统计
  like_count INT DEFAULT 0,
  comment_count INT DEFAULT 0,
  collect_count INT DEFAULT 0,
  share_count INT DEFAULT 0,
  view_count INT DEFAULT 0,
  quick_checkin_count INT DEFAULT 0, -- ⭐新增:被一键打卡次数
  ai_video_count INT DEFAULT 0, -- ⭐新增生成AI视频次数
  
  -- 推荐权重(算法计算)
  recommend_score DECIMAL(10,2) DEFAULT 0,
  hot_score DECIMAL(10,2) DEFAULT 0,
  
  -- 状态
  status VARCHAR(20) DEFAULT 'published', -- draft, published, deleted, banned
  privacy VARCHAR(20) DEFAULT 'public', -- public, followers_only, private
  
  -- 审核
  audit_status VARCHAR(20) DEFAULT 'pending', -- pending, approved, rejected
  audit_time TIMESTAMP,
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  
  INDEX idx_user_id (user_id),
  INDEX idx_status (status),
  INDEX idx_created_at (created_at),
  INDEX idx_recommend_score (recommend_score),
  INDEX idx_hot_score (hot_score)
);
互动记录表community_interactions
CREATE TABLE community_interactions (
  interaction_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  post_id BIGINT NOT NULL,
  
  interaction_type VARCHAR(20) NOT NULL, -- like, comment, collect, share, view
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  
  UNIQUE KEY uk_user_post_type (user_id, post_id, interaction_type),
  INDEX idx_post_id (post_id),
  INDEX idx_user_id (user_id)
);
评论表community_comments
CREATE TABLE community_comments (
  comment_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  post_id BIGINT NOT NULL,
  user_id BIGINT NOT NULL,
  
  content TEXT NOT NULL,
  
  -- 回复关系
  parent_comment_id BIGINT, -- NULL为一级评论
  reply_to_user_id BIGINT, -- @的用户ID
  
  -- 互动统计
  like_count INT DEFAULT 0,
  
  -- 状态
  status VARCHAR(20) DEFAULT 'published', -- published, deleted, banned
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  
  INDEX idx_post_id (post_id),
  INDEX idx_user_id (user_id),
  INDEX idx_parent_comment_id (parent_comment_id)
);
关注关系表community_follows
CREATE TABLE community_follows (
  follow_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  follower_id BIGINT NOT NULL, -- 关注者
  followee_id BIGINT NOT NULL, -- 被关注者
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  
  UNIQUE KEY uk_follower_followee (follower_id, followee_id),
  INDEX idx_follower_id (follower_id),
  INDEX idx_followee_id (followee_id)
);
AI视频生成记录表ai_videos新增
CREATE TABLE ai_videos (
  video_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL,
  post_id BIGINT, -- 关联的社区内容ID如果是从社区内容生成
  check_in_record_id BIGINT, -- 关联的打卡记录ID
  
  -- 视频信息
  video_url VARCHAR(500) NOT NULL, -- 视频URL
  thumbnail_url VARCHAR(500), -- 缩略图URL
  duration INT NOT NULL, -- 视频时长(秒)
  resolution VARCHAR(20) DEFAULT '1080x1920', -- 分辨率
  file_size BIGINT, -- 文件大小(字节)
  
  -- 视频内容
  title VARCHAR(100),
  script_json TEXT, -- 视频脚本JSON场景、文字、时长
  dishes_json TEXT, -- 菜品清单JSON
  nutrition_json TEXT, -- 营养数据JSON
  
  -- 生成信息
  generation_method VARCHAR(20) DEFAULT 'ai', -- ai, template
  ai_provider VARCHAR(50), -- runway, heygen, d-id, jianyng等
  generation_cost DECIMAL(10,4), -- 生成成本(美元)
  generation_time INT, -- 生成耗时(秒)
  
  -- 使用统计
  view_count INT DEFAULT 0, -- 观看次数
  download_count INT DEFAULT 0, -- 下载次数
  share_count INT DEFAULT 0, -- 分享次数
  
  -- 状态
  status VARCHAR(20) DEFAULT 'generating', -- generating, completed, failed
  error_message TEXT, -- 失败原因
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  completed_at TIMESTAMP, -- 生成完成时间
  
  INDEX idx_user_id (user_id),
  INDEX idx_post_id (post_id),
  INDEX idx_status (status),
  INDEX idx_created_at (created_at)
);
一键打卡记录表quick_checkin_records新增
CREATE TABLE quick_checkin_records (
  quick_checkin_id BIGINT PRIMARY KEY AUTO_INCREMENT,
  user_id BIGINT NOT NULL, -- 借鉴者
  source_post_id BIGINT NOT NULL, -- 借鉴的社区内容ID
  source_user_id BIGINT NOT NULL, -- 原创者
  
  -- 借鉴信息
  dishes_json TEXT, -- 借鉴的菜品清单(可能有修改)
  nutrition_json TEXT, -- 营养数据
  is_modified BOOLEAN DEFAULT FALSE, -- 是否修改了菜品清单
  
  -- 打卡信息
  checkin_date DATE NOT NULL, -- 打卡日期
  meal_type VARCHAR(20) NOT NULL, -- breakfast, lunch, dinner
  check_in_record_id BIGINT, -- 生成的打卡记录ID关联check_in_records表
  
  -- AI视频
  ai_video_id BIGINT, -- 生成的AI视频ID
  video_generated BOOLEAN DEFAULT FALSE, -- 是否生成了AI视频
  
  -- 积分奖励
  points_earned INT DEFAULT 0, -- 借鉴者获得的积分
  points_to_author INT DEFAULT 0, -- 原创者获得的积分
  
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  completed_at TIMESTAMP, -- 打卡完成时间
  
  INDEX idx_user_id (user_id),
  INDEX idx_source_post_id (source_post_id),
  INDEX idx_source_user_id (source_user_id),
  INDEX idx_checkin_date (checkin_date)
);

表关系说明

community_posts社区内容
    ↓ 1:N
quick_checkin_records一键打卡记录
    ↓ 1:1
check_in_records打卡记录
    ↓ 1:1
ai_videosAI视频

数据流转

1. 用户在社区看到内容community_posts
2. 点击"一键打卡"创建记录quick_checkin_records
3. 选择生成AI视频ai_videosstatus='generating'
4. AI视频生成完成ai_videosstatus='completed'
5. 用户确认打卡check_in_records
6. 更新一键打卡记录quick_checkin_records.completed_at
7. 原创者获得积分和徽章
8. 更新社区内容统计community_posts被借鉴次数

4.8.8 运营策略

冷启动策略

官方账号内容

  1. 创建10-20个"营养师"官方账号
  2. 提前准备100+优质打卡内容
  3. 模拟真实用户行为(点赞、评论)

种子用户激励

  • 前100名发布用户额外200积分
  • 前1000名发布用户额外50积分
  • 优质内容奖励:官方推荐位+100积分
内容激励

创作者等级

Lv1 新手发布1-10篇
Lv2 达人发布11-50篇
Lv3 专家发布51-100篇
Lv4 大咖发布100+篇 + 平均获赞50+

等级权益

  • Lv2解锁话题创建权限
  • Lv3内容优先推荐
  • Lv4认证标识 + 优先审核 + 流量扶持

每月榜单

  • 最受欢迎创作者(按获赞数)
  • 最勤奋创作者(按发布数)
  • 最佳新人(新注册用户中获赞最多)
  • 榜单奖励:实物礼品 + 荣誉勋章
活动运营

定期话题活动

#21天打卡挑战每月
├─ 连续打卡21天并分享到社区
├─ 参与用户瓜分10000积分池
└─ 前10名额外奖励会员

#晒出你的营养早餐(每周)
├─ 分享早餐打卡+话题标签
├─ 评选最佳早餐TOP10
└─ 奖励积分+荣誉勋章

#透析患者的一日三餐(节日)
├─ 肾脏日、营养日等特殊日期
├─ 征集优质内容评奖
└─ 线下活动邀请

五、视觉设计规范

5.1 配色方案

主色调:橙色系

Primary-50:  #fff7ed
Primary-100: #ffedd5
Primary-200: #fed7aa
Primary-300: #fdba74
Primary-400: #fb923c
Primary-500: #f97316  // 主色
Primary-600: #ea580c
Primary-700: #c2410c

辅助色

Blue:   #3b82f6  // AI功能
Green:  #10b981  // 食物百科
Purple: #8b5cf6  // 营养知识
Red:    #ef4444  // 警告/慎用

中性色

Gray-50:  #f9fafb
Gray-100: #f3f4f6
Gray-200: #e5e7eb
Gray-400: #9ca3af
Gray-600: #4b5563
Gray-900: #111827

5.2 字体规范

用途 大小 粗细 颜色
页面标题 16px 500 Gray-900
区块标题 18px 600 Gray-900
正文 14px 400 Gray-700
辅助文字 12px 400 Gray-500
大数字 24-32px 700 Primary-700

5.3 组件规范

按钮

主按钮

background: linear-gradient(to right, #f97316, #ea580c);
border-radius: 9999px;
height: 48px;
color: white;
box-shadow: 0 4px 6px rgba(249, 115, 22, 0.3);

次按钮

background: white;
border: 2px solid #f97316;
border-radius: 9999px;
height: 48px;
color: #f97316;

卡片

标准卡片

background: white;
border-radius: 16px;
padding: 20px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);

渐变卡片

background: linear-gradient(to bottom right, #f97316, #ea580c);
border-radius: 16px;
padding: 20px;
color: white;

输入框

background: #f9fafb;
border: 1px solid #e5e7eb;
border-radius: 12px;
height: 48px;
padding: 0 16px;

5.4 图标规范

  • 使用Lucide Icons图标库
  • 尺寸16px、20px、24px
  • 颜色:根据场景使用主色或灰色

5.5 间距规范

xs:  4px
sm:  8px
md:  12px
lg:  16px
xl:  20px
2xl: 24px
3xl: 32px

5.6 动画规范

点击缩放

active:scale-95 {
  transform: scale(0.95);
}
transition: transform 0.2s;

悬停放大

hover:scale-110 {
  transform: scale(1.1);
}
transition: transform 0.3s;

六、技术架构

6.1 平台支持

平台 优先级 技术栈 说明
微信小程序 🔴 P0 WXML + WXSS + JS 主要平台
Web端 🟡 P1 React + TypeScript + Tailwind 辅助平台(营养师/PC端
H5 🟢 P2 - 后续考虑
App 🟢 P2 - 后续考虑

6.2 技术选型

微信小程序(当前)

语言JavaScript
框架:原生小程序
UI自定义组件
状态管理Page.data + globalData
存储wx.storage

Web端Figma设计

语言TypeScript
框架React 18
UI库shadcn/ui (Radix UI)
样式Tailwind CSS 3
状态管理useState (SPA)
路由State-based routing

建议方案(多端统一)

方案1Taro 3.x
- 一套代码,多端运行
- React语法
- 支持小程序、H5、App

方案2uni-app
- Vue语法
- 生态成熟
- 插件丰富

方案3独立开发
- 小程序:原生开发(已完成)
- Web基于Figma设计开发
- 优点:性能最优,体验最好
- 缺点:维护成本高

6.3 后端架构(需开发)

API服务
├── 用户服务
│   ├── 用户注册/登录
│   ├── 健康档案管理
│   └── 用户数据同步
│
├── 计算服务
│   ├── eGFR计算
│   ├── 营养需求计算
│   └── 食物交换份计算
│
├── 食谱服务
│   ├── AI食谱生成
│   ├── 食谱推荐
│   └── 食谱收藏
│
├── AI服务
│   ├── 智能问答调用LLM API
│   ├── 食材替换建议
│   └── 烹饪方法生成
│
└── 数据服务
    ├── 食物营养数据库
    ├── 知识库内容
    └── 用户行为分析

6.4 数据库设计

用户表users

user_id, openid, nickname, avatar, gender, 
age, height, weight, has_dialysis, dialysis_type,
creatinine, created_at, updated_at

营养计划表nutrition_plans

plan_id, user_id, egfr, standard_weight, bmi,
ckd_stage, protein_intake, energy_intake,
created_at

食谱表recipes

recipe_id, user_id, meal_type, dishes_json,
total_protein, total_energy, created_at

食物库表foods

food_id, name, category, image, nutrients_json,
caution_level, created_at

对话记录表chat_history

chat_id, user_id, message, sender, created_at

七、核心计算公式(开发必读)

7.1 eGFR计算CKD-EPI公式

/**
 * 计算估算肾小球滤过率eGFR
 * 基于CKD-EPI公式简化版
 */
function calculateEGFR(gender, age, creatinine) {
  // creatinine单位μmol/L需转换为mg/dL
  const creatinineMgDl = creatinine / 88.4;
  
  let egfr;
  if (gender === 'male') {
    egfr = 175 * Math.pow(creatinineMgDl, -1.154) * Math.pow(age, -0.203);
  } else {
    egfr = 175 * Math.pow(creatinineMgDl, -1.154) * Math.pow(age, -0.203) * 0.742;
  }
  
  return parseFloat(egfr.toFixed(2));
}

7.2 标准体重计算

/**
 * 计算标准体重
 * 基于东方人体型标准
 */
function calculateStandardWeight(gender, height) {
  let standardWeight;
  if (gender === 'male') {
    standardWeight = (height - 80) * 0.7;
  } else {
    standardWeight = (height - 70) * 0.6;
  }
  
  return parseFloat(standardWeight.toFixed(1));
}

7.3 BMI计算

/**
 * 计算体重指数BMI
 */
function calculateBMI(weight, height) {
  const heightInMeters = height / 100;
  const bmi = weight / (heightInMeters * heightInMeters);
  
  return parseFloat(bmi.toFixed(1));
}

/**
 * 判断BMI状态
 */
function getBMIStatus(bmi) {
  if (bmi < 18.5) return '过轻';
  if (bmi >= 18.5 && bmi < 25) return '正常';
  if (bmi >= 25 && bmi < 30) return '过重';
  return '肥胖';
}

7.4 CKD分期判断

/**
 * 判断CKD分期
 */
function getCKDStage(egfr, hasDialysis, dialysisType) {
  if (hasDialysis) {
    return dialysisType === 'hemodialysis' 
      ? '透析期(血液透析)' 
      : '透析期(腹膜透析)';
  }
  
  if (egfr >= 90) return 'CKD 1期';
  if (egfr >= 60) return 'CKD 2期';
  if (egfr >= 30) return 'CKD 3期';
  if (egfr >= 15) return 'CKD 4期';
  return 'CKD 5期';
}

7.5 营养需求计算

/**
 * 计算每日蛋白质摄入量g/天)
 */
function calculateProteinIntake(standardWeight, hasDialysis) {
  if (hasDialysis) {
    // 透析期1.0-1.2 g/kg/天
    return parseFloat((standardWeight * 1.2).toFixed(1));
  } else {
    // 非透析期0.6-0.8 g/kg/天
    return parseFloat((standardWeight * 0.8).toFixed(1));
  }
}

/**
 * 计算每日能量摄入量kcal/天)
 */
function calculateEnergyIntake(standardWeight) {
  // 30-35 kcal/kg/天
  return parseFloat((standardWeight * 35).toFixed(0));
}

7.6 食物交换份计算

/**
 * 计算食物交换份
 * 基于《中国食物成分表》和《慢性肾脏病患者膳食指导》
 */
function calculateFoodPortions(proteinIntake, energyIntake) {
  return [
    {
      category: '谷薯50g',
      amount: '50g',
      portions: parseFloat((energyIntake / 200).toFixed(1)) // 示例
    },
    {
      category: '淀粉100g',
      amount: '100g',
      portions: parseFloat((energyIntake / 2000).toFixed(2))
    },
    {
      category: '绿叶蔬菜200g',
      amount: '200g',
      portions: 1
    },
    {
      category: '瓜果蔬菜200g',
      amount: '200g',
      portions: 2
    },
    {
      category: '奶类230g',
      amount: '230g',
      portions: 1
    },
    {
      category: '肉蛋类50/60g',
      amount: '50/60g',
      portions: parseFloat((proteinIntake / 10).toFixed(0))
    },
    {
      category: '油脂类10g',
      amount: '10g',
      portions: parseFloat((energyIntake / 300).toFixed(1))
    }
  ];
}

八、开发计划

8.1 MVP版本v1.0- 已完成

时间:已完成 平台:微信小程序

已实现功能

  • 食谱计算器(表单 + 结果)
  • AI营养师问答
  • 食物百科
  • 营养知识库
  • 个人中心
  • 首页导航

待优化

  • ⚠️ 缺少完整配餐展示
  • ⚠️ AI回复逻辑较简单
  • ⚠️ UI风格需提升

8.2 v2.0版本(当前目标)

时间6-8周 重点融合Figma设计的优秀特性 + 饮食打卡激励系统 + 打卡社区

核心任务

任务 优先级 工时 负责人
完整配餐展示 🔴 P0 3天 -
饮食打卡系统 🔴 P0 5天 -
积分激励系统 🔴 P0 3天 -
打卡社区系统 🔴 P0 10-15天 -
UI视觉升级 🔴 P0 2天 -
AI对话优化 🟡 P1 2天 -
食物库扩充 🟡 P1 2天 -
推送通知功能 🟡 P1 2天 -
用户反馈收集 🟢 P2 1天 -

详细开发任务

任务1完整配餐展示P0

  • 设计配餐数据结构JSON格式
  • 创建配餐卡片组件WXML + WXSS
  • 实现早中晚三餐切换
  • 添加菜品图片(优选高质量图片)
  • 显示食材清单和用量
  • 测试不同设备适配

数据结构设计

// miniprogram/data/meal-plan.js
module.exports = {
  breakfast: {
    name: '早餐',
    time: '7:00 - 8:00',
    icon: '🌅',
    color: 'linear-gradient(to right, #fb923c, #ec4899)',
    dishes: [
      {
        id: 1,
        name: '牛奶',
        image: '/images/foods/milk.jpg',
        ingredients: [
          { name: '牛奶', amount: '120g' }
        ],
        nutrition: {
          protein: 3.6,
          energy: 72
        }
      },
      {
        id: 2,
        name: '鸡蛋拌面',
        image: '/images/foods/egg-noodles.jpg',
        ingredients: [
          { name: '面条', amount: '90g' },
          { name: '鸡蛋', amount: '120g' },
          { name: '葱花', amount: '5g' }
        ],
        nutrition: {
          protein: 15.2,
          energy: 380
        }
      },
      // ...
    ]
  },
  lunch: { /* ... */ },
  dinner: { /* ... */ }
};

任务2UI视觉升级P0

  • 统一配色方案(橙色系)
  • 按钮改为渐变样式
  • 卡片增加阴影和圆角
  • 添加微交互动画
  • 优化字体大小和间距
  • 测试老年用户友好性

任务3AI对话优化P1

  • 扩展关键词匹配规则
  • 增加更多场景的回复模板
  • 优化回复内容结构
  • 添加表情符号和格式化
  • 实现打字动画效果
  • 测试对话流畅度

任务4食物库扩充P1

  • 从公开数据源导入食物数据
  • 补充缺失的营养成分
  • 添加食物图片至少200种
  • 标注适宜性等级
  • 编写食用建议
  • 数据质量审核

任务5饮食打卡系统P0核心功能

前端开发(小程序)

  • 计算结果页增加"采纳并开始打卡"按钮
  • 创建"我的营养计划"页面
    • 营养目标卡片
    • 打卡日历组件
    • 连续打卡天数显示
  • 创建"每日打卡"页面
    • 早中晚Tab切换
    • 推荐菜品复选框列表
    • 实际食用量输入框
    • 照片上传组件3张
    • 备注输入框
    • 营养统计实时计算
  • 创建"打卡成功"页面
    • 积分获得动画
    • 连续打卡提示
    • 营养达标分析
    • 分享功能
  • 创建"饮食记录"页面
    • 打卡历史列表
    • 营养趋势图表
    • 数据筛选(本周/本月)

后端开发API

  • 营养计划表CRUD接口
  • 打卡记录提交接口
  • 打卡记录查询接口
  • 连续打卡计算逻辑
  • 营养达标率计算
  • 打卡数据统计接口
  • 照片上传和存储

数据库设计

  • nutrition_plans表营养计划
  • check_in_records表打卡记录
  • user_points表用户积分
  • points_transactions表积分流水

测试

  • 打卡流程完整测试
  • 连续打卡逻辑测试
  • 断签重置测试
  • 照片上传测试
  • 性能测试1000+打卡记录)

任务6积分激励系统P0核心功能

前端开发

  • 创建"积分中心"页面
    • 积分余额展示
    • 积分明细列表
    • 收入/支出筛选
  • 创建"积分任务"页面
    • 每日任务列表
    • 任务完成进度
    • 任务奖励说明
  • 创建"积分商城"页面
    • 商品分类Tab
    • 商品卡片列表
    • 兑换按钮
    • 兑换确认弹窗
  • 创建"打卡排行榜"页面
    • 本周/本月排行
    • 我的排名
    • 奖励规则说明
  • 首页增加积分入口
  • 个人中心显示积分余额

后端开发

  • 积分获得接口(打卡、照片、分享)
  • 积分消费接口(兑换商品)
  • 积分流水查询接口
  • 连续打卡奖励逻辑
  • 积分排行榜接口
  • 商品兑换记录接口
  • 会员倍率加成逻辑
  • 防作弊检测

积分商城商品配置

  • 配置会员权益商品7天/30天
  • 配置咨询服务商品
  • 配置优惠券商品
  • 实物礼品对接供应商

测试

  • 积分获得正确性测试
  • 积分消费扣减测试
  • 连续打卡奖励测试
  • 兑换流程测试
  • 异常行为检测测试

任务7推送通知功能P1

  • 集成微信小程序订阅消息
  • 配置打卡提醒模板(早中晚)
  • 配置积分到账通知模板
  • 配置连续打卡激励模板
  • 配置断签召回模板
  • 用户订阅设置页面
  • 推送时机策略实现
  • 推送效果数据统计

任务8打卡社区系统P0重磅功能

前端开发(小程序)

  • 创建"社区"Tab底部导航新增
  • 社区广场页面
    • 瀑布流布局左右2列
    • 筛选Tab推荐/最新/关注/热门)
    • 内容卡片组件
    • 下拉刷新、上拉加载
  • 内容详情页
    • 图片轮播组件
    • 营养数据卡片
    • 互动栏(点赞/评论/收藏/分享)
    • 评论列表和输入框
    • 相关推荐
  • 发布页面
    • 选择打卡记录
    • 编辑标题和描述
    • 选择封面图
    • 添加话题标签
    • AI生成建议标题/描述)
    • 隐私设置
  • 用户主页
    • 用户资料卡
    • 数据统计(作品/获赞/粉丝)
    • 成就勋章
    • 作品网格展示
    • 关注/粉丝列表
  • 话题页
    • 话题介绍
    • 话题内容列表
    • 关注话题
  • 评论详情页
    • 一级评论列表
    • 二级回复列表
    • 评论输入框
    • 点赞评论

后端开发API

  • 内容发布接口
  • 内容列表接口(分推荐/最新/关注/热门)
  • 内容详情接口
  • 内容编辑/删除接口
  • 点赞接口(内容/评论)
  • 评论发布接口
  • 评论列表接口
  • 收藏接口
  • 分享接口
  • 关注/取消关注接口
  • 用户主页数据接口
  • 话题列表/详情接口
  • 推荐算法实现
  • 热门算法实现

数据库设计

  • community_posts表社区内容
  • community_interactions表互动记录
  • community_comments表评论
  • community_follows表关注关系
  • community_topics表话题

内容审核

  • 集成腾讯云内容安全API
  • 敏感词过滤
  • 图片审核
  • 举报机制
  • 人工审核后台

算法优化

  • 推荐算法调优
  • 热门算法调优
  • 去重策略
  • 多样性保证

测试

  • 发布流程测试
  • 互动功能测试(点赞/评论/收藏)
  • 推荐算法效果测试
  • 性能测试10000+内容)
  • 审核机制测试

工时估算10-15天

任务9一键打卡 + AI视频生成功能P0重磅功能

前端开发(小程序)

  • 内容详情页增加"一键打卡"按钮
    • 按钮样式设计(渐变色、图标)
    • 点击动画效果
    • 权限判断(是否已打卡)
  • 一键打卡弹窗
    • 选择打卡时间(立即/明天/选择日期)
    • 显示菜品清单(可编辑)
    • 显示营养数据
    • 生成AI视频选项勾选框
    • 确认/取消按钮
  • AI视频生成进度页
    • 进度条动画
    • 生成步骤展示
    • 预计剩余时间
    • 后台生成提示
    • 失败重试机制
  • AI视频预览页
    • 视频播放器
    • 视频大纲展示
    • 菜品清单编辑
    • 实拍照片上传
    • 保存/打卡按钮
  • 我的AI视频列表页
    • 视频缩略图网格
    • 视频时长标识
    • 删除/分享功能
  • 被借鉴统计展示
    • 内容详情页显示被借鉴次数
    • 用户主页显示被借鉴总数
    • 成就徽章展示

后端开发API

  • 一键打卡接口
    • 复制菜品清单到打卡
    • 创建一键打卡记录
    • 积分奖励计算
    • 原创者通知
  • AI视频生成接口
    • 视频脚本生成调用LLM
    • 调用AI视频生成服务
    • 视频状态轮询
    • 视频URL回调
    • 失败重试机制
    • 成本统计
  • AI视频管理接口
    • 视频列表查询
    • 视频详情查询
    • 视频删除接口
    • 视频分享接口
  • 被借鉴统计接口
    • 更新内容被借鉴次数
    • 查询被借鉴排行
    • 徽章解锁判断

AI集成

  • 选择AI视频生成服务商
    • 对比Runway/HeyGen/D-ID/剪映
    • 注册账号和API密钥
    • 测试生成效果和成本
  • 视频脚本生成
    • 集成GPT/Claude API
    • 设计Prompt模板
    • 生成制作步骤
    • 生成配音文本
  • 视频合成流程
    • 图片预处理(裁剪、压缩)
    • 场景时长计算
    • 转场效果设置
    • 背景音乐添加
    • 字幕添加
  • 备选方案:模板视频合成
    • 制作视频模板3-5个常见场景
    • 使用FFmpeg本地合成
    • 文字和图片替换

数据库设计

  • ai_videos表AI视频记录
  • quick_checkin_records表一键打卡记录
  • community_posts表增加字段被借鉴次数、AI视频次数

成本控制

  • 会员权限设置
    • 免费用户每日1次AI视频生成
    • 高级会员每日5次
    • 年度会员:无限次
  • 视频缓存机制
    • 相同内容只生成一次
    • 缓存24小时
  • 成本监控
    • 每日生成次数统计
    • 每日成本统计
    • 超预算预警

测试

  • 一键打卡流程测试
  • AI视频生成测试成功/失败场景)
  • 视频播放测试(不同网络环境)
  • 积分奖励测试
  • 并发测试(多人同时生成)
  • 成本测试(单个视频成本)

工时估算7-10天

8.3 v2.5版本(中期优化)

时间1个月 重点:后端集成 + 数据持久化

核心功能

  • 🔄 用户登录体系
  • 💾 数据云端存储
  • 📊 个人营养报告
  • 🔔 用药/透析提醒
  • 📈 数据趋势分析

8.4 v3.0版本(长期规划)

时间3-6个月 重点真实AI集成 + 多端支持

核心功能

  • 🤖 真实AI调用GPT/Claude API
  • 🌐 Web端开发基于Figma设计
  • 📱 多端统一Taro/uni-app重构
  • 👨‍⚕️ 营养师认证入驻
  • 💰 商业化(会员、咨询服务)

九、运营策略

9.1 推广策略

线上渠道

  1. 微信社群:肾病患者交流群
  2. 公众号推文:营养科普 + 小程序入口
  3. 短视频:抖音/快手科普内容
  4. 医院合作:医生推荐使用

线下渠道

  1. 医院透析中心:海报/传单
  2. 患者教育讲座:现场演示
  3. 营养门诊:医生推荐

9.2 内容运营

每周更新

  • 2-3篇营养知识文章
  • 5-10个新食谱
  • 1个科普视频

节日活动

  • 世界肾脏日3月第二个周四
  • 全国爱肾日5月第二个周四
  • 营养周5月第三周

9.3 用户激励

积分系统

  • 每日登录:+10分
  • 完成计算:+20分
  • 分享食谱:+15分
  • 咨询AI+5分

会员体系

  • 免费版:基础功能
  • 高级版¥29.9/月):
    • 无限次AI咨询
    • 专属营养师
    • 个性化报告
    • 优先客服

十、风险与应对

10.1 技术风险

风险 可能性 影响 应对措施
AI回复不准确 人工审核 + 免责声明
服务器崩溃 负载均衡 + 备份
数据泄露 加密存储 + 权限控制
小程序审核不通过 遵守规范 + 资质齐全

10.2 医疗风险

重要声明

⚠️ 医疗免责声明

本小程序提供的营养计算和建议仅供参考,不构成医疗诊断或治疗建议。

• 计算结果基于通用公式,可能不适用于所有个体
• 具体饮食方案应咨询专业营养师或医生
• 如有任何疑问,请及时就医
• 我们不对因使用本服务而导致的任何后果承担责任

风险控制

  1. 每个页面显眼位置显示免责声明
  2. AI回复统一加上"建议咨询医生"
  3. 不提供药物相关建议
  4. 不诊断疾病

10.3 合规风险

需要的资质

  • 互联网信息服务许可证ICP备案
  • ⚠️ 医疗器械经营许可证(如涉及诊断)
  • ⚠️ 食品经营许可证(如涉及食品销售)

合规措施

  1. 明确产品定位:营养科普工具,非医疗器械
  2. 不诊断疾病、不开药方
  3. 用户协议和隐私政策完善
  4. 内容审核机制

十一、成功指标KPI

11.1 用户指标

指标 v1.0目标 v2.0目标 v3.0目标
注册用户数 1,000 10,000 100,000
日活用户DAU 100 1,000 10,000
月活用户MAU 500 5,000 50,000
用户留存率7日 30% 40% 50%
平均使用时长 3分钟 5分钟 8分钟

11.2 功能指标

指标 v1.0目标 v2.0目标 v3.0目标
计算器使用次数/日 50 500 5,000
AI对话轮次/日 100 1,000 10,000
食谱分享次数/日 10 100 1,000
食物查询次数/日 20 200 2,000

11.3 打卡与积分指标 新增

指标 v2.0目标 v2.5目标 v3.0目标 说明
采纳率 20% 30% 40% 计算结果页点击"采纳并开始打卡"的用户占比
日均打卡用户数 100 500 2,000 每天至少打卡1次的用户数
日均打卡次数 200 1,000 5,000 早中晚打卡总次数
打卡完成率 60% 70% 80% 采纳用户中当天完成至少1餐打卡的比例
连续打卡3天用户数 30 150 600 -
连续打卡7天用户数 10 50 200 核心健康用户
连续打卡30天用户数 2 10 50 超级用户
照片上传率 40% 50% 60% 打卡时上传照片的比例
营养达标率 70% 75% 80% 打卡记录中营养摄入达标90-110%)的比例
日均积分发放 3,000 15,000 60,000 每日发放的积分总量
积分兑换率 15% 20% 25% 获得积分的用户中进行过兑换的比例
兑换次数/日 5 25 100 -
打卡用户留存率7日 50% 60% 70% 打卡用户比普通用户留存率更高
打卡用户活跃度 2x 2.5x 3x 打卡用户DAU/MAU相比普通用户的倍数

重点关注指标

  • 🎯 采纳率:核心转化指标,直接影响打卡用户基数
  • 🎯 连续打卡7天用户数:健康用户指标,是付费转化的关键人群
  • 🎯 打卡用户留存率:验证打卡功能对留存的提升效果

11.4 社区指标 新增

指标 v2.0目标 v2.5目标 v3.0目标 说明
社区内容总量 500篇 5,000篇 50,000篇 累计发布的打卡分享内容
日均内容发布量 10篇 50篇 200篇 每日新增内容数
发布率 10% 15% 20% 打卡用户中分享到社区的比例
日均社区访问用户 200 1,000 5,000 每日访问社区的用户数
人均浏览内容数 5篇 8篇 12篇 每个访问用户平均浏览的内容数
互动率 30% 40% 50% 浏览用户中产生互动(点赞/评论/收藏)的比例
日均点赞数 500 3,000 15,000 每日产生的点赞总数
日均评论数 100 500 2,000 每日产生的评论总数
日均收藏数 50 300 1,500 每日产生的收藏总数
日均分享数 20 100 500 每日分享到微信的次数
内容平均互动数 10 20 50 每篇内容平均获得的互动数(点赞+评论+收藏)
优质内容占比 20% 30% 40% 获得50+点赞的内容占比
关注关系数 200对 2,000对 20,000对 用户之间的关注关系总数
人均关注数 2人 5人 10人 每个用户平均关注的人数
创作者数量 50人 200人 1,000人 发布过至少3篇内容的用户
活跃创作者数 20人 80人 400人 月发布3篇以上的用户
社区用户留存率7日 60% 70% 80% 访问过社区的用户7日留存率
内容审核通过率 95% 96% 97% 自动+人工审核后通过的内容比例

重点关注指标

  • 🎯 发布率:打卡用户愿意分享的比例,体现内容生产能力
  • 🎯 互动率:用户对内容的参与度,体现社区活跃度
  • 🎯 优质内容占比:高质量内容的比例,影响用户留存
  • 🎯 社区用户留存率:验证社区对留存的提升效果

北极星指标

社区健康度 = (日均内容发布量 × 10) 
           + (人均浏览内容数 × 5) 
           + (互动率 × 100)
           + (优质内容占比 × 50)

v2.0目标≥500分
v2.5目标≥2000分
v3.0目标≥8000分

11.5 质量指标

指标 目标值
计算准确率 >99%
AI回复准确率 >90%
用户满意度 >4.5/5
页面加载时间 <2秒
崩溃率 <0.1%

十二、附录

12.1 参考文献

  1. 《慢性肾脏病患者膳食指导》WS/T 557-2017
  2. 《中国食物成分表》第6版
  3. KDIGO慢性肾脏病评估和管理临床实践指南
  4. 中国慢性肾脏病营养治疗临床实践指南
  5. 慢生活365网站http://www.ishen365.com

12.2 名词解释

术语 解释
CKD Chronic Kidney Disease慢性肾脏病
eGFR 估算肾小球滤过率,反映肾功能的指标
BMI Body Mass Index体重指数
血肌酐 肾功能检查的重要指标单位μmol/L
干体重 透析后的理想体重,去除多余水分后的体重
食物交换份 营养等值交换的食物计量单位
优质蛋白 生物价值高、必需氨基酸齐全的蛋白质

12.3 联系方式

产品团队

  • 产品经理:-
  • 技术负责人:-
  • UI设计师-
  • 营养顾问:-

合作联系

  • 邮箱:-
  • 微信:-
  • 电话:-

十三、更新日志

v2.22025-11-20重磅功能上线

核心新增 - AI视频生成 + 一键复制打卡:

1 AI自动生成视频作品 最重要创新

问题

  • 打卡内容以图文为主,传播力弱
  • 用户想分享到抖音/快手,但不会制作视频
  • 缺乏创作成就感,打卡动力不足

解决方案 AI自动生成精美短视频15-30秒

  • 自动处理饮食照片(网格布局、转场效果)
  • 智能展示营养数据(动画进度条、卡片翻转)
  • AI营养师点评文字气泡、打字机效果
  • 自动配背景音乐(轻松欢快风格)
  • 添加品牌水印和二维码

一键分享多平台

  • 分享到微信好友/朋友圈
  • 分享到抖音/快手/视频号
  • 保存到手机相册

技术实现

  • 集成剪映开放平台API
  • 视频分辨率1080×1920竖屏
  • 生成时间15-30秒
  • 文件大小5-8MB

核心价值

  • 📈 传播力提升300%+:视频比图文更有传播力
  • 🎬 降低创作门槛AI自动生成无需任何视频制作技能
  • 💰 低成本获客:视频自带品牌水印,短视频平台自然引流
  • 🎯 增强粘性:打卡变得更有成就感,分享获得点赞

积分激励

  • 生成AI视频+20分
  • 分享视频到微信:+10分
  • 分享视频到抖音/快手:+30分
  • 视频被点赞100++50分
  • 视频被转发50++100分

2 一键复制打卡 体验优化

问题

  • 用户每天吃的饭菜相似,重复打卡麻烦
  • 老用户积累的优质打卡内容无法复用
  • 打卡门槛高,部分用户放弃

解决方案 从历史记录一键复制

  • 点击任意历史打卡记录的"一键复制打卡"
  • 自动复制饮食照片1-3张+ 备注说明
  • 跳转到打卡页,内容自动填充

内容可编辑

  • 照片:可删除、重新选择、添加新照片
  • 备注:可直接修改文字内容
  • 语音:可重新录制语音备注

智能推荐

  • 系统推荐"高分打卡记录"供复制
  • 根据时间(早中晚)智能匹配
  • 一键复制后可选择是否生成视频

核心价值

  • 打卡效率提升90%从3-5分钟减少到30秒
  • 🔄 优质内容复用:高分打卡内容可重复使用
  • 📱 老年友好:简化操作,降低学习成本

积分激励

  • 一键复制打卡:+5分

技术更新

  1. 数据库优化

    • check_in_records 表新增10个视频相关字段
      • video_id视频ID
      • video_url视频CDN地址
      • video_cover_url(视频封面)
      • video_duration(视频时长)
      • video_view_count(观看次数)
      • video_like_count(点赞次数)
      • video_share_count(分享次数)
      • is_video_public(是否公开)
      • copied_from_record_id(复制来源)
      • is_copied(是否为复制的打卡)
  2. 新增页面

    • AI视频生成页生成进度、视频预览、分享功能
    • 一键复制打卡确认页
  3. 积分规则优化

    • 单次打卡最高可得:115分原50分提升130%
    • 新增5种视频相关积分获得方式
  4. 第三方服务集成

    • 剪映开放平台(视频生成)
    • 抖音开放平台(视频分享)
    • 快手开放平台(视频分享)

用户影响

  • 打卡内容可以一键生成精美视频,分享到抖音/快手
  • 历史打卡内容可快速复用,打卡效率大幅提升
  • 积分获取速度提升130%,兑换咨询服务更快
  • 视频传播带来更多新用户,社区更活跃

商业价值

  1. 低成本获客 💰

    • 视频自带品牌水印和二维码
    • 短视频平台流量巨大日活6亿+
    • 用户自发传播CAC获客成本接近0
  2. 提升用户粘性 📈

    • 打卡变得更有趣(生成视频+分享获赞)
    • 一键复制降低门槛,打卡率提升
    • 视频内容可收藏回看,增强情感连接
  3. UGC内容沉淀 🎬

    • 优质UGC视频内容可用于官方营销
    • 打卡视频可成为KOL孵化基础
    • 为未来视频号/抖音/快手矩阵打基础

v2.12025-11-20体验大优化

核心优化 - 三大体验升级:

1 极简打卡流程 最重要

问题:原打卡流程需要勾选菜品、调整用量,操作繁琐,老年用户难以使用。

优化方案

  • 简化输入只需上传照片1-3张+ 备注说明(可选)
  • 语音录入:支持语音备注,自动转文字
  • AI智能识别
    • 自动识别照片中的食物种类
    • 自动估算食物重量
    • 自动计算营养成分(蛋白质、能量、钾、磷、钠)
    • 识别不准可手动修正
  • 操作步骤:拍照 → 说话(可选)→ 提交仅需3步

技术实现

  • 集成腾讯云/百度AI图像识别API
  • 集成语音转文字API
  • AI识别准确率目标>85%

2 AI营养分析报告 核心价值

问题:打卡后只显示简单的营养统计,缺乏深度解读和专业指导。

优化方案

  • 完整报告包含食物清单、营养分析、AI点评、改进建议
  • 可视化图表:营养素达标率进度条,一目了然
  • 通俗易懂AI用老百姓能听懂的话解读营养数据
  • 可下载生成PDF报告可保存/打印/给医生看
  • 可分享:分享到微信好友/朋友圈/社区

报告内容

  1. 饮食照片
  2. AI识别食物清单
  3. 营养成分详细分析(蛋白质、能量、钾、磷、钠)
  4. 营养素详细解读(每个营养素单独说明)
  5. AI营养师点评优点+改进建议)
  6. 下一餐建议
  7. 注意事项提醒

商业价值

  • 专业报告增强用户信任
  • 分享功能带来自然增长
  • 为后续付费咨询铺路

3 积分兑换营养师咨询 商业闭环

问题:积分只能兑换会员/优惠券,消费场景单一,用户积分积累后找不到消费动机。

优化方案

  • 图文咨询100积分

    • 向专业营养师提问
    • 1次提问 + 3次追问
    • 24小时内营养师回复
    • 连续打卡3天即可获得
  • 语音/视频咨询300积分

    • 与营养师实时通话15分钟
    • 可展示照片获得即时反馈
    • 预约制,营养师在线
    • 连续打卡10天即可获得
  • AI不限次咨询50积分

    • 24小时内AI营养师无限次提问
    • AI即时回复无需等待
    • 打卡2天即可获得

完整闭环

打卡赚积分
    ↓
兑换免费咨询
    ↓
向营养师提问
    ↓
获得专业指导
    ↓
改善饮食习惯
    ↓
更好地打卡(更高分、更达标)
    ↓
赚更多积分

商业价值

  • 降低咨询门槛,培养用户付费意愿
  • 高频打卡用户积累积分,自然过渡到付费咨询
  • 营养师回复质量高,促进用户留存和口碑传播

技术实现

  1. 数据库优化

    • check_in_records 表新增字段:

      • photos_json(必填)
      • voice_url(语音备注)
      • ai_recognized_foods_jsonAI识别结果
      • report_idreport_pdf_url(报告)
      • ai_comments_jsonAI点评
      • nutrition_score(营养评分)
    • user_points 表新增字段:

      • free_consult_text_count(图文咨询次数)
      • free_consult_voice_count(语音咨询次数)
    • 新增 nutritionist_consultations 表(营养师咨询记录)

  2. 积分规则优化

    • 新增AI智能分析 +10分
    • 新增:下载营养报告 +5分
    • 新增:分享营养报告 +10分
    • 单次打卡最高可得50分原35分
  3. 页面优化

    • 每日打卡页:极简版(只需拍照+说话)
    • 新增AI营养分析报告页完整专业报告
    • 积分商城:新增营养师咨询兑换选项

用户影响

  • 打卡体验大幅提升,从"繁琐输入"变为"拍照即可"
  • 获得专业营养分析报告,增强产品价值感
  • 积分有了实用消费场景,打卡动力更强
  • 特别适合老年用户(简单易用,语音录入)

v2.02025-11-20重大更新

核心新增功能

  • 🎉 新增:饮食打卡系统 - 采纳配餐建议后每日打卡上传饮食记录
  • 🎁 新增:积分激励系统 - 打卡获得积分,兑换会员/咨询/优惠券
  • 📱 新增:打卡社区系统(类似小红书)
    • 瀑布流展示打卡记录
    • 点赞、评论、收藏、分享
    • 关注/粉丝社交系统
    • 话题标签和推荐算法
    • 用户主页和成就勋章
    • 内容审核和运营机制
  • 📊 新增:营养计划管理 - 创建个人营养计划7天周期管理
  • 📸 新增:饮食照片上传 - 支持每餐上传1-3张照片额外积分奖励
  • 🔥 新增:连续打卡激励 - 3天/7天/30天里程碑奖励
  • 🏆 新增:打卡排行榜 - 本周/本月打卡之星
  • 🛒 新增:积分商城 - 兑换会员、咨询服务、优惠券
  • 🔔 新增:推送通知 - 打卡提醒、积分到账、连续打卡激励

UI/UX优化

  • 新增:完整一日三餐配餐展示(早中晚独立卡片,含食材用量)
  • 新增底部Tab新增"社区"入口
  • 优化UI视觉全面升级参考Figma设计渐变色、卡片阴影、微动画
  • 优化AI对话逻辑更智能关键词匹配、结构化回复

技术架构

  • 新增:详细的视觉设计规范(配色、字体、组件)
  • 新增多端支持规划Web端
  • 新增8张数据库表设计营养计划、打卡记录、积分流水、用户积分、社区内容、互动记录、评论、关注关系
  • 新增:推荐算法和热门算法设计
  • 完善:计算公式和开发文档(连续打卡算法、积分计算算法、推荐算法)

商业化

  • 新增:会员体系(普通/高级/年度,积分倍率加成)
  • 新增:积分变现路径(兑换会员、咨询服务)
  • 新增:用户激励闭环(计算→采纳→打卡→积分→兑换→留存)
  • 新增UGC内容社区为KOL孵化和广告变现打基础

v1.02025-11-05

  • 初版PRD发布
  • 微信小程序前端开发完成
  • 核心功能实现

文档结束


🎯 v2.0核心亮点总结

四大创新功能

  1. 完整配餐展示 🍽️

    • 不仅计算营养数据,还提供每日早中晚三餐的完整菜谱
    • 每道菜包含:菜名、食材清单、用量、图片、营养成分
    • 超越对标网站,提供真正可执行的饮食方案
  2. 饮食打卡系统 📅

    • 采纳配餐建议后,每日打卡上传饮食记录
    • 支持照片上传、备注说明、营养分析
    • 连续打卡激励3/7/30天里程碑奖励
    • 核心价值:形成"计算→采纳→打卡→习惯"的正向闭环
  3. 积分激励系统 🎁

    • 打卡获得积分,照片上传额外奖励
    • 会员倍率加成1.0x/1.5x/2.0x
    • 积分兑换会员、咨询服务、优惠券
    • 商业价值:为付费转化提供数据支撑和用户基础
  4. 打卡社区系统(类似小红书) 📱

    • 瀑布流展示打卡分享内容2列布局
    • 完整的社交系统(点赞/评论/收藏/分享/关注)
    • 智能推荐算法(推荐/最新/关注/热门)
    • 话题标签体系,方便内容发现
    • 用户主页、成就勋章、创作者等级
    • 社交价值将个人打卡记录转化为UGC内容患者之间互相学习和激励
    • 商业价值优质内容吸引新用户为KOL孵化和广告变现打基础

业务价值

维度 价值
用户留存 预计7日留存率从30%→50%打卡用户→60%(社区用户)
用户活跃 打卡用户DAU/MAU是普通用户的2-3倍社区用户是3-4倍
数据价值 积累真实饮食数据+UGC内容优化AI推荐算法
商业转化 连续打卡7天用户是付费转化的关键人群
医疗价值 为医生/营养师提供患者饮食依从性数据
内容价值 UGC内容降低运营成本优质内容吸引新用户注册
社交价值 社交连接增强用户粘性,形成网络效应
品牌价值 打造肾病患者专属社区,建立行业壁垒
变现价值 为KOL孵化、品牌广告、电商导流打基础

开发建议

第一阶段2周:核心功能开发

  • 完整配餐展示
  • 饮食打卡基础功能
  • 积分获得和显示

第二阶段1-2周:完善和优化

  • 积分商城
  • 推送通知
  • 数据分析和排行榜

第三阶段(持续):数据驱动优化

  • 根据打卡数据优化AI推荐
  • 根据兑换数据调整积分价值
  • 根据留存数据优化激励策略

💡 核心洞察本PRD基于Figma设计稿分析和用户需求深度整合重点打造"完整配餐展示 + 饮食打卡 + 积分激励"三位一体的产品体验。通过"看得见(配餐方案)→做得到(每日打卡)→有回报(积分激励)"的闭环设计,解决患者"知道怎么吃但坚持不下来"的核心痛点。

🎯 核心指标采纳率20%、连续打卡7天用户数50人、打卡用户7日留存率50%是v2.0成功的关键指标。

📞 需要帮助? 如有任何问题或建议,欢迎随时联系产品团队。