package ebai import ( "git.rosy.net.cn/baseapi/platformapi/ebaiapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/globals" ) func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse) { globals.SugarLogger.Debugf("ebai OnCallbackMsg msg:%s", utils.Format4Output(msg, true)) if CurPurchaseHandler != nil { globals.SugarLogger.Debugf("ebai OnCallbackMsg msg 1") if orderID := GetOrderIDFromMsg(msg); orderID != "" { globals.SugarLogger.Debugf("ebai OnCallbackMsg msg 2 ,%d", orderID) jxutils.CallMsgHandler(func() { globals.SugarLogger.Debugf("ebai OnCallbackMsg msg 2.5 ,%s", msg.Cmd) switch msg.Cmd { case ebaiapi.CmdOrderCreate, ebaiapi.CmdOrderStatus, ebaiapi.CmdOrderUserCancel, ebaiapi.CmdOrderPartRefund: globals.SugarLogger.Debugf("ebai OnCallbackMsg msg 3 ,%s", msg.Cmd) response = CurPurchaseHandler.onOrderMsg(msg) case ebaiapi.CmdOrderDeliveryStatus: response = CurPurchaseHandler.onWaybillMsg(msg) } }, jxutils.ComposeUniversalOrderID(orderID, model.VendorIDEBAI)) } if /*msg.Cmd == ebaiapi.CmdOrderPartRefund || msg.Cmd == ebaiapi.CmdOrderUserCancel || */ msg.Cmd == ebaiapi.CmdOrderDeliveryStatus { response = CurPurchaseHandler.OnFinancialMsg(msg) } else if msg.Cmd == ebaiapi.CmdShopMsgPush { response = CurPurchaseHandler.onShopMsgPush(msg) } } return response } func GetOrderIDFromMsg(msg *ebaiapi.CallbackMsg) string { return GetOrderIDFromMap(msg.Body) } func GetOrderIDFromMap(orderMap map[string]interface{}) string { if orderID := orderMap["order_id"]; orderID != nil { if tryOrderID, ok := orderID.(string); ok { return tryOrderID } return utils.Int64ToStr(utils.MustInterface2Int64(orderID)) } return "" }