--- html: embed_local_images: false embed_svg: true offline: false toc: true print_background: false export_on_save: html: true --- ```mermaid flowchart TD %% 开始 Start([开始服务流程]) --> A %% 主要服务状态 A[技师出发] --> B[技师到达] B --> C[开始服务] C --> D[服务进行中] D --> E[服务结束] E --> F[用户确认技师离开] F --> G[技师撤离] G --> H[订单结算] H --> EndNode([订单完成]) %% 技师出发阶段异常 A --> A1{用户取消订单?} A1 -->|是| A2[客服介入沟通] A2 --> A3{用户是否继续?} A3 -->|是| A A3 -->|否| A4[技师撤离] A4 --> A5[扣除违约金] A5 --> EndNode A --> B1{技师终止订单?} B1 -->|是| B2[客服介入沟通] B2 --> B3{技师是否继续?} B3 -->|是| A B3 -->|否| B4[客服联系用户] B4 --> B5{是否更换技师?} B5 -->|是| B6[重新分配技师] B6 --> A B5 -->|否| B7[订单结束] B7 --> EndNode %% 技师到达阶段异常 B --> C1{线下用户取消订单?} C1 -->|是| C2[客服介入沟通] C2 --> C3{用户是否继续?} C3 -->|是| B C3 -->|否| C4[技师撤离] C4 --> C5[扣除违约金] C5 --> EndNode B --> D1{联系不上用户?} D1 -->|是| D2[技师等待] D2 --> D3{等待>10分钟?} D3 -->|否| D2 D3 -->|是| D4[技师撤离] D4 --> D5[扣除违约金] D5 --> EndNode %% 服务进行中操作 D --> E1{用户结束订单?} E1 -->|是| E2[更新订单状态] E2 --> E D --> F1{用户打赏?} F1 -->|是| F2[创建打赏订单] F2 --> D D --> G1{用户加钟?} G1 -->|是| G2[更新服务时长] G2 -->G3{是否发生下一个客户服务时间冲突} G3 -->|是|G4[客服介入] G3 -->|否| G11 G4 --> G5{技师和下一个用户协商往后延时?} G5 -->|下一个用户不同意| G6[下一个用户与平台继续协商] G6 -->G7{是否同意更换技师} G7 -->|是| G8[更换技师] G7 -->|否| G9[订单结束] G5 -->|下一个用户同意| G10[更改下一订单开始服务时间] G11 --> D %% 样式定义 classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px classDef startEnd fill:#b2dfdb,stroke:#004d40,stroke-width:2px classDef process fill:#c8e6c9,stroke:#1b5e20,stroke-width:2px classDef decision fill:#fff3e0,stroke:#e65100,stroke-width:2px %% 应用样式 class Start,EndNode startEnd class A,B,C,D,E,F,G,H process class A1,B1,C1,D1,E1,F1,G1,A3,B3,B5,C3,D3 decision click A href "#技师出发" click A1 href "#技师出发中,用户取消订单" click B1 href "#技师出发中,技师终止订单" click B href "#技师到达" click C1 href "#技师到达中,用户线下取消订单" click D1 href "#技师到达,联系不上用户" click D href "#开始服务" click E1 href "#服务进行中,用户结束订单" click F1 href "#服务进行中,用户打赏" click G1 href "#服务进行中,用户加钟" click E href "#服务结束" click F href "#用户确认技师离开" click G href "#技师撤离" click H href "#订单结算" ``` #### 技师出发 **_后台逻辑:_** 1. 技师点击确认[出发](#出发) #### 技师出发中,用户[取消订单](#用户取消订单) **_后台逻辑:_** 1. 技师未到达前,用户点击[取消订单](#用户取消订单),算是订单结束,扣除违约金 TODO:技师到达前,用户取消订单,客服介入,联系用户,确认取消,订单取消,扣除违约金(50%项目金额+车费) 2. 线下客服介入,联系用户 #### 技师出发中,技师终止订单 **_后台逻辑:_** 1. 技师点击终止订单,扣除违约金,客服介入,联系技师 TODO: 技师无法线上终止订单,联系客服 #### 技师到达前,用户线下取消订单 **_后台逻辑:_** 1. 技师未到达前,用户线下[取消订单](#用户取消订单),算是订单结束,扣除违约金 TODO:技师到达前,用户取消订单,客服介入,联系用户,确认取消,订单取消,扣除违约金(50%项目金额+车费) 2. 线下客服介入,联系用户,联系技师 #### 技师到达,联系不上用户 **_后台逻辑:_** 1. 技师等待,等待时间超过 10 分钟,技师点击撤离,扣除违约金,订单结束 2. 客服介入,联系用户,联系技师 #### 开始服务 **_后台逻辑:_** 1. 技师点击开始服务,进行扫码 #### 服务进行中,用户结束订单 **_后台逻辑:_** 1. 用户点击[结束订单](#结束订单),算是服务结束 #### 服务进行中,用户打赏 **_后台逻辑:_** 1. 用户打赏,后台创建一个关联订单的子订单的打赏订单 TODO: 后台暂无打赏逻辑 #### 服务进行中,用户加钟 **_后台逻辑:_** 1. 用户获取[加钟项目列表](#获取项目列表-加钟) 1. 用户点击[加钟](#加钟),后台创建新的订单和目前的订单有关联即可 1. 在原有剩余的时长增加时长 #### 服务结束 **_后台逻辑:_** 1. 服务时长结束,服务结束 TODO:系统自动结束订单 #### 用户确认技师离开 **_后台逻辑:_** 1. 用户点击[确认技师离开](#确认技师离开) #### 技师撤离 **_后台逻辑:_** 1. 技师点击[撤离](#撤离),订单结束 #### 订单结算 **_后台逻辑:_** 1. 订单结算