# 6amMart Delivery Man App - 配送员端移动应用
## 项目概述
- **项目类型**:移动应用(Flutter跨平台开发)
- **主要功能**:配送员接单、订单管理、实时定位、路线导航、收入统计、在线聊天
- **技术栈**:
- 框架:Flutter 3.x + Dart
- 状态管理:GetX
- 地图:Google Maps Flutter
- 推送:Firebase Cloud Messaging
- 本地存储:Shared Preferences
- 网络:HTTP/Dio
## 模块结构
```
Delivery Man App/
├── android/ # Android平台配置
├── ios/ # iOS平台配置
├── lib/ # Dart源代码
│ ├── api/ # API接口层
│ │ ├── api_client.dart # HTTP客户端
│ │ └── api_constants.dart # API常量
│ ├── common/ # 公共组件
│ │ ├── theme/ # 主题配置
│ │ └── widgets/ # 通用组件
│ ├── features/ # 功能模块
│ │ ├── auth/ # 认证模块
│ │ ├── dashboard/ # 仪表盘
│ │ ├── order/ # 订单管理
│ │ ├── profile/ # 个人中心
│ │ ├── wallet/ # 钱包收入
│ │ ├── chat/ # 在线聊天
│ │ └── notification/ # 消息通知
│ ├── helper/ # 辅助工具
│ │ ├── route_helper.dart # 路由管理
│ │ └── date_converter.dart # 日期处理
│ ├── interface/ # 接口定义
│ ├── theme/ # 主题样式
│ ├── util/ # 工具类
│ │ ├── app_constants.dart # 应用常量
│ │ ├── dimensions.dart # 尺寸常量
│ │ └── styles.dart # 文本样式
│ └── main.dart # 应用入口
├── assets/ # 静态资源
│ ├── image/ # 图片资源
│ ├── language/ # 多语言文件
│ ├── font/ # 字体文件
│ └── notification.mp3 # 通知音效
├── test/ # 测试用例
├── pubspec.yaml # 依赖配置
└── analysis_options.yaml # 代码分析配置
```
## 核心业务逻辑
### 1. 配送员工作流程
```
1. 登录/注册 → 身份验证
2. 在线/离线状态切换
3. 接收新订单推送通知
4. 查看订单详情(取货地址、送货地址)
5. 接单/拒单
6. 导航到取货地点
7. 确认取货
8. 导航到送货地点
9. 确认送达
10. 获得配送费收入
```
### 2. 订单管理
- **新订单**:实时推送,显示订单金额、距离、预计收入
- **进行中**:当前配送订单状态跟踪
- **历史订单**:已完成订单记录
- **订单详情**:商品清单、客户信息、特殊要求
### 3. 实时定位与导航
- **GPS定位**:持续上报配送员位置
- **地图集成**:Google Maps显示路线
- **导航功能**:跳转到Google Maps/Apple Maps导航
- **地理围栏**:配送区域边界提醒
### 4. 收入与钱包
- **收入统计**:日/周/月收入
- **订单提成**:每单配送费明细
- **提现申请**:绑定银行卡提现
- **交易记录**:收入与支出明细
### 5. 通讯功能
- **客户聊天**:与客户在线沟通
- **客服支持**:联系平台客服
- **语音通话**:集成通话功能
## 核心代码分析
### 架构模式
- **状态管理**:GetX(路由、状态、依赖注入)
- **架构模式**:MVC + Repository模式
- **代码组织**:按功能模块划分(features/)
### 关键依赖
```yaml
dependencies:
flutter:
sdk: flutter
get: ^4.7.3 # 状态管理
shared_preferences: ^2.5.4 # 本地存储
firebase_core: ^4.3.0 # Firebase核心
firebase_messaging: ^16.1.0 # 消息推送
flutter_local_notifications: ^19.5.0 # 本地通知
google_maps_flutter: ^2.14.0 # 谷歌地图
geolocator: ^14.0.2 # GPS定位
geocoding: ^4.0.0 # 地理编码
http: ^1.6.0 # HTTP请求
web_socket_channel: ^3.0.3 # WebSocket
image_picker: ^1.2.1 # 图片选择
cached_network_image: ^3.4.1 # 图片缓存
flutter_svg: ^2.2.3 # SVG支持
permission_handler: ^12.0.1 # 权限管理
flutter_foreground_task: ^9.1.0 # 前台任务
```
### 推送通知处理
```dart
// Firebase消息配置
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
// 处理前台消息
showLocalNotification(message);
});
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
```
### 位置服务
```dart
// GPS定位配置
Geolocator.getPositionStream(
locationSettings: LocationSettings(
accuracy: LocationAccuracy.high,
distanceFilter: 10, // 每10米更新
),
).listen((Position position) {
// 上报位置到服务器
updateLocationToServer(position);
});
```
### API通信
- RESTful API与后端通信
- JWT Token认证
- 请求拦截器(添加Token)
- 错误统一处理
### 离线支持
- SharedPreferences缓存用户数据
- 离线状态下可查看历史订单
- 网络恢复后自动同步
### 多语言支持
- 支持多语言切换
- 语言文件存储在assets/language/
- Intl国际化库
### UI/UX设计
- Material Design风格
- 响应式布局适配各种屏幕
- 深色模式支持
- 加载骨架屏
- 错误页面与空状态
---
*版本:3.7 | 配套后端:6amMart管理后台*