- ebai callback.
This commit is contained in:
@@ -1,2 +1,61 @@
|
||||
package ebai
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/platformapi/ebaiapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
var (
|
||||
VendorWaybillStatus2StatusMap = map[string]int{
|
||||
ebaiapi.WaybillStatusNew: model.WaybillStatusNew,
|
||||
ebaiapi.WaybillStatusRequestDelivery: model.WaybillStatusUnknown,
|
||||
ebaiapi.WaybillStatusWait4Courier: model.WaybillStatusUnknown,
|
||||
ebaiapi.WaybillStatusCourierAccepted: model.WaybillStatusAccepted,
|
||||
ebaiapi.WaybillStatusCourierPickedup: model.WaybillStatusDelivering,
|
||||
ebaiapi.WaybillStatusDeliveryCancled: model.WaybillStatusCanceled,
|
||||
ebaiapi.WaybillStatusFinished: model.WaybillStatusDelivered,
|
||||
ebaiapi.WaybillStatusExceptional: model.WaybillStatusUnknown,
|
||||
ebaiapi.WaybillStatusSelfDelivery: model.WaybillStatusUnknown,
|
||||
ebaiapi.WaybillStatusNotInDelivering: model.WaybillStatusUnknown,
|
||||
ebaiapi.WaybillStatusDeliveryRejected: model.WaybillStatusAcceptCanceled, // ?
|
||||
}
|
||||
)
|
||||
|
||||
func (p *PurchaseHandler) GetWaybillStatusFromVendorStatus(vendorStatus string) int {
|
||||
if status, ok := VendorWaybillStatus2StatusMap[vendorStatus]; ok {
|
||||
return status
|
||||
}
|
||||
return model.WaybillStatusUnknown
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) onWaybillMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.CallbackResponse) {
|
||||
order := c.callbackMsg2Waybill(msg)
|
||||
if order.Status == model.WaybillStatusAccepted {
|
||||
if result, err := api.EbaiAPI.OrderGet(order.VendorOrderID); err != nil {
|
||||
return ebaiapi.Err2CallbackResponse(err, order.VendorOrderID)
|
||||
} else {
|
||||
order.CourierMobile = utils.Interface2String(result["order"].(map[string]interface{})["delivery_phone"])
|
||||
}
|
||||
}
|
||||
return ebaiapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(order), order.VendorStatus)
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) callbackMsg2Waybill(msg *ebaiapi.CallbackMsg) (retVal *model.Waybill) {
|
||||
body := msg.Body
|
||||
vendorStatus := body["status"].(string)
|
||||
retVal = &model.Waybill{
|
||||
VendorOrderID: body["order_id"].(string),
|
||||
OrderVendorID: model.VendorIDEBAI,
|
||||
VendorWaybillID: body["order_id"].(string),
|
||||
WaybillVendorID: model.VendorIDEBAI,
|
||||
Status: c.GetWaybillStatusFromVendorStatus(vendorStatus),
|
||||
CourierName: "", // 饿百取不到骑手的名字
|
||||
// CourierMobile: msg.Phone,
|
||||
VendorStatus: vendorStatus,
|
||||
StatusTime: utils.Timestamp2Time(msg.TimeStamp),
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user