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

5757 lines
185 KiB
Markdown
Raw Normal View History

# 产品需求文档PRD
## 慢生活智能营养专家 v2.0
---
## 📋 文档信息
| 项目 | 内容 |
|------|------|
| 产品名称 | 慢生活智能营养专家 |
| 版本号 | v2.0 |
| 文档版本 | v2.0.0 |
| 创建日期 | 2025-11-20 |
| 更新日期 | 2025-11-20 |
| 产品定位 | 肾病患者智能营养管理平台 |
| 支持平台 | 微信小程序(主)+ Web端 |
| 参考来源 | 慢生活365网站 + Figma设计稿 |
---
## 一、产品概述
### 1.1 产品愿景
打造国内领先的**肾病患者专属智能营养管理平台**通过科学计算、AI辅助和个性化服务帮助患者实现精准营养管理提高生活质量。
### 1.2 核心价值主张
> **"三分钟获得专属营养方案每日打卡赢积分AI营养师24小时在线"**
- 🎯 **专业**基于国家标准《慢性肾脏病患者膳食指导》2017
- 🤖 **智能**AI驱动的食谱生成和智能问答
- 👨‍⚕️ **个性化**:基于个人健康数据的定制化方案
- 📱 **便捷**:微信小程序,随时随地使用
- 🍽️ **实用**:提供完整一日三餐配餐方案
- 🎁 **激励**:每日饮食打卡赢积分,养成健康饮食习惯
### 1.3 产品定位
**定位**:肾病患者的智能营养助手
**差异化竞争优势**
1.**完整配餐方案**:不仅计算营养数据,还提供每日早中晚三餐的完整菜谱(含食材清单、用量、图片)
2.**饮食打卡激励**:采纳配餐建议后每日打卡上传饮食记录,获得积分奖励,形成正向反馈闭环 ⭐
3.**AI智能交互**AI营养师实时问答支持食物适宜性判断和烹饪建议
4.**视觉设计优秀**现代化UI设计适合中老年用户操作
5.**数据可视化**:健康数据卡片化展示,一目了然
---
## 二、目标用户
### 2.1 用户画像
#### 主要用户群:肾病患者
- **年龄**35-70岁以50-65岁为主
- **疾病分期**
- CKD 1-5期患者
- 血液透析患者
- 腹膜透析患者
- 肾移植术后患者
- **典型场景**
- 首次确诊,不知道怎么吃
- 透析患者需要严格控制饮食
- 想自己学会营养计算
- 需要一日三餐的具体指导
#### 次要用户群:患者家属
- **需求**:为患者准备合适的饮食
- **关注点**:具体菜谱、烹饪方法、食材用量
#### 潜在用户群:营养师/医生
- **需求**:为患者提供营养指导工具
- **关注点**:计算准确性、报告生成
### 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<br>女:(身高-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<br>非透析期:标准体重 × 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营养师点评和建议
- **可下载、可分享**
**技术实现**
```javascript
// 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营养师点评优点+改进建议)
- 下一餐建议
- 注意事项提醒
**技术实现**
```javascript
// 生成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秒
```javascript
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
}
};
```
2. **AI视频生成API调用**
```javascript
/**
* 调用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}`
});
}
```
3. **第三方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/ |
**推荐方案**:剪映开放平台(与抖音深度集成,生成的视频可直接分享到抖音)
4. **视频分享功能**
```javascript
// 分享到微信好友
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
```sql
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
```sql
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
```sql
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
```sql
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
```sql
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连续打卡判断
```javascript
/**
* 判断是否连续打卡
* @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营养达标率计算
```javascript
/**
* 计算营养达标率
* @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积分计算
```javascript
/**
* 计算单次打卡获得的积分
*/
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天 | "好久不见!继续打卡赢积分吧 🎁" | 召回用户 |
##### 推送模板
```javascript
// 早餐提醒
{
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分
```
**技术实现**
```javascript
/**
* 判断打卡详情页的场景
*/
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
**生成流程**
```javascript
/**
* 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生成
**实现示例**
```javascript
// 使用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算法
**推荐策略**
```javascript
推荐分数 = 内容质量分 × 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算法
**热门分数**
```javascript
热门分数 = (点赞数 × 1 + 评论数 × 5 + 收藏数 × 10)
/ (发布时间距离现在的小时数 + 2)^1.5
```
**规则**
- 新发布24小时内的内容优先
- 互动率高的内容优先
- 收藏权重最高(说明内容有价值)
#### 4.8.6 内容审核机制
**自动审核**
1. **敏感词过滤**
- 医疗广告词汇
- 政治敏感词汇
- 联系方式(电话、微信号)
2. **图片审核**
- 调用腾讯云图片审核API
- 检测违规内容、广告、二维码
3. **异常检测**
- 短时间大量发布(疑似刷屏)
- 重复内容发布
**人工审核**
- 被举报内容人工复审
- 热门内容抽查
- 新用户首次发布审核
**处理机制**
- 轻微违规:内容下架+警告
- 严重违规:封禁账号+删除所有内容
- 申诉机制:用户可申诉,人工复审
#### 4.8.7 数据库设计
##### 社区内容表community_posts
```sql
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
```sql
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
```sql
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
```sql
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⭐新增
```sql
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⭐新增
```sql
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 组件规范
#### 按钮
**主按钮**
```css
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);
```
**次按钮**
```css
background: white;
border: 2px solid #f97316;
border-radius: 9999px;
height: 48px;
color: #f97316;
```
#### 卡片
**标准卡片**
```css
background: white;
border-radius: 16px;
padding: 20px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
```
**渐变卡片**
```css
background: linear-gradient(to bottom right, #f97316, #ea580c);
border-radius: 16px;
padding: 20px;
color: white;
```
#### 输入框
```css
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 动画规范
**点击缩放**
```css
active:scale-95 {
transform: scale(0.95);
}
transition: transform 0.2s;
```
**悬停放大**
```css
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**
```sql
user_id, openid, nickname, avatar, gender,
age, height, weight, has_dialysis, dialysis_type,
creatinine, created_at, updated_at
```
**营养计划表nutrition_plans**
```sql
plan_id, user_id, egfr, standard_weight, bmi,
ckd_stage, protein_intake, energy_intake,
created_at
```
**食谱表recipes**
```sql
recipe_id, user_id, meal_type, dishes_json,
total_protein, total_energy, created_at
```
**食物库表foods**
```sql
food_id, name, category, image, nutrients_json,
caution_level, created_at
```
**对话记录表chat_history**
```sql
chat_id, user_id, message, sender, created_at
```
---
## 七、核心计算公式(开发必读)
### 7.1 eGFR计算CKD-EPI公式
```javascript
/**
* 计算估算肾小球滤过率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 标准体重计算
```javascript
/**
* 计算标准体重
* 基于东方人体型标准
*/
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计算
```javascript
/**
* 计算体重指数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分期判断
```javascript
/**
* 判断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 营养需求计算
```javascript
/**
* 计算每日蛋白质摄入量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 食物交换份计算
```javascript
/**
* 计算食物交换份
* 基于《中国食物成分表》和《慢性肾脏病患者膳食指导》
*/
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
- [ ] 实现早中晚三餐切换
- [ ] 添加菜品图片(优选高质量图片)
- [ ] 显示食材清单和用量
- [ ] 测试不同设备适配
**数据结构设计**
```javascript
// 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_json`AI识别结果
- `report_id``report_pdf_url`(报告)
- `ai_comments_json`AI点评
- `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成功的关键指标。
> 📞 **需要帮助?** 如有任何问题或建议,欢迎随时联系产品团队。