Files
kitchen/docs/dev/UNFINISHED_FEATURES.md
2026-04-17 07:00:26 +08:00

24 KiB
Raw Blame History

📋 未完成功能清单

创建: 2026-04-09 | 更新: 2026-04-16 v0.97.14 | 优先级: P1=核心 P2=重要 P3=增强 | 优先级值1-5(5=最高)


📊 总体进度

阶段 任务 完成 状态
三:热量追踪+营养分析 7 7 100%
四:购物清单 5 5 100%
十二:社交+通知增强 4 2 50% 🟡
十三AI+规划高级功能 4 4 100%
十四:接口能力挖掘 8 8 100%
十五:后端接口增强 6 0 0% 🔴
十六:用户体验优化+Bug修复 7 7 100%
十七紧急Bug修复 14 14 100%
十九综合Bug修复+功能增强 18 18 100%
二十:用户体验优化+交互增强 7 7 100%
二十一:菜谱详情页功能增强 1 1 100%
二十二Picid功能Bug修复 2 2 100%
二十三:数据管理中心 3 2 67% 🟡
二十四:笔记+浏览记录功能 2 2 100%
二十六API v3.2.0迁移 5 5 100%
二十七首页Discover瀑布流 8 8 100%
二十八:瀑布流渐进式渲染+分页 3 3 100%
二十九:菜品详情页功能完善 9 9 100%
三十:发现页口味/工艺筛选 3 3 100%
三十一:搜索功能修复与高级搜索 3 3 100%
三十二:主题色全局生效修复 1 1 100%
三十三全局UI统一 4 4 100%
三十四:食材详情本地缓存+缓存管理 2 2 100%
三十五:食材详情页闪退修复 1 1 100%
三十六21项功能批量实现 21 21 100%
三十七:目录结构整理+导入路径修复 8 8 100%
三十八UI布局优化+缓存修复 4 4 100%
三十九:迷你卡片功能 14 14 100%
四十:收藏页面功能增强 7 7 100%
四十一:代码质量审计+修复 🔴
合计 234 224 96%

🔴 未完成任务汇总

按优先级排序,仅列出未完成任务

序号 阶段 任务 优先级 优先级值 说明
1 十五 👤 用户注册登录 P1 5 需后端支持当前暂不开发ProfileController.login()为模拟实现)
2 十五 💾 收藏云端同步 P1 4 需后端支持
3 十二 🔔 烹饪提醒通知 P2 3 定时提醒烹饪步骤,需 flutter_local_notifications
4 二十三 ⚠️ 过敏原智能过滤 P2 3 搜索/推荐时自动过滤含用户过敏原的菜品
5 十五 💬 评论系统 P2 3 需后端支持
6 十五 🔔 消息推送 P2 2 需后端支持
7 十五 📜 浏览历史同步 P2 2 需后端支持
8 十五 📝 菜谱上传 P2 2 需后端支持
9 十四 🔗 社交分享增强 P3 2 分享链接+热度标签+社交平台
10 十二 📸 拍照记录 P3 2 烹饪笔记支持拍照上传

🚨 代码质量审计(浑水摸鱼清单)

以下功能声称已完成,但实际存在实现缺陷、架构不一致或核心逻辑缺失 更新时间: 2026-04-16 | 审计范围: lib/src 全量扫描

🔴 严重问题:核心功能未实现/安全漏洞

