diff --git a/business/partner/purchase/ebai/callback.go b/business/partner/purchase/ebai/callback.go index e7b82570a..a86dc8fa5 100644 --- a/business/partner/purchase/ebai/callback.go +++ b/business/partner/purchase/ebai/callback.go @@ -11,7 +11,7 @@ func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse if orderID := GetOrderIDFromMsg(msg); orderID != "" { jxutils.CallMsgHandler(func() { switch msg.Cmd { - case ebaiapi.CmdOrderCreate, ebaiapi.CmdOrderStatus, ebaiapi.CmdOrderUserCancel: + case ebaiapi.CmdOrderCreate, ebaiapi.CmdOrderStatus, ebaiapi.CmdOrderUserCancel, ebaiapi.CmdOrderPartRefund: response = CurPurchaseHandler.onOrderMsg(msg) case ebaiapi.CmdOrderDeliveryStatus: response = CurPurchaseHandler.onWaybillMsg(msg) diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 0fc94857b..ff31c562c 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -24,8 +24,9 @@ const ( callDeliveryDelay = 10 * time.Minute callDeliveryDelayGap = 30 // fakePickedUp = "9527" - fakeUserApplyCancel = "fake_user_apply_cancel" - fakeAcceptOrder = "fake_accept_order" + fakeUserApplyCancel = "fake_user_apply_cancel" + fakeAcceptOrder = "fake_accept_order" + fakePartRefundFinished = "fake_part_refund_finished" ) // 饿百的接单会直接召唤配送,为了统一将饿百的接单影射成拣货完成,然后模拟一个接单消息 @@ -34,6 +35,7 @@ var ( VendorStatus2StatusMap = map[string]int{ ebaiapi.OrderStatusNew: model.OrderStatusNew, fakeAcceptOrder: model.OrderStatusAccepted, + fakePartRefundFinished: model.OrderStatusAdjust, ebaiapi.OrderStatusAccepted: model.OrderStatusFinishedPickup, fakeUserApplyCancel: model.OrderStatusApplyCancel, ebaiapi.OrderStatusCourierAccepted: model.OrderStatusDelivering, @@ -269,6 +271,14 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) (orderSta } else { orderStatus = nil } + } else if msg.Cmd == ebaiapi.CmdOrderPartRefund { + if utils.Int64ToStr(utils.MustInterface2Int64(msg.Body["status"])) == ebaiapi.OrderPartRefundSuccess { + orderStatus.VendorStatus = fakePartRefundFinished + orderStatus.Status = c.GetStatusFromVendorStatus(orderStatus.VendorStatus) + orderStatus.Remark = utils.Interface2String(msg.Body["reason"]) + } else { + orderStatus = nil + } } else if status, ok := msg.Body["status"]; ok { if vendorStatus, ok := status.(string); ok { orderStatus.VendorStatus = vendorStatus