package mtwm

import (
	"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
	"git.rosy.net.cn/jx-callback/business/jxutils"
	"git.rosy.net.cn/jx-callback/business/model"
)

// 美团回调接口
func OnCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) {
	if CurPurchaseHandler != nil {
		if msg.Cmd == mtwmapi.MsgTypeStoreStatusChanged || msg.Cmd == mtwmapi.MsgTypeStoreAuditStatusChanged {
			response = CurPurchaseHandler.onStoreStatusChanged(msg)
		} else if msg.Cmd == mtwmapi.MsgTypePrivateNumberDowngrade {
			response = CurPurchaseHandler.onNumberDowngrade(msg)
		} else if msg.Cmd == mtwmapi.MsgTypeStoreBind {
		} else {
			if orderID := GetOrderIDFromMsg(msg); orderID != "" {
				jxutils.CallMsgHandler(func() {
					switch msg.Cmd {
					case mtwmapi.MsgTypeWaybillStatus:
						response = CurPurchaseHandler.onWaybillMsg(msg)
					default:
						response = CurPurchaseHandler.onOrderMsg(msg)
					}
				}, jxutils.ComposeUniversalOrderID(orderID, model.VendorIDMTWM))
			}
			/*if msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderPartialRefund {
				utils.CallFuncAsync(func() {
					OnFinancialMsg(msg)
				})
			} */
		}
	}
	return response
}

func GetOrderIDFromMsg(msg *mtwmapi.CallbackMsg) string {
	return msg.FormData.Get(mtwmapi.KeyOrderID)
}

func GetVendorStoreIDFromMsg(msg *mtwmapi.CallbackMsg) string {
	return msg.FormData.Get(mtwmapi.KeyAppPoiCode)
}
