加强发货提交可靠性并统一契约口径

- 发货提交记录阶段推进与失败分类,失败不再清空 result_data
- 超时巡检区分已提交上游与提交中断两类卡单,避免误判
- 已提交上游的失败订单禁止自动重发,防止重复发货
- ship_attempts 仅在 claim 时计数,失败阶段只记录分类信息
- CanFulfill 对已提交上游的失败单返回不可发货
- 删除预留的 pending 订单状态,统一订单状态模型
- 契约改名:order.fulfillment.updated -> order.shipping.updated,fulfillment:read -> shipping:read
- 文档修正 scope 为或关系
This commit is contained in:
yml2213
2026-07-31 18:42:52 +08:00
parent 4aa5258c2d
commit eac025c92f
15 changed files with 401 additions and 86 deletions
@@ -82,11 +82,6 @@ func validateOrderStatusTransition(order *model.FulfillmentOrder, next string, k
return nil
}
switch current {
case model.OrderStatusPending:
if next == model.OrderStatusPaid || next == model.OrderStatusCancelled {
return nil
}
return errors.New("订单未支付,不能发货")
case model.OrderStatusCancelled:
return errors.New("订单已取消,不能更新状态")
case model.OrderStatusDelivered:
@@ -131,8 +126,6 @@ func canCancelOrder(order *model.FulfillmentOrder) error {
switch status {
case model.OrderStatusPaid, model.OrderStatusShipFailed:
return nil
case model.OrderStatusPending:
return errors.New("订单未支付,不能取消")
case model.OrderStatusDelivering, model.OrderStatusDelivered:
return errors.New("订单已进入发货流程,不能取消")
default: