选择技师下单流程

选择项目下单

选择技师下单流程

flowchart TD %% 基础选择流程 Start([开始]) --> A[用户选择服务位置] A --> B[查询附近技师列表] B --> C[用户选择技师] C --> D[展示技师项目列表] D --> E[用户选择项目] E --> F[展示项目详情] F --> G[用户选择服务时间] G --> H[用户选择营销卷] H --> I[计算订单费用] %% 支付流程 I --> J[用户确认下单] J --> K{支付结果} %% 支付失败处理 K -->|失败| L[订单状态:待付款] L --> M[客服跟进] M --> N{用户选择} N -->|重新支付| J N -->|取消订单| O[退款处理] %% 支付成功处理 K -->|成功| P[订单状态:已支付] P --> Q[推送订单给技师] %% 技师处理流程 Q --> R{技师处理} %% 技师接单分支 R -->|接单| S[订单状态:已接单] S --> T[技师确认出发] T --> U[订单状态:已出发] %% 技师拒单分支 R -->|拒单| V[订单状态:已拒绝] V --> W[客服处理] W --> X{处理方案} X -->|更换技师| Q X -->|用户退款| O %% 接单超时处理 R -->|超时| Y[客服跟进] Y --> Z{处理结果} Z -->|联系上技师| R Z -->|更换技师| Q Z -->|取消订单| O %% 结束节点 U --> End([开始服务]) O --> Cancel([订单结束]) %% 样式定义 classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px classDef process fill:#dcedc8,stroke:#33691e classDef decision fill:#fff3e0,stroke:#e65100 classDef status fill:#e3f2fd,stroke:#0d47a1 %% 应用样式 class K,R,X,Z decision class L,P,S,U,V status class A,B,C,D,E,F,G,H,I process click A,B,C href "#用户选择技师" click D,E,F href "#用户选择项目" click G href "#用户选择可服务时间" click H,I href "#用户选择营销卷" click J href "#用户点击立即结算" click L href "#支付失败" click P href "#支付成功" click S href "#技师接单" click V href "#技师拒绝接单" click X href "#订单超时"
用户选择技师

后台逻辑:

  1. 获取前端传递的经纬度,根据经纬度查询出附近的技师
  2. 获取技师列表
  3. 获取技师详情

UI 图:

用户选择项目

后台逻辑:

  1. 获取前端传递的技师 id,查询出该技师下可服务项目
  2. 获取前端传递的区域地址,查询出该区域地址可服务项目(370602 或 156370602)
  3. 获取项目列表
  4. 获取项目详情

UI 图:

用户选择可服务时间

前端逻辑

  1. 获取前端传递的技师 id 和项目 id,查询出该技师下,该项目的可服务时间,以及下单详情信息
  2. 获取前端传递的区域地址,计算订单金额(370602 或 156370602)
  3. 获取前端传递的路程,计算订单金额

后台逻辑:

  1. 计算订单金额
  2. 订单详情

UI 图:

用户选择营销卷

后台逻辑:

  1. 获取前端传递的技师 id 和项目 id,查询出该技师下,该项目的可使用的营销卷
  2. 选择优惠劵
  3. 计算订单金额

UI 图:

用户点击立即结算

后台逻辑:

  1. 创建订单,并判断使用的那种支付方式
  2. 创建订单
  3. 调用支付

UI 图:

支付失败

后台逻辑:

  1. 支付超时、取消支付导致的用户支付失败,极光推送客服用户支付失败
  2. 支付失败 TODO:??

UI 图:

支付成功

后台逻辑:

  1. 支付成功,后台更改订单,且极光推送技师接单
  2. 支付成功 TODO:??

UI 图:

技师接单

后台逻辑:

  1. 技师接单,用户同步数据
  2. 技师接单

UI 图:

技师拒绝接单

后台逻辑:

  1. 技师拒绝接单,客服介入,联系用户,更改技师或者用户取消订单退款
  2. 技师拒绝接单

UI 图:

订单超时

后台逻辑:

  1. 技师没有在规定时间内接单,客服介入,联系技师
  2. 订单超时 TODO: 客服介入后,对订单进行处理(更换技师、用户退款、取消订单、转公单等)

选择项目下单

