54 lines
2.1 KiB
Go
54 lines
2.1 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/jxutils/jxcontext"
|
|
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
|
|
"git.rosy.net.cn/jx-callback/business/model"
|
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
|
"git.rosy.net.cn/jx-callback/globals/api"
|
|
)
|
|
|
|
func OnCallbackMsg(msg *ebaiapi.CallbackMsg) (response *ebaiapi.CallbackResponse) {
|
|
if CurPurchaseHandler != nil {
|
|
if orderID := GetOrderIDFromMsg(msg); orderID != "" {
|
|
jxutils.CallMsgHandler(func() {
|
|
switch msg.Cmd {
|
|
case ebaiapi.CmdOrderCreate, ebaiapi.CmdOrderStatus, ebaiapi.CmdOrderUserCancel, ebaiapi.CmdOrderPartRefund:
|
|
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)
|
|
} else if msg.Cmd == ebaiapi.CmdShopUnbindMsg {
|
|
// 门店授权发生变化 17,失去授权
|
|
vendorStoreID := msg.Body["shop_list"].([]*ebaiapi.EBaiShopList)[0].ShopID
|
|
storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreID, model.VendorIDEBAI, "")
|
|
_, err = netprinter.PrintStoreStatus(jxcontext.AdminCtx, storeDetail, model.VendorIDMTWM, -9)
|
|
response = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, msg.Cmd)
|
|
}
|
|
}
|
|
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 ""
|
|
}
|