即时配送小程序 - 时序图与交互流程

用户端 · 配送员端 · 管理后台 · 完整业务流程

📱 1. 用户下单与支付时序图
sequenceDiagram participant U as 用户 participant APP as 客户端 participant API as Midway后端 participant DB as 数据库 participant PAY as 支付服务 participant COURIER as 配送员 U->>APP: 1.选择服务类型(帮我送/买/办) APP->>API: 2.请求费用试算 API->>DB: 3.查询计价规则 DB-->>API: 4.返回规则 API-->>APP: 5.返回报价 APP-->>U: 6.显示费用明细 U->>APP: 7.填写发件/收件信息 U->>APP: 8.选择优惠券 APP->>API: 9.校验优惠券 API-->>APP: 10.返回优惠金额 U->>APP: 11.确认下单 APP->>API: 12.创建订单 API->>DB: 13.写入订单 API-->>APP: 14.返回订单号 APP->>PAY: 15.发起支付 PAY->>U: 16.微信支付 U-->>PAY: 17.支付完成 PAY-->>API: 18.支付回调 API->>DB: 19.更新支付状态 API-->>APP: 20.支付成功 API->>COURIER: 21.推送新订单通知 Note over COURIER: 骑手可在订单大厅抢单
🏍️ 2. 配送员抢单与配送时序图
sequenceDiagram participant C as 配送员 participant APP as 骑手APP participant API as Midway后端 participant DB as 数据库 participant LOC as 位置服务 participant U as 用户 C->>APP: 1.打开订单大厅 APP->>API: 2.获取待抢订单列表 API->>DB: 3.查询可用订单 DB-->>API: 4.返回订单列表 API-->>APP: 5.返回订单 APP-->>C: 6.展示可抢订单 C->>APP: 7.点击抢单 APP->>API: 8.发起抢单请求 API->>DB: 9.检查订单状态 API->>DB: 10.锁定订单 API->>DB: 11.更新配送员 API-->>APP: 12.抢单成功 APP-->>C: 13.显示已接单 API-->>U: 14.推送接单通知 C->>APP: 15.点击确认取件 APP->>API: 16.确认取件 API->>DB: 17.更新状态为配送中 API-->>U: 18.推送取件通知 loop 实时位置上报 APP->>LOC: 19.获取当前位置 LOC-->>APP: 20.GPS坐标 APP->>API: 21.上报位置 API->>DB: 22.更新骑手位置 DB-->>API: 23.更新成功 API-->>U: 24.推送骑手位置 U->>APP: 25.查看骑手实时位置 end C->>APP: 26.点击确认送达 APP->>API: 27.确认送达 API->>DB: 28.更新状态为已完成 API-->>U: 29.推送送达通知 U->>APP: 30.确认完成/评价
🖥️ 3. 管理后台调度时序图
sequenceDiagram participant ADMIN as 运营/调度 participant BACK as 管理后台 participant API as Midway后端 participant DB as 数据库 participant MSG as 消息通知 ADMIN->>BACK: 1.进入调度中心 BACK->>API: 2.获取待调度订单 API->>DB: 3.查询未分配订单 DB-->>API: 4.返回订单列表 API-->>BACK: 5.展示待调度订单 ADMIN->>BACK: 6.选择订单 BACK->>API: 7.获取可用骑手 API->>DB: 8.查询附近空闲骑手 DB-->>API: 9.返回骑手列表 API-->>BACK: 10.展示骑手位置与状态 ADMIN->>BACK: 11.选择骑手并指派 BACK->>API: 12.发起指派请求 API->>DB: 13.更新订单配送员 API->>DB: 14.更新订单状态 API->>MSG: 15.推送接单通知 API-->>BACK: 16.指派成功 BACK-->>ADMIN: 17.显示指派结果
❌ 4. 取消订单时序图
sequenceDiagram participant U as 用户 participant C as 配送员 participant APP as 客户端 participant API as Midway后端 participant DB as 数据库 participant PAY as 支付服务 participant ADMIN as 后台客服 alt 用户取消(未接单前) U->>APP: 1.点击取消订单 APP->>API: 2.发送取消请求 API->>DB: 3.检查订单状态 alt 可以取消 API->>DB: 4.更新状态为已取消 API->>PAY: 5.申请退款 PAY-->>API: 6.退款成功 API-->>APP: 7.取消成功 APP-->>U: 8.显示取消结果 else 不可取消 API-->>APP: 返回错误 APP-->>U: 显示不可取消原因 end alt 骑手取消(已接单后) C->>APP: 1.点击取消订单 APP->>API: 2.发送取消请求 API->>DB: 3.检查状态 API->>DB: 4.更新状态为待调度 API->>MSG: 5.通知用户订单重新派单 API->>ADMIN: 6.记录取消原因 API-->>APP: 7.取消成功 APP-->>C: 8.返回订单列表 end alt 后台取消 ADMIN->>BACK: 1.后台取消订单 BACK->>API: 2.发送取消请求 API->>DB: 3.更新状态 API->>PAY: 4.申请退款 PAY-->>API: 5.退款 API->>MSG: 6.通知双方 API-->>BACK: 7.完成 end
👤 5. 用户端交互流程