# 文件 问题 严重度 修复方案
1 email_service.dart 🚨安全漏洞SMTP密码硬编码在源码中520kiss123),两条线路均暴露,任何人都可从代码获取邮箱凭据 🔴🔴极高 迁移到后端代理发送或使用环境变量/加密存储
2 profile_controller.dart 🚨模拟登录login() 方法完全伪造,硬编码 user_id='user_123'name='Test User'、头像为字节跳动API链接无任何真实认证逻辑 🔴🔴极高 等后端API就绪后重写当前应标注为"演示模式"
3 bedtime_reminder_controller.dart 就寝提醒通知核心功能未实现,仅保存设置,TODO标记实际通知逻辑,且 flutter_local_notifications 未在 pubspec.yaml 中声明依赖 🔴 添加 flutter_local_notifications 依赖 + 实现通知逻辑
4 recommendation_service.dart 死代码RecommendationServiceGetxService 但从未在 AppBinding 中注册,永远不会被初始化;_viewedRecipeIds 始终为空列表,recordView() 方法从未被调用 🔴 在 AppBinding 注册 + 接入 BrowseHistoryController 真实数据 + 在 RecipeDetailController._recordBrowseHistory() 中同步调用
5 chat_page.dart (FeedbackPage) 意见反馈页面仅为UI模拟_send() 方法只添加假回复消息"感谢您的反馈",无实际提交逻辑,用户反馈数据完全丢失 🔴 接入 EmailService 邮件发送或后端API提交反馈

🟡 中等问题:架构不一致

# 文件 问题 严重度 修复方案
6 allergen_checker_page.dart 直接使用 Dio() 发起HTTP请求获取 gmy.json绕过 ApiService/Repository 层 🟡 改用 RecipeRepository 或 ApiService 统一请求
7 eating_times_page.dart 直接使用 Dio() 发起HTTP请求获取 eating_times.json绕过 ApiService/Repository 层 🟡 改用 RecipeRepository 或 ApiService 统一请求
8 meal_time_recommend_page.dart 直接使用 Dio() 发起HTTP请求绕过 ApiService/Repository 层 🟡 改用 RecipeRepository 或 ApiService 统一请求
9 browse_history_controller.dart 使用 SharedPreferences 存储浏览历史,与项目统一使用 HiveService 的规范不一致 🟡 迁移到 HiveService 统一数据层
10 email_history_controller.dart 使用 SharedPreferences 存储邮件记录,与项目统一使用 HiveService 的规范不一致 🟡 迁移到 HiveService 统一数据层
11 cooking_note_controller.dart 双重存储混乱:同时使用 HiveService + SharedPreferences逻辑复杂且冗余 🟡 统一使用 HiveService移除 SharedPreferences 备份逻辑
12 31处路由硬编码 31处使用 Get.toNamed('/xxx') 硬编码路由字符串,未使用 AppRoutes.xxx 常量 🟡 批量替换为 AppRoutes 常量引用
13 14处非标准导航 14处使用 Get.to(() => XxxPage()) 直接构造页面,未走路由系统 🟡 改为 Get.toNamed(AppRoutes.xxx) 统一导航

🟡 中等问题:代码规范

# 文件 问题 严重度 修复方案
14 57个文件 385处 debugPrint() 调用,应使用 LoggerService 统一日志 🟡 批量替换为 AppLogger
15 ingredient_detail_page.dart 1853行严重超标AGENTS.md规定≤1000行 🟡 拆分为多个子组件
16 safe_period_calculator_page.dart 1165行超标 🟡 拆分计算逻辑和UI
17 favorites_page.dart 1155行超标 🟡 已拆分 builders/tools_panel继续拆分
18 mini_card_page.dart 1154行超标 🟡 拆分缓存/搜索/网格视图逻辑
19 date_calculator_page.dart 1144行超标 🟡 拆分两种计算模式为独立组件
20 cache_manage_page.dart 1095行超标 🟡 按缓存类型拆分子组件
21 app_routes.dart 1076行超标 🟡 路由定义与页面注册分离
22 recipe_repository.dart 1062行超标 🟡 按API文件拆分为多个 Repository
23 search_page.dart 1017行超标 🟡 拆分搜索结果/历史/建议子组件
24 recipe_model.dart 1010行超标 🟡 拆分统计/评分/营养子模型

状态更正:已实现但文档标记为"待开发"

以下功能代码已完整实现,但旧版文档错误标记为"待开发"