flowchart TD %% 主流程起点 Start[开始] --> Init[初始化订单] %% 订单创建阶段 subgraph 订单创建 Init --> A1[获取用户位置] A1 --> A2[查询区域服务] A2 --> A3[用户选择服务] A3 --> A4[选择地址/时间/优惠券] A4 --> A5[创建空订单] end %% 抢单阶段 subgraph 抢单流程 A5 --> B1[进入抢单池] B1 --> B2[推送给技师] B2 --> B3{是否有技师抢单?} B3 -->|是| B4[展示技师列表] B3 -->|否| B5[等待5-8分钟] B5 --> B6[客服介入] end %% 用户选择阶段 subgraph 用户选择 B4 --> C1{用户是否选择?} C1 -->|是| C2[锁定技师] C1 -->|否| C3[等待30分钟] C2 --> C4[计算费用] C3 --> B6 end %% 支付阶段 subgraph 支付流程 C4 --> D1[展示订单详情] D1 --> D2{用户支付?} D2 -->|是| D3[支付处理] D2 -->|否| D4[3分钟超时] D3 --> D5{支付结果} D5 -->|成功| D6[更新订单状态] D5 -->|失败| D7[客服介入] D4 --> D8[解绑技师] end %% 服务阶段 subgraph 服务执行 D6 --> E1[通知技师] E1 --> jh1[技师拒绝订单] jh1 --> jh2[客服介入?] jh2 -->|技师接单| E2[技师出发] jh2 -->|技师拒单| jh3[客服介入,联系用户?] jh3 --> jh4[用户接受更换技师] jh4 --> E2 jh3 --> jh5[用户不接受更换技师] jh5 --> Cancel E1 --> E2[技师出发] E2 --> E3[服务进行中] E3 --> E4[服务完成] end %% 取消订单流程 subgraph 取消处理 Cancel[取消订单] --> F1[客服确认] F1 --> F2{是否可挽回?} F2 -->|是| F3[恢复订单] F2 -->|否| F4[退款处理] end %% 异常处理连接 D7 --> Cancel B6 --> Cancel D8 --> B1 %% 结束节点 E4 --> End[结束] F4 --> End F3 --> D1 %% 样式定义 classDef success fill:#baffc9,stroke:#333,stroke-width:2px; classDef warning fill:#ffffba,stroke:#333,stroke-width:2px; classDef error fill:#ffb3ba,stroke:#333,stroke-width:2px; classDef normal fill:#f9f9f9,stroke:#333,stroke-width:2px; %% 应用样式 class D6,E4 success; class D7,B6,Cancel warning; class F4 error; class Start,End normal; click A1,A2,A3 href "#用户选择项目" click A4,A5,B1,B2 href "#创建抢单类型订单,推送给技师" click B3,B4 href "#有技师抢单" click B5,B6 href "#无技师抢单" click C1,C2,C4 href "#用户选择技师" click C3,B6 href "#用户不反选技师" click D2,D3,D6,E1 href "#支付成功" click jh1,jh2,jh3,jh4,jh5 href "#技师拒绝接单" click D4,D7,D8 href "#支付失败" click E2 href "#技师出发"
用户选择项目

后台逻辑:

  1. 传递用户当前位置信息
  2. 服务项目列表
  3. 服务项目详情

UI 图:

创建抢单类型订单,推送给技师

后台逻辑:

  1. 传递用户服务时间、服务地址、服务项目 id、优惠劵 id
  2. 创建订单

UI 图:

有技师抢单

后台逻辑:

  1. 传递技师 id,所抢订单 id,计算路费、技师代金卷等等一些逻辑
  2. 用户取消订单

UI 图:

无技师抢单

后台逻辑:

  1. 用户的抢单类型的订单无技师去抢,客服介入,联系附近技师
  2. 包含超时的情况,记得处理
  3. 用户取消订单

UI 图:

用户选择技师

后台逻辑:

  1. 传递技师 id,所抢订单 id,用户 id,订单费用
  2. 用户选择技师后,3 分钟内不支付,则技师解绑该订单,记得处理
  3. 用户取消订单
  4. 指定技师

UI 图:

用户不反选技师

后台逻辑:

  1. 用户不反选技师
  2. 用户取消订单

UI 图:

支付成功

后台逻辑:

  1. 订单支付成功,技师和用户的推送提醒
  2. 用户取消订单

UI 图:

技师拒绝接单

后台逻辑:

  1. 技师拒绝接单,客服介入,联系技师
  2. 接单
  3. 拒单
  4. 客服联系用户,用户接受更改技师或者取消订单

UI 图:

支付失败

后台逻辑:

  1. 支付失败,订单状态为待付款
  2. 用户取消订单、选择技师、再次付款。存在超时的以及时间差的处理
  3. 用户取消订单
  4. 支付订单

UI 图:

技师出发

后台逻辑:

  1. 技师出发,用户推送提醒
  2. 用取消订单

选择技师下单流程

选择项目下单