发单流程

1
选择服务 — 帮我送/帮我买/帮我办
2
填写发件人 — 姓名、电话、地址(定位或手动输入)
3
填写收件人 — 姓名、电话、地址
4
填写物品信息 — 物品类型、重量、备注
5
费用试算 — 系统计算配送费 + 保价费
6
选择优惠券 — 满减券/折扣券/免配送券
7
确认支付 — 余额/微信支付
8
等待接单 — 推送通知骑手已接单

查看订单流程

1
进入订单列表 — 查看全部/待支付/进行中/已完成
2
点击订单 — 进入订单详情
3
查看骑手位置 — 地图实时显示骑手位置
4
联系骑手 — 一键拨打/在线沟通
5
确认送达 — 确认收货/评价骑手
🏍️ 6. 配送员端交互流程

抢单流程

1
打开订单大厅 — 查看待抢订单列表
2
查看订单详情 — 取件地址、送件地址、距离、费用
3
地图预览 — 查看取件/送件位置
4
点击抢单 — 确认接单
5
进入待取货 — 开始执行配送

配送执行流程

1
一键导航 — 导航到取件地址
2
联系发件人 — 电话确认取件
3
确认取件 — 点击取件成功
4
导航到收件人 — 开始配送
5
联系收件人 — 电话确认送达
6
确认送达 — 点击送达成功
7
获得收入 — 收入入账钱包
🔄 7. 订单状态流转图
stateDiagram-v2 [*] --> 待支付: 用户下单 待支付 --> 待接单: 支付成功 待支付 --> 已取消: 用户取消/超时 待接单 --> 已接单: 骑手抢单 待接单 --> 已取消: 后台取消 已接单 --> 配送中: 确认取件 已接单 --> 待接单: 骑手取消 配送中 --> 已送达: 确认送达 配送中 --> 配送中: 联系收件人修改地址 配送中 --> 待接单: 异常取消 已送达 --> 已完成: 用户确认 已送达 --> 已评价: 用户评价 已完成 --> 已评价: 用户评价 已取消 --> [*] 已评价 --> [*] 已完成 --> [*]
🗺️ 8. 页面跳转流程
flowchart TD subgraph User[用户端] U1[首页] --> U2[发单页] U1 --> U3[订单列表] U3 --> U4[订单详情] U4 --> U5[地图追踪] U1 --> U6[我的钱包] U1 --> U7[优惠券] U1 --> U8[地址管理] U1 --> U9[帮助客服] end subgraph Courier[配送员端] C1[骑手首页] --> C2[订单大厅] C2 --> C3[订单详情] C3 --> C4[导航取件] C4 --> C5[确认取件] C5 --> C6[导航送件] C6 --> C7[确认送达] C1 --> C8[我的钱包] C1 --> C9[任务统计] end subgraph Admin[管理后台] A1[调度中心] --> A2[订单管理] A1 --> A3[配送员管理] A1 --> A4[地图监控] A2 --> A5[订单详情] A3 --> A6[配送员详情] A1 --> A7[财务管理] A1 --> A8[优惠券管理] end
返回需求总览