# Restart - 完美出租车解决方案(含包裹配送)
## 项目概述
- **项目类型**:全栈移动应用 + Web管理后台(网约车+包裹配送平台)
- **主要功能**:乘客叫车、司机接单、实时位置追踪、包裹配送、在线支付、多语言支持、聊天系统
- **技术栈**:
- 后端:Laravel 10 + PHP 8.1 + Inertia.js
- 乘客端:Flutter 3.4 + Dart + BLoC状态管理
- 司机端:Flutter 3.4 + Dart + BLoC状态管理
- 数据库:MySQL + 空间数据支持
- 地图服务:Google Maps + OpenStreetMap
- 实时通信:Firebase + WebSocket
## 模块结构
```
Main-File-January-01-2026/
├── Admin-Panel-2.2/ # Laravel管理后台
│ ├── app/
│ │ ├── Models/ # 数据模型
│ │ │ ├── Admin/ # 管理相关模型
│ │ │ ├── Master/ # 主数据模型
│ │ │ ├── Request/ # 请求/订单模型
│ │ │ ├── Payment/ # 支付相关模型
│ │ │ ├── Common/ # 通用模型
│ │ │ └── Access/ # 访问控制模型
│ │ ├── Http/Controllers/ # 控制器
│ │ └── Services/ # 业务服务
│ ├── config/ # 配置文件
│ ├── database/ # 迁移文件
│ ├── resources/ # 视图资源(Inertia/Vue)
│ ├── routes/ # 路由
│ └── public/ # 静态资源
├── user_envato/
│ └── restart_user/ # 乘客端Flutter应用
│ ├── lib/ # Dart源码
│ ├── android/ # Android原生代码
│ ├── ios/ # iOS原生代码
│ ├── assets/ # 资源文件
│ └── pubspec.yaml # 依赖配置
├── driver_envato/
│ └── restart_driver/ # 司机端Flutter应用
│ ├── lib/ # Dart源码
│ ├── android/ # Android原生代码
│ ├── ios/ # iOS原生代码
│ ├── assets/ # 资源文件
│ └── pubspec.yaml # 依赖配置
└── Documentation/ # 项目文档
```
## 核心业务逻辑
### 1. 双业务模式
#### 网约车模式
- 乘客发布用车需求
- 系统匹配附近可用司机
- 司机接单并导航至上车点
- 完成行程并支付
#### 包裹配送模式
- 寄件人填写包裹信息
- 系统分配配送司机
- 司机取件并配送
- 收件人确认收货
### 2. 用户角色系统
- **乘客/寄件人**:发起用车或配送请求
- **司机**:接受并完成订单
- **调度员**:手动分配订单
- **管理员**:系统管理和监控
### 3. 订单生命周期
1. **创建订单**:用户填写订单信息
2. **寻找司机**:系统广播或自动分配
3. **司机接单**:司机接受订单
4. **前往取件/接人**:司机导航至起点
5. **开始服务**:确认上车/取件
6. **配送/送达**:导航至目的地
7. **完成订单**:确认送达并支付
8. **评价**:双方互评
### 4. 实时追踪系统
- **GPS定位**:实时获取车辆位置
- **地图显示**:Google Maps显示路线
- **轨迹记录**:记录完整行驶轨迹
- **ETA计算**:实时计算预计到达时间
### 5. 支付与结算
- **支付方式**:Stripe、PayPal、Razorpay、MercadoPago
- **钱包系统**:平台钱包充值消费
- **司机结算**:自动计算司机收入
- **佣金管理**:平台抽成配置
### 6. 聊天系统
- **订单内聊天**:乘客与司机沟通
- **调度聊天**:调度员与司机协调
- **消息推送**:Firebase实时推送
## 核心代码分析
### 后端架构 (Laravel 10 + Inertia.js)
#### 技术栈
```json
{
"php": "^8.1",
"laravel/framework": "^10.10",
"laravel/jetstream": "^4.0",
"laravel/sanctum": "^3.2",
"inertiajs/inertia-laravel": "^0.6.8",
"laravel/socialite": "^5.15",
"laravel-notification-channels/fcm": "^4.5",
"stripe/stripe-php": "^15.7",
"razorpay/razorpay": "^2.9",
"srmklive/paypal": "^3.0",
"mercadopago/dx-php": "^3.0",
"fleetbase/laravel-mysql-spatial": "^1.0",
"intervention/image": "^3.7",
"maatwebsite/excel": "^3.1",
"barryvdh/laravel-dompdf": "^3.0"
}
```
#### 核心模型
```php
// 主要数据模型
Models/
├── Admin/
│ ├── User.php # 用户模型
│ ├── Role.php # 角色权限
│ └── ...
├── Master/
│ ├── VehicleType.php # 车辆类型
│ ├── Vehicle.php # 车辆信息
│ └── ...
├── Request/
│ ├── Request.php # 订单请求
│ ├── RequestBill.php # 订单账单
│ └── ...
├── Payment/
│ ├── PaymentMethod.php # 支付方式
│ ├── Transaction.php # 交易记录
│ └── ...
├── Common/
│ ├── Country.php # 国家
│ ├── State.php # 州/省
│ └── ...
└── Support/
├── Chat.php # 聊天
├── Message.php # 消息
└── ...
```
#### 空间数据支持
- 使用 `fleetbase/laravel-mysql-spatial` 扩展
- 支持地理坐标存储和查询
- 实现附近司机搜索
- 区域围栏功能
### 乘客端Flutter架构
#### 状态管理
- **BLoC模式**:使用 `flutter_bloc` 和 `bloc`
- **响应式编程**:使用 `rxdart` 处理流数据
#### 核心依赖
```yaml
dependencies:
# 状态管理
bloc: ^9.0.0
flutter_bloc: ^9.0.0
rxdart: ^0.28.0
# 网络请求
dio: ^5.8.0+1
# 地图和定位
google_maps_flutter: ^2.12.0
flutter_map: ^8.1.1
location: ^8.0.0
geolocator: ^13.0.3
latlong2: ^0.9.1
# Firebase
firebase_core: ^3.12.1
firebase_auth: ^5.5.1
firebase_messaging: ^15.2.4
firebase_database: ^11.3.4
firebase_crashlytics: ^4.3.4
# 本地存储
shared_preferences: ^2.5.2
drift: ^2.26.0
drift_flutter: ^0.2.4
# 支付
flutter_stripe: ^11.4.0
... (content truncated)