丸掌柜 → 福通 → 丸友集履约 → 打手

订单状态机全链路对应关系 (基于代码实际枚举值)

丸掌柜
venus-saas-order
福通主单
venus-dl-futong
福通子单
(丸友集供应链)
丸友集履约
venus-orbit
打手订单
venus-player
说明:以下所有状态码均为代码中枚举定义的实际值。各系统之间通过事件/回调通信,非直接状态码映射。 每条对应关系都标注了触发条件,确保与代码逻辑一致。
状态①:待接单 初始态
丸掌柜 待接单(200) → 福通主单 已推送(20) → 福通子单 已发布(20) → 丸友集 待接单(10) → (打手系统尚未收到订单)
丸掌柜
200
待接单
子状态:201待接单 / 202已推单
福通 主单
20
已推送
PUSH_END
福通 子单
20
已发布
PUSH_SUCCESS
丸友集
10
待接单
PENDING_ACCEPT
触发条件:丸掌柜用户支付 → 订单状态变为200(待接单),然后丸掌柜推单调用福通API ftOrderOpenApi.create() → 丸掌柜子状态变为202(已推单) → 福通创建主单(status=1→10→20)和子单(status=10→20),子单推送到丸友集(status=10)
状态②:服务中(代练中) 进行中
丸掌柜 服务中(300) → 福通主单 代练中(30) → 福通子单 服务中(30) → 丸友集 代练中(30) → 打手 代练中(20)
丸掌柜
300
服务中
子状态:301 代练中
福通 主单
30
已接收/代练中
SERVE_ING
福通 子单
30
服务中
SERVE_ING
丸友集
30
代练中
IN_PROGRESS
打手
20
代练中
IN_PROGRESS
触发条件:打手在Player系统接单 → Player(10→20) → 回调Orbit → Orbit(20→30) → 回调福通 → 福通子单(20→30) → 福通主单(20→30) → 回调丸掌柜 → 丸掌柜(200→300)
注:打手上号后,Player子状态设为21(已上号),申请验收前必须验证 subStatus==21
状态③:待验收 进行中
丸掌柜 待验收(400) → 福通主单 待验收(40) → 福通子单 待验收(50) → 丸友集 待验收(40) → 打手 待验收(30)
丸掌柜
400
待验收
子状态:401 待验收
福通 主单
40
待验收
CHECK_ING
福通 子单
50
待验收
CHECK_ING
丸友集
40
待验收
PENDING_VERIFICATION
打手
30
待验收
PENDING_ACCEPTANCE
触发条件:打手完成代练申请验收 → Player(20→30) → 回调Orbit → Orbit(30→40) → 回调福通 → 福通子单(30→50) → 福通主单(30→40) → 回调丸掌柜 → 丸掌柜(300→400)
状态④:已完成(验收通过) 终态
丸掌柜 已完成(700) → 福通主单 验收成功(50) → 福通子单 验收成功(150) → 丸友集 已完成(50) → 打手 已完成(40)
丸掌柜
700
已完成
子状态:701已完单
702申诉中 / 703申诉完成
福通 主单
50
验收成功
CHECK_SUCCESS
【终态】
福通 子单
150
验收成功
CHECK_SUCCESS
【终态】
丸友集
50
已完成
COMPLETED
【终态】
打手
40
已完成
COMPLETED
【终态】
触发条件(有两种路径):
① 丸掌柜用户主动验收 → 丸掌柜调用福通API ftOrderOpenApi.checkSuccess() → 福通子单(50→150) → 福通主单(40→50) → 回调丸掌柜 → 丸掌柜(400→700)
② 自动验收 → Orbit(40→50) → 回调福通 → 福通子单(50→150) → 主单(40→50) → 回调丸掌柜 → 丸掌柜(400→700)
状态⑤:异常中 异常态
丸掌柜 异常中(500) → 福通主单 异常中(60) → 福通子单 异常中(40)/撤销中(60)/仲裁中(70) → 丸友集 异常中(35) → 打手 撤销中(50)
丸掌柜
500
异常中
子状态:501推单异常
502代练中异常
福通 主单
60
异常中
SERVE_ERROR
福通 子单
40/60/70
异常中/撤销中/仲裁中
SERVE_ERROR / SERVE_BACK / ARBITRATION_ING
丸友集
35
异常中
IN_EXCEPTION
打手
50
撤销中
REVOKING
触发条件:打手申请撤销/仲裁/异常 → Player(20→50) → 回调Orbit → Orbit(30→35) → 回调福通 → 福通子单(30→40/60/70) → 福通主单(30→60) → 回调丸掌柜 → 丸掌柜(根据子状态:202→501 或 301→502)
取消异常恢复:丸掌柜状态可从500恢复到300(服务中),取决于福通回调 CANCEL_ERROR
状态⑥:售后中 售后
丸掌柜 售后中(600) → 福通主单 售后中(70) → 福通子单 仲裁中(70) → 丸友集 售后中(60)
丸掌柜
600
售后中
子状态:601售后中
福通 主单
70
售后中
AFTER_SALES_ING
福通 子单
70
仲裁中
ARBITRATION_ING
丸友集
60
售后中
IN_AFTERSALE
触发条件:丸掌柜用户申请售后 → 丸掌柜调用福通API ftOrderOpenApi.arbitration() → 丸掌柜(200/300/400/500→600) → 福通主单(→70) → 福通子单(→70) → 丸友集(→60)
售后类型:根据发起售后时所在的阶段,记录saleType(0-6)用于后续恢复
状态⑦:已售后(售后完成) 终态
丸掌柜 已售后(800) → 福通主单 售后结束(80) → 福通子单 仲裁结束(170) → 丸友集 售后完成(70)
丸掌柜
800
已售后
子状态:801已售后
802申诉中 / 803申诉完成
福通 主单
80
售后结束
AFTER_SALES_END
【终态】
福通 子单
170
仲裁结束
ARBITRATION_END
【终态】
丸友集
70
售后完成
AFTERSALE_COMPLETED
【终态】
触发条件:福通售后结算完成 → 回调丸掌柜 AFTER_SALE_REFUND → 丸掌柜(600→800) → 福通主单(70→80) → 福通子单(70→170) → 丸友集(60→70)
状态⑧:已取消 终态
丸掌柜 已取消(900) → 福通子单 取消(0) → 丸友集 已取消(90)
丸掌柜
900
已取消
子状态:901待支付取消
福通 子单
0
取消
CANCEL
【终态】
丸友集
90
已取消
CANCEL
【终态】
打手
70
已取消
CANCELLED
【终态】
触发条件:丸掌柜用户取消订单 → 丸掌柜(→900) → 福通子单(→0) → 丸友集(→90) → 打手(→70)
补充状态:已拒绝 / 已撤销 终态
系统 状态码 状态名 说明
丸友集 80 已拒绝 REJECTED 工作室拒绝接单 → 福通子单(→180 REJECT_END)
丸友集 100 已撤销 REVOKED 上游同意撤销,订单结束
福通 子单 160 撤销结束 SERVE_BACK_END 撤销完成(终态)
福通 子单 180 拒绝结束 REJECT_END 被拒绝(终态)
打手 60 撤销完成 REVOKED 撤销审核通过(终态)

