对照生产抓包修复发货链路:BFF 地址、上游单号取值与直判交付

- DELIVERY_BFF_BASE_URL 默认改为 https://www.jxya.top/bff(生产实际路径,非 bff-stg)
- provider_order_no 取值优先级调整为 order_no/_id/id/order_sn:抓包确认 order_sn 为平台单号回显,上游真实单号是 _id
- 上游创建订单响应 status=FINISHED 或 send_status=SUCCESS 时订单直接置为 delivered,无需等待 ship-notify
- 同步更新单测(mock 上游返回 _id/order_sn/FINISHED/SUCCESS)
This commit is contained in:
yml2213
2026-08-03 13:06:43 +08:00
parent 8dc2a4077a
commit 6eb05b322c
5 changed files with 27 additions and 13 deletions
+8 -5
View File
@@ -189,7 +189,10 @@ func TestDeliveryMerchantApiBindAndSubmit(t *testing.T) {
"code": 0,
"data": map[string]interface{}{
"order": map[string]interface{}{
"order_no": "provider-1",
"_id": "provider-1",
"order_sn": "local-order-sn",
"status": "FINISHED",
"send_status": "SUCCESS",
},
},
})
@@ -232,15 +235,15 @@ func TestDeliveryMerchantApiBindAndSubmit(t *testing.T) {
if err != nil {
t.Fatalf("submit for merchant: %v", err)
}
if submitted.Status != model.OrderStatusDelivering || submitted.ProviderOrderNo != "provider-1" {
if submitted.Status != model.OrderStatusDelivered || submitted.ProviderOrderNo != "provider-1" {
t.Fatalf("unexpected submit result: %+v", submitted)
}
var afterSubmit model.FulfillmentOrder
if err := db.Where("order_no = ?", created.Order.OrderNo).First(&afterSubmit).Error; err != nil {
t.Fatalf("reload after submit: %v", err)
}
if afterSubmit.OrderStatus != model.OrderStatusDelivering || afterSubmit.ProviderOrderNo != "provider-1" {
t.Fatalf("submit should persist delivering state: %+v", afterSubmit)
if afterSubmit.OrderStatus != model.OrderStatusDelivered || afterSubmit.ProviderOrderNo != "provider-1" || afterSubmit.DeliveredAt == nil {
t.Fatalf("submit should persist delivered state: %+v", afterSubmit)
}
if atomic.LoadInt32(&queueCreateCalls) != 1 || atomic.LoadInt32(&upstreamCalls) != 1 {
t.Fatalf("first submit should only create one queue, queue=%d upstream=%d requests=%v", queueCreateCalls, upstreamCalls, requestLog)
@@ -249,7 +252,7 @@ func TestDeliveryMerchantApiBindAndSubmit(t *testing.T) {
if err != nil {
t.Fatalf("repeat submit for merchant: %v", err)
}
if second.ProviderOrderNo != "provider-1" || second.Status != model.OrderStatusDelivering {
if second.ProviderOrderNo != "provider-1" || second.Status != model.OrderStatusDelivered {
t.Fatalf("repeat submit should reuse existing result: %+v", second)
}
if atomic.LoadInt32(&queueCreateCalls) != 1 || atomic.LoadInt32(&upstreamCalls) != 1 {