# 产品需求文档(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
女:(身高-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营养师点评和建议 - **可下载、可分享** **技术实现**: ```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.5:AI营养分析报告页 ⭐⭐⭐新增核心页面 **入口**: 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.6:AI视频生成页 ⭐⭐⭐核心创新功能 **入口**: 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} 视频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:选择打卡时间】 弹窗确认: ○ 立即打卡(今天) ○ 明天打卡 ○ 加入计划(选择日期) ↓ 【步骤3:AI视频生成】 显示加载动画:"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'; } ``` **推荐方案**: **阶段1(MVP)**:使用方案2(模板合成),快速上线验证需求 **阶段2(优化)**:使用方案1(AI生成),提供更好的用户体验 **积分奖励规则**: | 行为 | 积分 | 说明 | |-----|------|------| | 使用一键打卡 | +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_videos(AI视频) ``` **数据流转**: ``` 1. 用户在社区看到内容(community_posts) 2. 点击"一键打卡"创建记录(quick_checkin_records) 3. 选择生成AI视频(ai_videos,status='generating') 4. AI视频生成完成(ai_videos,status='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 ``` #### 建议方案(多端统一) ``` 方案1:Taro 3.x - 一套代码,多端运行 - React语法 - 支持小程序、H5、App 方案2:uni-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: { /* ... */ } }; ``` #### 任务2:UI视觉升级(P0) - [ ] 统一配色方案(橙色系) - [ ] 按钮改为渐变样式 - [ ] 卡片增加阴影和圆角 - [ ] 添加微交互动画 - [ ] 优化字体大小和间距 - [ ] 测试老年用户友好性 #### 任务3:AI对话优化(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.2(2025-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.1(2025-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.0(2025-11-20)⭐⭐⭐重大更新 **核心新增功能**: - 🎉 **新增:饮食打卡系统** - 采纳配餐建议后每日打卡上传饮食记录 - 🎁 **新增:积分激励系统** - 打卡获得积分,兑换会员/咨询/优惠券 - 📱 **新增:打卡社区系统(类似小红书)** ⭐⭐⭐ - 瀑布流展示打卡记录 - 点赞、评论、收藏、分享 - 关注/粉丝社交系统 - 话题标签和推荐算法 - 用户主页和成就勋章 - 内容审核和运营机制 - 📊 **新增:营养计划管理** - 创建个人营养计划,7天周期管理 - 📸 **新增:饮食照片上传** - 支持每餐上传1-3张照片,额外积分奖励 - 🔥 **新增:连续打卡激励** - 3天/7天/30天里程碑奖励 - 🏆 **新增:打卡排行榜** - 本周/本月打卡之星 - 🛒 **新增:积分商城** - 兑换会员、咨询服务、优惠券 - 🔔 **新增:推送通知** - 打卡提醒、积分到账、连续打卡激励 **UI/UX优化**: - ✅ 新增:完整一日三餐配餐展示(早中晚独立卡片,含食材用量) - ✅ 新增:底部Tab新增"社区"入口 - ✅ 优化:UI视觉全面升级,参考Figma设计(渐变色、卡片阴影、微动画) - ✅ 优化:AI对话逻辑更智能(关键词匹配、结构化回复) **技术架构**: - ✅ 新增:详细的视觉设计规范(配色、字体、组件) - ✅ 新增:多端支持规划(Web端) - ✅ 新增:8张数据库表设计(营养计划、打卡记录、积分流水、用户积分、社区内容、互动记录、评论、关注关系) - ✅ 新增:推荐算法和热门算法设计 - ✅ 完善:计算公式和开发文档(连续打卡算法、积分计算算法、推荐算法) **商业化**: - ✅ 新增:会员体系(普通/高级/年度,积分倍率加成) - ✅ 新增:积分变现路径(兑换会员、咨询服务) - ✅ 新增:用户激励闭环(计算→采纳→打卡→积分→兑换→留存) - ✅ 新增:UGC内容社区,为KOL孵化和广告变现打基础 ### v1.0(2025-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成功的关键指标。 > 📞 **需要帮助?** 如有任何问题或建议,欢迎随时联系产品团队。