下单流程.md 19 KB


html: embed_local_images: false embed_svg: true offline: false toc: true

print_background: false export_on_save:

html: true

[TOC]

选择技师下单流程

    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. 用取消订单