Files
jx-callback/business/partner/purchase/ebai/callback.go
苏尹岚 78a077d30e aa
2021-04-01 14:07:08 +08:00

50 lines
1.8 KiB
Go

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 ""
}