三层角色架构:丸掌柜用户 → 工作室(Orbit PC) → 打手(Player)

核心理解:
打手是底层履约执行人,操作只影响自己+Orbit子单可见,不穿透到福通
工作室(Orbit PC)是核心桥梁向上通知福通(Kafka→福通),向下管理打手(拆单发单、验收子单)
丸掌柜用户是B端买家向下操作触发福通→工作室→打手的全链路响应
福通只知道工作室,不知道哪个打手在打。工作室在福通面前是一个整体。工作室收单后可拆单分给多个打手。
丸掌柜用户(B端买家)
👤 向下操作
先改自己状态,再通知福通
支付→推单→同意验收→售后
工作室 Orbit PC(核心桥梁)
🏢 ↑向上 ↓向下
↑向福通:接单/验收/撤销(Kafka)
↓向打手:拆单发单/验收子单
打手 Player(履约执行人)
🎮 底层操作
操作只影响自己+Orbit子单
不穿透到福通

【视角一】打手操作 —— 只影响 Player + Orbit 子单可见,不穿透到福通

打手是履约的实质执行人。打手在 Player 系统的所有操作,只会改变打手自己的订单状态。Orbit 工作室后台能看到子单状态变化,但不会自动同步到福通或丸掌柜。向上同步由工作室手动触发。
① 打手接单 —— 从抢单大厅抢单或指派接单
层级变化前变化后说明
打手(Player)待接单(10)代练中(20)抢单大厅抢单成功,记录takeAt
Orbit 子单子单状态同步为 代练中(20)工作室后台可见
Orbit 父单不变(工作室确认接单时已置为30)
福通不穿透到此层。福通只知工作室层级。
丸掌柜不穿透
② 打手上号 —— 子状态 subStatus → 21(已上号)
层级变化说明
打手(Player)主状态仍为 代练中(20),子状态→21申请验收的前置条件:subStatus必须=21
Orbit及以上不变纯打手内部操作
③ 打手上传首图 —— 代练首张截图,申请验收前置条件
层级变化说明
打手(Player)仅记录首图URL,不改变状态申请验收的前置条件:必须有首图
Orbit及以上不变不影响上层
④ 🔑 打手申请验收 —— 到此为止!不穿透!
层级变化前变化后说明
打手(Player)代练中(20)待验收(30)前置:subStatus=21(已上号)+已上传首图
Orbit 子单子单状态同步为 待验收(30)工作室后台看到该子单=待验收
🔴 Orbit 父单仍为 代练中(30)。福通仍为 服务中(30)。丸掌柜仍为 服务中(300)。打手申请验收不会自动穿透到上层。
⑤-⑧ 其他打手操作(均不影响福通)
操作打手状态变化Orbit及以上
取消验收待验收(30)→代练中(20)不变
申请撤销代练中(20)→撤销中(50)不变
取消撤销撤销中(50)→代练中(20)不变
拒绝接单待接单(10)→清指派不变

