# eFood Kitchen Chef App - 餐厅厨房管理应用
## 项目概述
- **项目类型**:移动应用(Flutter跨平台应用)
- **主要功能**:餐厅厨房订单管理系统,支持厨师通过移动设备接收和处理订单
- **技术栈**:
- 前端框架:Flutter 3.38.5
- 状态管理:GetX
- 后端通信:REST API
- 推送通知:Firebase Cloud Messaging
- 本地存储:Shared Preferences
- 图片缓存:Cached Network Image
- 音频播放:audioplayers
- 振动反馈:vibration
## 模块结构
```
lib/
├── common/ # 公共组件
│ ├── controllers/ # 通用控制器(主题、本地化)
│ ├── models/ # 数据模型
│ │ ├── config_model.dart
│ │ ├── error_response.dart
│ │ ├── language_model.dart
│ │ └── notification_payload_model.dart
│ └── widgets/ # 通用UI组件
│ ├── custom_app_bar_widget.dart
│ ├── custom_button_widget.dart
│ ├── custom_text_field_widget.dart
│ ├── notification_dialog_widget.dart
│ └── ...
├── data/
│ └── api/ # API客户端和检查器
│ ├── api_checker.dart
│ └── api_client.dart
├── features/ # 功能模块
│ ├── auth/ # 认证模块
│ │ ├── controllers/
│ │ ├── domain/models/
│ │ ├── screens/login_screen.dart
│ │ └── widgets/
│ ├── home/ # 首页模块
│ │ ├── screens/
│ │ │ ├── home_screen.dart
│ │ │ └── tab_home_screen.dart
│ │ └── widgets/
│ │ ├── order_card_widget.dart
│ │ ├── order_list_widget.dart
│ │ ├── order_status_tabs_item_widget.dart
│ │ ├── slider_button_widget.dart
│ │ └── status_change_custom_button.dart
│ ├── order/ # 订单模块
│ │ ├── controllers/order_controller.dart
│ │ ├── domain/models/
│ │ │ ├── order_details_model.dart
│ │ │ └── order_model.dart
│ │ ├── screens/order_details_screen.dart
│ │ └── widgets/
│ │ ├── calculate_amount_widget.dart
│ │ ├── ordered_product_list_widget.dart
│ │ └── tab_order_details_widget.dart
│ └── splash/ # 启动页
├── helper/ # 辅助工具类
│ ├── animated_dialog_helper.dart
│ ├── notification_helper.dart
│ ├── price_converter.dart
│ └── route_helper.dart
├── theme/ # 主题配置
│ ├── dark_theme.dart
│ └── light_theme.dart
└── util/ # 工具类
├── app_constants.dart
├── dimensions.dart
├── images.dart
└── styles.dart
```
## 核心业务逻辑
### 1. 订单接收与处理
- **订单推送**:通过Firebase Cloud Messaging接收新订单通知
- **订单列表**:按状态分类显示订单(待处理、进行中、已完成)
- **订单详情**:查看订单详细信息,包括菜品列表、数量、备注
- **状态更新**:滑动按钮快速更新订单状态(接单→制作中→待出餐→完成)
- **音频提醒**:新订单到达时播放提示音和振动
### 2. 厨房显示系统(KDS)
- **实时同步**:订单状态实时同步到所有设备
- **分类显示**:按订单状态分组显示
- **优先级管理**:支持订单优先级标记
- **时间追踪**:显示订单等待时间和制作时间
### 3. 用户认证
- **登录系统**:支持邮箱/密码登录
- **记住登录**:自动登录功能
- **多语言支持**:支持多种语言切换
### 4. 通知管理
- **推送通知**:Firebase消息推送
- **本地通知**:应用内通知显示
- **通知历史**:查看历史通知记录
## 核心代码分析
### 主入口 (main.dart)
```dart
// 应用入口,初始化GetX依赖注入
// 配置Firebase消息推送和本地通知
// 设置URL策略(支持Web端)
// 初始化音频播放器和振动功能
```
### 状态管理
- 使用**GetX**进行状态管理
- 主要控制器:
- `ThemeController`:主题切换(暗黑/亮色模式)
- `LocalizationController`:多语言支持
- `OrderController`:订单状态管理
- `AuthController`:用户认证管理
- `SplashController`:启动页逻辑
### API架构
- **ApiClient**:处理HTTP请求
- **ApiChecker**:API响应检查
- 支持分页加载和错误处理
### UI组件
- **响应式设计**:支持平板和手机不同尺寸
- **自定义组件**:
- `SliderButtonWidget`:滑动按钮(用于状态更新)
- `OrderCardWidget`:订单卡片
- `OrderStatusTabsItemWidget`:订单状态标签
- `StatusChangeCustomButton`:状态变更按钮
- `FabCircularMenuWidget`:浮动圆形菜单
### 关键依赖
```yaml
dependencies:
get: ^4.7.3 # 状态管理
firebase_messaging: ^16.0.4 # 推送通知
flutter_local_notifications: ^19.5.0 # 本地通知
audioplayers: ^6.5.1 # 音频播放
vibration: ^3.1.4 # 振动反馈
shared_preferences: ^2.5.3 # 本地存储
cached_network_image: ^3.4.1 # 图片缓存
shimmer: ^3.0.0 # 加载骨架屏
http: ^1.6.0 # HTTP请求
```
## 应用版本信息
- **Kitchen App版本**:2.3
- **兼容的User App版本**:11.7
- **兼容的Deliveryman App版本**:11.7
- **兼容的Table App版本**:2.3
## 部署说明
1. 配置Firebase项目(用于推送通知)
2. 修改API基础URL配置
3. 配置应用主题和语言
4. 配置音频和振动设置
5. 构建发布版本(Android/iOS/Web)
## 与eFood生态系统的关系
此应用是eFood多应用生态系统的一部分:
- **User App**:顾客点餐应用
- **Table App**:服务员桌台管理应用
- **Kitchen App**:厨师订单处理应用(本应用)
- **Deliveryman App**:配送员配送管理应用