package elm import ( "git.rosy.net.cn/baseapi/platformapi/elmapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/controller" ) type Controller struct { } func (c *Controller) OnCallbackMsg(msg *elmapi.CallbackMsg) (retVal *elmapi.CallbackResponse) { if msg.Type == elmapi.MsgTypeOrderValid { innerMsg := make(map[string]interface{}) err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) if err != nil { retVal = elmapi.Err2CallbackResponse(err, "") } else { innerMsg["msgType"] = msg.Type retVal = new(OrderController).OnOrderNewMsg(innerMsg) } } else if msg.Type > elmapi.MsgTypeOrderValid && msg.Type < elmapi.MsgTypeUserApplyCancel { var innerMsg elmapi.CallbackOrderStatusMsg err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) if err != nil { retVal = elmapi.Err2CallbackResponse(err, "") } else { innerMsg.MsgType = msg.Type retVal = new(OrderController).OnOrderStatusMsg(&innerMsg) } } else if msg.Type >= elmapi.MsgTypeUserApplyCancel && msg.Type < elmapi.MsgTypeUserUrgeOrder { var innerMsg elmapi.CallbackOrderCancelRefundMsg err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) if err != nil { retVal = elmapi.Err2CallbackResponse(err, "") } else { innerMsg.MsgType = msg.Type retVal = new(OrderController).OnOrderCancelRefundMsg(&innerMsg) } } else if msg.Type == elmapi.MsgTypeUserUrgeOrder { var innerMsg elmapi.CallbackOrderUrgeMsg err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) if err != nil { retVal = elmapi.Err2CallbackResponse(err, "") } else { innerMsg.MsgType = msg.Type controller.CallMsgHandler(func() { retVal = new(OrderController).onOrderUserUrgeOrder(&innerMsg) }, innerMsg.OrderID) } } else if msg.Type >= elmapi.MsgTypeWaybillWait4DeliveryVendor && msg.Type <= elmapi.MsgTypeRejectedSystemError { var innerMsg elmapi.CallbackWaybillStatusMsg err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg) if err != nil { retVal = elmapi.Err2CallbackResponse(err, "") } else { innerMsg.MsgType = msg.Type retVal = new(WaybillController).OnWaybillStatusMsg(&innerMsg) } } else { retVal = elmapi.SuccessResponse } return retVal }