【视角二】工作室 Orbit PC 操作 — 向上通知福通(Kafka),向下管理打手

工作室是核心桥梁。福通不知道哪个打手在打,福通只知道工作室的行为(接单、拒绝、申请验收等)。 工作室收到福通订单后可立即拆单、发单给打手。打手完成后再由工作室向上同步。
↑ 向上 — 通知福通(通过 Kafka topic: orbit-ft-events)
A) 确认接单 —— Orbit 父单 10→20
层级变化前变化后说明
工作室客服点击「确认接单」POST /pc/orbit/order/accept手动触发
Orbit 父单待接单(10)已接单(20)ACCEPTED
↳ Kafka → 福通事件: ACCEPT_ORDER
福通子单已发布(20)已发布(20)不变
B) 拒绝接单 —— Orbit → 80(已拒绝) ✅
层级变化说明
工作室客服点击「拒绝接单」POST /pc/orbit/order/reject手动触发
Orbit 父单待接单(10)→已拒绝(80) ✅REJECTED 终态
↳ Kafka → 福通事件: REJECT_ORDER
福通子单已发布(20)→拒绝结束(180) ✅REJECT_END
C) 🔑 申请验收 — Orbit父单 30→40,通知福通(非验收打手!)
层级变化前变化后说明
工作室客服点击「申请验收」POST /pc/orbit/order/applyAcceptance手动触发。可等所有打手提交后一起操作。
Orbit 父单代练中(30)待验收(40)PENDING_VERIFICATION,更新applyAcceptAt
验收记录创建 OrbitOrderAcceptanceRecord(status=0待审核)记录申请人
↳ Kafka → 福通事件: APPLY_ACCEPTANCE
福通子单服务中(30)待验收(50)CHECK_ING
福通主单已接收/代练中(30)待验收(40)CHECK_ING
丸掌柜服务中(300/301)待验收(400/401)福通回调 APPLY_CHECK
关键:工作室「申请验收」≠ 验收打手。工作室只是改Orbit父单→40 并通知福通"这个工作室的单可以验收了"。 最终验收决定权在丸掌柜用户。工作室验收打手是另一个独立操作(见下方↓向下操作)。
D) 申请撤销 —— Orbit 父单 30→35(异常中),通知福通
层级变化说明
工作室客服点击「申请撤销」POST /pc/orbit/order/applyRevoke手动触发
Orbit 父单代练中(30)→异常中(35)IN_EXCEPTION
↳ Kafka → 福通事件: APPLY_REVOKE
福通子单服务中(30)→异常中(40)/撤销中(60)
福通主单代练中(30)→异常中(60)SERVE_ERROR
丸掌柜服务中(300)→异常中(500)福通回调 MAIN_ORDER_ERROR
E) 处理售后 —— Orbit → 福通仲裁结果
层级变化说明
工作室客服点击「处理售后」POST /pc/orbit/order/processAftersale
↳ Kafka → 福通事件: ARBITRATION_RESULT
福通子单仲裁中(70)→仲裁结束(170) ✅ARBITRATION_END
丸掌柜售后中(600)→已售后(800) ✅取决于autoAfterSale参数
↓ 向下 — 管理打手(拆单发单、验收子单、撤销子单)
F) 拆单发单 — 将福通来的子单拆成多个打手订单
API:POST /pc/orbit/order/batchDispatchOrders
工作室收到福通订单后,可以在此拆成多个打手子单,分给不同打手。
福通不知道被拆单了。福通只知道:工作室接单了、工作室申请验收了。打手内部如何拆分是工作室自己管理的。
G) 🔑 验收子单 — 只验收该打手订单,Orbit父单不变!
API:POST /pc/orbit/order/acceptanceSubOrder
打手申请验收后→工作室在后台看到子单=待验收(30)→工作室点「验收子单」→该打手(30→40)已完成✅。
验收子单 ≠ 申请验收。验收子单只是对打手个人的操作(Orbit父单不变、福通不变)。
要向上通知福通,工作室需另外点「申请验收」改Orbit父单(30→40) + Kafka APPLY_ACCEPTANCE。
H) 撤销子单 / 取消子单 / 撤销审核
API:撤销子单 POST /pc/orbit/subOrder/revoke | 取消子单 POST /pc/orbit/subOrder/cancel | 撤销审核 POST /pc/orbit/subOrder/revokeApproval