# 功能 文件 代码行数 实现状态 旧文档状态
1 🍳 烹饪模式 cooking_mode_page.dart 545行 完整实现(全屏步骤浏览+计时器+防息屏+完成动画) 标记为"待开发"
2 📱 二维码海报 recipe_qr_poster.dart ~280行 完整实现QR生成+海报渲染+截图保存+弹窗展示) 标记为"待开发"
3 📅 每日菜单规划 daily_menu_page.dart 520行 完整实现(三餐生成+手动调整+营养汇总+本地持久化) 标记为"待开发"

🟢 已有API可直接开发的功能

以下功能后端API已就绪仅需前端开发

第一梯队:极小工作量(改参数/加UI

# 功能 API接口 页面位置 工作量 状态
1 🏆 评分排行榜 api_hot.php?sort=rate 热门排行页 v0.92.0
2 🌐 IP状态显示 api_action.php?act=ip_status 菜品详情页 v0.92.0
3 🔍 排除筛选 api_filter.php?act=filter_recipes exclude_*参数 高级搜索页 v0.92.0
4 📋 食谱子分类 api_filter.php?act=recipe_sub_categories&parent_id= 分类浏览页 v0.92.0
5 🔢 编码/模糊查询 api_what_to_eat.php?act=detail&code=/title= 搜索页 v0.92.0

第二梯队:小工作量(新页面+API调用

# 功能 API接口 页面位置 工作量 状态
6 🕐 用餐时段推荐 api_filter.php?act=meal_times 首页/工具中心 v0.92.0
7 ⚠️ 过敏原警示 api.php?act=full allergens字段 菜品详情页 v0.92.0
8 🏷️ 分类标签联动 api_filter.php?act=category_tags&category_id= 分类浏览/高级搜索 v0.92.0
9 🥗 食材分类浏览 api_filter.php?act=ingredient_main_categories/sub_categories 发现页/工具中心 v0.92.0
10 🎲 筛选步骤引导 api_what_to_eat.php?act=filter_steps 今天吃什么 v0.92.0
11 🥗 食材对应菜品 api_filter.php?act=ingredient_recipes&ingredient_id= 食材详情页 v0.92.0
12 🔍 食材筛选 api_filter.php?act=filter_ingredients 高级搜索页 v0.92.0

第三梯队:中等工作量(需可视化组件/逻辑重构)

# 功能 API接口 页面位置 工作量 状态
13 📊 营养可视化 api.php?act=full nutrition字段 菜品详情页/营养中心 v0.92.0
14 📱 迷你信息加载 api.php?act=mini 列表页/卡片 v0.92.0
15 🏷️ 统一格式输出 api.php?act=unified_list/detail/hot type=ingredient 食材相关页面 待开发
16 🏋️ 健身餐推荐 api_filter.php?act=filter_recipes nutrition_min/max 工具中心/发现页 v0.92.0
17 📋 过敏原报告 api.php?act=full allergens + gmy.json 菜品详情页 v0.92.0
18 🔎 查重检测 api_check_duplicate.php 5种act 菜谱上传/管理 v0.92.0

🟡 需组合API开发的功能

需要多个已有API组合或需前端复杂逻辑

# 功能 所需API 页面位置 工作量 状态
1 🧠 智能推荐 api_feed.php?act=recommend + api_filter.php + 用户偏好 首页 🟡框架已有数据层需修复RecommendationService未注册
2 📅 每日菜单规划 api_what_to_eat.php?act=filter_apply × 3次 + eating_times.json 工具中心 v0.97.x
3 📱 二维码海报 api.php?act=detail code字段 + qr库 菜品详情页 v0.97.x
4 🔗 社交分享增强 api.php?act=detail code字段 + api_hot.php statistics 菜品详情页 待开发
5 🥗 食材营养详情 api.php?act=ingredient_detail + nutrition_types.json 食材详情页 v0.92.0
6 🔄 食材替代建议 api_filter.php?act=filter_recipes ingredient参数 + gmy.json 食材详情页 v0.92.0
7 📈 营养目标追踪 api.php?act=full nutrition × 多菜谱 + nutrition_types.json 营养中心 v0.92.0
8 📊 运营数据大屏 stats_full.php stats/online/request/hot 管理后台 v0.92.0
9 🔄 相关菜谱推荐 api.php?act=list cate_id + tag_id 组合查询 菜品详情页 v0.92.0
10 🍳 烹饪模式 api.php?act=full content字段 + 计时器 菜品详情页 v0.97.x

🔴 需后端新开发API

以下功能当前后端无对应接口,需后端开发

# 功能 建议接口 优先级 说明 可替代方案
1 👤 用户注册登录 api_user.php P1 暂不开发
2 💾 收藏云端同步 api_favorite.php P1 多设备同步 当前本地Hive存储
3 💬 评论系统 api_comment.php P2 CRUD+分页+审核
4 🔔 消息推送 api_message.php P2 推送+站内信 后续可能用邮箱
5 📜 浏览历史同步 api_history.php P2 CRUD+分页 当前本地存储
6 📝 菜谱上传 api_recipe.php P2 表单+图片上传+审核
7 🔍 搜索建议/补全 api.php?act=suggest&keyword= P3 前缀匹配+热门词 本地搜索历史替代
8 📊 用户营养目标 api_nutrition.php P3 CRUD+每日统计 当前本地GoalSettingPage
9 🏆 用户成就系统 api_achievement.php P3 经验值+等级+徽章
10 📝 烹饪笔记同步 api_note.php P2 CRUD+分页 当前本地Hive存储
11 🛒 购物清单同步 api_shopping.php P2 CRUD 当前本地存储
12 每周菜单存储 api_menu.php P2 CRUD+日期范围 当前本地持久化
13 🔄 相关菜谱推荐 api.php?act=related&id= P2 基于分类+标签+食材相似度 已用现有API组合替代

🎯 开发路线图2026-04-16 更新)

第一阶段:安全+核心功能修复(紧急)

修复安全漏洞和浑水摸鱼问题,确保已声称完成的功能真正可用

顺序 任务 问题 修复方案 优先级值
1 🚨 SMTP密码泄露 email_service.dart 硬编码 520kiss123 迁移到后端代理发送或使用环境变量/加密存储 5
2 <EFBFBD> 模拟登录标注 profile_controller.dart login()为假实现 标注为"演示模式",隐藏登录入口或添加提示 5
3 <EFBFBD>🔔 就寝提醒通知 核心通知逻辑未实现 + 缺少依赖 添加 flutter_local_notifications + 实现通知逻辑 5
4 🧠 推荐服务修复 RecommendationService 未注册 + 数据层为空 在 AppBinding 注册 + 接入 BrowseHistoryController + 在 _recordBrowseHistory() 中同步调用 4
5 📧 意见反馈提交 仅UI模拟无提交逻辑 接入 EmailService 邮件发送反馈内容 4

第二阶段:架构统一(重要)

统一架构规范,消除技术债

顺序 任务 范围 修复方案 优先级值
6 🌐 3个页面绕过ApiService allergen_checker/eating_times/meal_time_recommend 直接用Dio 改用 ApiService 统一请求 3
7 💾 存储层统一 browse_history/email_history/cooking_note 使用 SharedPreferences 迁移到 HiveService 统一数据层 3
8 🔗 路由硬编码统一 31处硬编码路由字符串 批量替换为 AppRoutes 常量 3
9 🧭 导航方式统一 14处 Get.to() 直接构造页面 改为 Get.toNamed() 3
10 📝 日志统一 57文件385处 debugPrint 替换为 AppLogger 2
11 📁 超大文件拆分 10个文件超1000行 按功能拆分子组件 2

第三阶段:功能补全

补全缺失功能,提升用户体验

顺序 功能 价值 工作量 API状态
12 ⚠️ 过敏原智能过滤 搜索/推荐自动过滤过敏原菜品 数据已有
13 🔔 烹饪提醒通知 烹饪步骤定时提醒 本地通知
14 🔗 社交分享增强 分享链接+热度标签 数据已有
15 🏷️ 统一格式输出 食材数据标准化 API已可用
16 📸 拍照记录 烹饪笔记拍照上传 本地存储

第四阶段:深度功能(需后端配合)

以下功能需后端API支持当前暂不开发

顺序 功能 价值 前置条件
17 👤 用户注册登录 核心用户体系 需后端 api_user.php
18 💾 收藏云端同步 多设备同步 需后端 api_favorite.php
19 💬 评论系统 社区互动 需后端 api_comment.php
20 📝 菜谱上传 UGC内容 需后端 api_recipe.php

📊 项目代码统计

基于 2026-04-16 代码库全量扫描

指标 数量
页面文件 (Page) 56
控制器 (Controller) 23
服务 (Service) 20
仓库 (Repository) 8
模型 (Model) 15+
Widget组件 40+
路由数 40+
debugPrint调用 385处/57文件
超大文件(>1000行) 10个
硬编码路由字符串 31处
非标准导航(Get.to) 14处
绕过ApiService直接用Dio 3个页面
硬编码密码/凭据 1个文件email_service.dart
未注册的GetxService 1个RecommendationService
模拟实现的核心功能 2个ProfileController.login / FeedbackPage._send

超大文件清单(需拆分)

文件 行数 建议拆分方案
ingredient_detail_page.dart 1853 拆分:营养信息/替代建议/相关菜谱/缓存管理 子组件
safe_period_calculator_page.dart 1165 拆分:日历法/体温法/粘液法 独立组件
favorites_page.dart 1155 继续拆分:搜索栏/统计栏/导出功能
mini_card_page.dart 1154 拆分:缓存管理/搜索/网格视图
date_calculator_page.dart 1144 拆分:日期加减/日期间隔 两个独立页面
cache_manage_page.dart 1095 按缓存类型拆分子组件
app_routes.dart 1076 路由常量与页面注册分离
recipe_repository.dart 1062 按API文件拆分api.php / api_filter.php / api_check_duplicate.php
search_page.dart 1017 拆分:搜索结果/历史记录/搜索建议
recipe_model.dart 1010 拆分RecipeStatistics / RecipeRating / RecipeNutrition 子模型

存储层不一致清单

控制器/服务 当前存储方式 应统一为
BrowseHistoryController SharedPreferences HiveService
EmailHistoryController SharedPreferences HiveService
CookingNoteController HiveService + SharedPreferences 双写 HiveService移除SP备份
FavoritesController HiveService
ShoppingListController HiveService
WeeklyMenuController HiveService
MealRecordController HiveService
BedtimeReminderController HiveService
UserService SharedPreferences 可保留仅存一个UUID

已完成阶段(精简记录)

阶段四十一菜品详情页交互优化v0.97.14

  • 🥬 食材卡片跳转IngredientDiscoverCard 点击跳转食材详情页
  • ⚖️ 克数快捷按钮:饮食记录弹窗新增 100g/200g/300g 常用量快捷填入
  • 📝 营养快捷记录RecipeMealRecordSheet 底部弹窗(份量比例/自定义克数/用餐时段/实时营养预览)
  • 👍 点赞按钮上移:从底部操作栏移至标题区域
  • ❤️ 收藏图片修复FeedItemModel 新增 picId 字段RecipeImage 三级 fallback
  • 🐛 搜索页崩溃修复setState during build 问题

阶段三十九迷你卡片功能v0.92.8

  • 🃏 迷你卡片页面Tinder风格左右滑动浏览菜品
  • 📊 数据模型 MiniCardModel341道菜11个分类
  • 🔍 分类筛选+搜索+网格视图
  • ❤️ 收藏集成+喜欢/不喜欢记录
  • 💾 本地缓存+缓存优先加载
  • 🪟 液态玻璃效果+全屏图片查看器
  • 📤 分享按钮share_plus
  • 🏠 首页瀑布流插入迷你卡片1:20比例
  • 🔗 路由参数支持initialRecipeId
  • 🔄 MiniCardService 独立数据服务

阶段四十收藏页面功能增强v0.92.9

  • 🔍 搜索功能:按标题/简介/分类搜索
  • 📊 统计信息展示:总数及各类型数量
  • 📤 导出功能JSON/CSV 格式
  • 🔒 类型安全改进
  • 🪟 GlassContainer 统一毛玻璃效果

阶段三十六21项功能批量实现

  • 🏆 评分排行榜 / 🌐 IP状态显示 / 🔍 排除筛选 / 📋 食谱子分类
  • 🔢 编码/模糊查询 / 🕐 用餐时段推荐 / ⚠️ 过敏原警示
  • 🏷️ 分类标签联动 / 🎲 筛选步骤引导 / 📊 营养可视化
  • 📱 迷你信息加载 / 🏋️ 健身餐推荐 / 📋 过敏原报告
  • 🔎 查重检测 / 🎯 今天吃什么增强 / 🔄 食材替代建议
  • 🍽️ 相似菜品推荐 / 🍽️ 食材相关菜谱 / 📈 运营数据大屏
  • 📈 数据管理中心增强 / 🔧 flutter analyze零错误

阶段三十七:目录结构整理+导入路径修复

  • 📁 lib/src目录重组 / 🔧 导入路径更新 / 🧹 BOM字符清理
  • 🐛 类型错误修复 / 🧹 未使用代码清理 / 📊 flutter analyze零错误

阶段三十八UI布局优化+缓存修复

  • 📱 收藏页面网格布局 / 🛠️ 工具中心增强
  • 💾 食材缓存修复 / 🔗 缓存管理页面跳转修复

📊 API接口使用状态一览

基于 API_DOC.md v3.2.0 + APP_GUIDE.md v2.9.0,更新于 v0.97.14

已使用接口

接口文件 Repository 已用act
api.php RecipeRepository list/detail/full/ingredients/ingredient_detail/search/categories/tags/stats/unified_list/unified_detail/unified_search/unified_hot/query/mini
api_action.php ActionRepository like/rate/view/ip_status
api_feed.php FeedRepository recommend/latest/hot/prefetch
api_filter.php RecipeRepository+SearchController recipe_main_categories/taste_tags/cooking_tags/filter_recipes/global_search/meal_times/recipe_sub_categories/ingredient_main_categories/ingredient_sub_categories/category_tags/filter_ingredients/ingredient_recipes
api_hot.php HotRepository hot(today/month/total) sort=view/like/rate
api_what_to_eat.php WhatToEatRepository filter_apply/detail/filter_steps
api_discover.php DiscoverRepository 随机数据
api_check_duplicate.php RecipeRepository check_title/check_ingredient/check_step/check_content/check_all
stats_full.php StatsRepository+OnlineRepository online/request/hot/stats/heartbeat
静态数据 各页面 eating_times.json()/nutrition_types.json()/gmy.json()

🔴 未使用接口(待开发)

接口 act 功能 可开发功能
api.php unified_* type=ingredient 统一格式食材 食材数据标准化

🃏 迷你卡片待增强

优先级P3 | 优先级值3 | 工作量:

  • 迷你卡片横幅支持横向滑动预览多个菜品
  • 迷你卡片瀑布流插入比例可配置当前固定1:20
  • 迷你卡片数据自动刷新策略

📂 收藏分组功能待开发

优先级P3 | 优先级值3 | 工作量:

  • 📁 收藏夹分组:支持创建文件夹分类管理
  • 📋 批量移动:将收藏移动到其他分组
  • 👀 长按预览:快速预览收藏项详情
  • 📝 备注功能:为收藏项添加个人备注