【视角三】丸掌柜用户操作 — 向下操作,先改自己状态再通知福通

丸掌柜是B端买家。所有操作方向是 向下:丸掌柜先改自己状态,再通知福通→福通通知工作室→工作室通知打手。
A) 支付 → 待接单(200); 推单 → 调用 ftOrderOpenApi.create()
层级变化说明
丸掌柜支付:待付款(100)→待接单(200/201)
推单:子状态→202(已推单)
用户支付后,再手动推单
↳ 调用福通ftOrderOpenApi.create()创建福通主单+子单
福通主单(新建)→已录单(1)→已支付(10)→已推送(20)
福通子单(新建)→初始化(10)→已发布(20)推送给丸友集工作室
Orbit 父单(新建)→待接单(10)工作室看到新订单
B) 🔑 同意验收 — 丸掌柜先改自己 400→700,再调 ftOrderOpenApi.checkSuccess()
层级变化前变化后说明
丸掌柜用户点击「同意验收」completeOrder()代码第506行
丸掌柜待验收(400/401)已完成(700/701) ✅先改自己!
↳ 调用福通ftOrderOpenApi.checkSuccess()
福通子单待验收(50)验收成功(150) ✅CHECK_SUCCESS
福通主单待验收(40)验收成功(50) ✅CHECK_SUCCESS,发送结算给Orbit
Orbit 父单待验收(40)已完成(50) ✅COMPLETED
打手如未被验收→已完成(40) ✅上游同步
代码依据:OrderBaseActionApiImpl.completeOrder(506行)→状态→700(522行)→COMPLETE事件(540行)→OrderActionEventListener(62行)→FtOrderService.handleCompleteOrder(195行)→ftOrderOpenApi.checkSuccess()
C) 申请售后 — 丸掌柜 →600,调 ftOrderOpenApi.arbitration()
层级变化说明
丸掌柜任意→售后中(600/601)可从200/300/400/500发起
福通主单→售后中(70) AFTER_SALES_ING
福通子单→仲裁中(70) ARBITRATION_ING
Orbit 父单→售后中(60) IN_AFTERSALE
D) 审核售后完成 — 丸掌柜 →800,调 ftOrderOpenApi.afterSaleEnd()
层级变化说明
丸掌柜售后中(600)→已售后(800) ✅人工审核;或福通自动回调(autoAfterSale=true)
福通主单售后中(70)→售后结束(80) ✅AFTER_SALES_END
Orbit 父单售后中(60)→售后完成(70) ✅AFTERSALE_COMPLETED

全链路操作速查表(按角色分列,完整中文释义)

打手操作 打手状态变化 工作室操作 Orbit父单 福通子单 福通主单 丸掌柜 丸掌柜操作
接单待接单(10)→代练中(20)
上号子状态→21(已上号)
上传首图不变
申请验收代练中(20)→待验收(30)🔴 到此为止!不穿透!需工作室手动点「申请验收」才能向上同步
取消验收待验收(30)→代练中(20)不影响福通
申请撤销代练中(20)→撤销中(50)不影响福通
取消撤销撤销中(50)→代练中(20)不影响福通
拒绝接单待接单(10)→清指派不影响上层
确认接单待接单(10)→已接单(20)不变不变不变
拒绝接单→已拒绝(80) ✅→拒绝结束(180) ✅
申请验收代练中(30)→待验收(40)服务中(30)→待验收(50)代练中(30)→待验收(40)服务中(300)→待验收(400)
申请撤销代练中(30)→异常中(35)服务中(30)→异常中(40)/撤销中(60)代练中(30)→异常中(60)服务中(300)→异常中(500)
验收子单父单不变
待付款(100)→待接单(200)支付
待接单(10)已发布(20)已推送(20)待接单(200/202)推单
已完成(50) ✅验收成功(150) ✅验收成功(50) ✅待验收(400)→已完成(700) ✅同意验收
售后中(60)仲裁中(70)售后中(70)→售后中(600)申请售后
售后完成(70) ✅仲裁结束(170) ✅售后结束(80) ✅→已售后(800) ✅审核售后

一图速查:全链路状态对应表

丸掌柜
OrderBaseStatusEnum
福通·主单
OrderStatusEnum
福通·子单
SupplyOrderStatusEnum
丸友集履约
OrbitOrderStatus
打手
OrderStatusEnum
100 待付款 (福通尚未创建订单)
200 待接单 20 已推送 20 已发布 10 待接单 (未到打手)
300 服务中 30 代练中 30 服务中 30 代练中 20 代练中
400 待验收 40 待验收 50 待验收 40 待验收 30 待验收
500 异常中 60 异常中 40 / 60 / 70 35 异常中 50 撤销中
600 售后中 70 售后中 70 仲裁中 60 售后中
700 已完成 50 验收成功 ✅ 150 验收成功 ✅ 50 已完成 ✅ 40 已完成 ✅
800 已售后 80 售后结束 ✅ 170 仲裁结束 ✅ 70 售后完成 ✅
900 已取消 0 取消 ✅ 90 已取消 ✅ 70 已取消 ✅

✅ = 终态(不可再流转)


附录:全系统订单状态枚举字典

以下列出各系统订单相关状态枚举的所有值,来源于代码实际定义,方便产品/运营对照查阅。

一、丸掌柜 — OrderBaseStatusEnum (主状态) venus-saas-order-base
状态码枚举名中文名称终态说明
100TO_PAY待付款下单后初始状态,等待用户支付
200TO_TAKING待接单已支付,等待推单给福通
300IN_TAKING服务中打手已接单,正在代练中
400TO_ACCEPT待验收打手申请验收,等待用户确认
500IN_EXCEPTION异常中订单发生异常(撤销/仲裁/推单失败等)
600IN_AFTER_SALES售后中用户/客服发起售后处理
700SUCCESS已完成验收通过,订单完成
800AFTER_SALES_SUCCESS已售后售后处理完毕
900CANCEL已取消用户取消订单
一-附:丸掌柜 — OrderBaseSubStatusEnum (子状态)
子状态码枚举名中文名称所属主状态说明
101TO_PAY待付款100-待付款初始子状态
201TO_TAKING待接单200-待接单已支付但未推单
202TO_TAKING_PUSHED待接单·已推单200-待接单已推送给福通
301IN_TAKING代练中300-服务中打手正在执行
401TO_ACCEPT待验收400-待验收等待用户验收
501TO_TAKING_PUSHED_EXCEPTION推单异常500-异常中推单阶段异常
502IN_TAKING_EXCEPTION代练中异常500-异常中代练阶段异常
601IN_AFTER_SALE售后中600-售后中售后处理中
701SUCCESS已完成700-已完成正常完成
702SUCCESS_APPEAL已完成·申诉中700-已完成完成后发起申诉
703SUCCESS_APPEAL_SUCCESS已完成·申诉完成700-已完成申诉处理完毕
801AFTER_SALE_SUCCESS已售后800-已售后售后正常完成
802AFTER_SALE_SUCCESS_APPEAL已售后·申诉中800-已售后售后完成后申诉
803AFTER_SALE_SUCCESS_APPEAL_SUCCESS已售后·申诉完成800-已售后售后申诉处理完毕
901TO_PAY_CANCEL待支付取消900-已取消支付前取消
二、福通主单 — OrderStatusEnum (主单状态) venus-dl-futong
状态码枚举名中文名称终态说明
1INIT已录单福通主单初始状态,订单已录入
10HAS_PAY已支付用户完成支付
20PUSH_END已推送已推送到供应链(丸友集等)
30SERVE_ING已接收/代练中供应链已接收,正在执行
40CHECK_ING待验收等待用户验收
50CHECK_SUCCESS验收成功用户验收通过,主单完成
60SERVE_ERROR异常中主单发生异常
70AFTER_SALES_ING售后中进入售后流程
80AFTER_SALES_END售后结束售后完成
二-附:福通子单 — SupplyOrderStatusEnum (子单状态) 核心枚举
状态码枚举名中文名称终态说明
0CANCEL取消订单已取消
10INIT初始化/未发布子单初始状态
12PUSH_FAILED发布失败推单到供应链失败
20PUSH_SUCCESS已发布推单成功,等待接单
30SERVE_ING服务中打手已接单,执行中
40SERVE_ERROR异常中子单发生异常
50CHECK_ING待验收等待验收
60SERVE_BACK撤销中撤销流程进行中
70ARBITRATION_ING仲裁中仲裁流程进行中
80LOCKING锁定中订单被锁定
150CHECK_SUCCESS验收成功验收通过
160SERVE_BACK_END撤销结束撤销完成
170ARBITRATION_END仲裁结束仲裁完成
180REJECT_END拒绝结束被拒绝(终态)
二-附:福通子单 — SupplyOrderSubStatusEnum (子单子状态)
子状态码枚举名中文名称说明
61SERVE_BACK_BY_TAKE打手发起撤销接单方(打手方)发起撤销
62SERVE_BACK_BY_CREATE发单方发起撤销中发单方(客服)发起撤销
63SERVE_BACK_REJECT撤销拒绝撤销申请被拒绝
71ARBITRATION_ING_BY_TAKE打手发起仲裁中接单方发起仲裁
72ARBITRATION_ING_BY_CREATE发单方发起仲裁中发单方发起仲裁
151CHECK_SUCCESS_BY_CREATE用户主动点击验收成功用户手动验收
152CHECK_SUCCESS_BY_TAKE自动验收成功系统自动验收
160SERVE_BACK_END_BY_TAKE撤销结束撤销流程完成
170ARBITRATION_END_BY_TAKE仲裁结束仲裁流程完成
171APPLY_APPEAL发单方发起申诉·申诉中客服发起申诉
172APPEAL_DEAL_COMPLETE申诉处理完成申诉已处理
173APPEAL_DEAL_REJECT申诉被驳回申诉驳回
174APPLY_LOCK发单方申请子单锁定锁定子单
175CANCEL_LOCK发单方取消子单锁定取消锁定
三、丸友集履约 — OrbitOrderStatus (父单状态) venus-orbit-base
状态码枚举名中文名称终态说明
10PENDING_ACCEPT待接单福通推送订单,工作室还未接单
20ACCEPTED已接单工作室确认接单,等待派单给打手
30IN_PROGRESS代练中打手已接单,正在执行
35IN_EXCEPTION异常中代练过程中出现异常
40PENDING_VERIFICATION待验收等待验收(客服手动操作后进入此状态)
50COMPLETED已完成验收通过(终态)
60IN_AFTERSALE售后中上游发起售后
70AFTERSALE_COMPLETED售后完成售后处理完成(终态)
80REJECTED已拒绝工作室拒绝接单(终态)
90CANCEL已取消取消订单(终态)
100REVOKED已撤销上游同意撤销(终态)
三-附:丸友集履约 — OrbitSubStatus (父单子状态)
子状态码枚举名中文名称说明
0IN_SERVICE服务中正常服务状态
1REVOKING撤销中撤销流程进行中
2REVOKED已撤销撤销完成
3CANCELLING取消中取消流程进行中
4PENDING_LOGIN待上号等待打手上号
5PENDING_SALE待售后等待售后处理
四、打手订单 — OrderStatusEnum (打手订单状态) venus-player-base
状态码枚举名中文名称终态说明
10PENDING待接单订单创建后初始状态,等待打手抢单
20IN_PROGRESS代练中打手已接单,正在代练。子状态21=已上号
30PENDING_ACCEPTANCE待验收打手完成代练,申请验收
40COMPLETED已完成验收通过,订单完成(终态)
50REVOKING撤销中已提交撤销申请,等待审核
60REVOKED撤销完成撤销审核通过(终态)
70CANCELLED已取消订单取消(终态)
80CANCELLING取消中订单正在取消中
四-附:打手订单 — OrderSubStatus (子状态,仅一个值)
子状态码枚举名中文名称说明
21LOGGED_IN已上号打手已登录游戏账号,申请验收的前置条件

主状态流转总图(含Orbit客服手动卡口)

丸掌柜(100)待付款 ──支付──▶ 丸掌柜(200)待接单 ──推单──▶ 丸掌柜(200/202)已推单
                                            │
                    ┌───────────────────────┘
                    ▼
            福通主单(1)已录单 → 福通主单(10)已支付 → 福通主单(20)已推送
                    │
            福通子单(10)初始化 → 福通子单(20)已发布 → 丸友集父单(10)待接单
                                                          │
                                          ┌───────────────┘
                                          ▼
                                   客服确认接单: 丸友集父单(20)已接单
                                          │
                                          ▼ 派单给打手
                                   打手(10)待接单 ──抢单──▶ 打手(20)代练中(已上号21)
                                          │                      │
                                          │         ┌────────────┘
                                          │         ▼
                                          │  打手(30)待验收 ─── 只改打手状态 ──▶ 丸友集父单仍为(30) ──▶ 福通仍为(30) ──▶ 丸掌柜仍为(300)
                                          │         │                      │
                                          │         │   🔴 Orbit客服手动点击「申请验收」POST /pc/orbit/order/applyAcceptance
                                          │         │         │            │
                                          │         │         ▼            │
                                          │         │  丸友集父单(30→40) + 自动验收子单 → Player(30→40)已完成 ✅
                                          │         │         │            │
                                          │         │         ▼ Kafka     │
                                          │         │  福通子单(30→50)待验收 → 福通主单(30→40)待验收 → 丸掌柜(300→400)待验收
                                          │         │         │            │
                                          │         │   🔴 丸掌柜用户点击「同意验收」(丸掌柜先改自己→700, 再通知福通checkSuccess)
                                          │         │         │            │
                                          │         │         ▼            │
                                          │         │  福通子单(50→150) ✅ → 福通主单(40→50) ✅ → 丸友集(40→50) ✅
                                          │         │         │            │
                                          │         │         ▼            │
                                          │         │  丸掌柜(700)已完成 ✅            │
                                          │         │
                                          │         ├──客服申请撤销──▶ 丸友集父单(30→35)异常 ──Kafka──▶ 福通子单(40/60) ──▶ 福通主单(60)异常中
                                          │         │                    │
                                          │         │                    ▼
                                          │         │           丸掌柜(500)异常中
                                          │         │                    │
                                          │         │         ┌─取消异常─┘
                                          │         │         ▼
                                          │         │  丸掌柜(300)恢复服务中
                                          │         │
                                          │         └──取消──▶ 打手(70)已取消 ✅ ──▶ 丸友集(90)已取消 ✅
                                          │                           │
                                          │                           ▼
                                          │                   丸掌柜(900)已取消 ✅
                                          │
                                          └──申请售后──▶ 丸掌柜(600)售后中
                                                          │
                                                          ▼
                                                  福通主单(70)售后中 ──▶ 福通子单(70)仲裁中 ──▶ 丸友集(60)售后中
                                                          │
                                         ┌─客服处理售后或自动──┘
                                         ▼
                                  丸掌柜(800)已售后 ✅ ──▶ 福通主单(80)售后结束 ✅ ──▶ 丸友集(70)售后完成 ✅