From 042a0d17522affb227de882bad2181b07981cc43 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 2 Dec 2018 22:03:09 +0800 Subject: [PATCH] - FakeMsgTypeOrderReceived, FakeMsgTypeOrderDelivering for mtwm --- business/partner/purchase/mtwm/callback.go | 2 +- business/partner/purchase/mtwm/order.go | 22 ++++++++++++++++++++-- business/partner/purchase/mtwm/waybill.go | 19 ++++++++++++++++++- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/mtwm/callback.go b/business/partner/purchase/mtwm/callback.go index 9233c88f3..d827a32a2 100644 --- a/business/partner/purchase/mtwm/callback.go +++ b/business/partner/purchase/mtwm/callback.go @@ -24,5 +24,5 @@ func OnOrderCallbackMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackRes } func GetOrderIDFromMsg(msg *mtwmapi.CallbackMsg) string { - return msg.Data.Get("order_id") + return msg.Data.Get(mtwmapi.KeyOrderID) } diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 3be8d2604..20ce34fa7 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -1,6 +1,7 @@ package mtwm import ( + "net/url" "time" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" @@ -12,6 +13,11 @@ import ( "git.rosy.net.cn/jx-callback/globals/api" ) +const ( + FakeMsgTypeOrderReceived = "orderReceived" + FakeMsgTypeOrderDelivering = "orderDelivering" +) + var ( VendorStatus2StatusMap = map[string]int{ mtwmapi.OrderStatusUserCommitted: model.OrderStatusUnknown, @@ -138,7 +144,7 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or case mtwmapi.MsgTypeOrderCanceled: vendorStatus = mtwmapi.OrderStatusCanceled remark = msg.Data.Get("reason") - case mtwmapi.MsgTypeNewOrder, mtwmapi.MsgTypeOrderAccepted, mtwmapi.MsgTypeOrderFinished: + case mtwmapi.MsgTypeNewOrder, FakeMsgTypeOrderReceived, mtwmapi.MsgTypeOrderAccepted, FakeMsgTypeOrderDelivering, mtwmapi.MsgTypeOrderFinished: vendorStatus = msg.Data.Get("status") statusTime = utils.Str2Int64(msg.Data.Get("utime")) case mtwmapi.MsgTypeOrderRefund, mtwmapi.MsgTypeOrderPartialRefund: @@ -164,7 +170,19 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) { if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite { if isAcceptIt { - err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID)) + if err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID)); err == nil { + msg := &mtwmapi.CallbackMsg{ + Cmd: FakeMsgTypeOrderReceived, + Data: url.Values{}, + } + msg.Data.Set("timestamp", utils.Int64ToStr(time.Now().Unix())) + msg.Data.Set("utime", msg.Data.Get("timestamp")) + msg.Data.Set(mtwmapi.KeyOrderID, order.VendorOrderID) + msg.Data.Set("status", mtwmapi.OrderStatusReceived) + go func() { + OnOrderCallbackMsg(msg) + }() + } } else { err = api.MtwmAPI.OrderCancel(utils.Str2Int64(order.VendorOrderID)) } diff --git a/business/partner/purchase/mtwm/waybill.go b/business/partner/purchase/mtwm/waybill.go index 3aa3f60c3..006a6ae9c 100644 --- a/business/partner/purchase/mtwm/waybill.go +++ b/business/partner/purchase/mtwm/waybill.go @@ -1,6 +1,9 @@ package mtwm import ( + "net/url" + "time" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" @@ -27,7 +30,21 @@ func (p *PurchaseHandler) GetWaybillStatusFromVendorStatus(vendorStatus string) func (c *PurchaseHandler) onWaybillMsg(msg *mtwmapi.CallbackMsg) (response *mtwmapi.CallbackResponse) { waybill := c.callbackMsg2Waybill(msg) - return mtwmapi.Err2CallbackResponse(partner.CurOrderManager.OnWaybillStatusChanged(waybill), "") + err := partner.CurOrderManager.OnWaybillStatusChanged(waybill) + if err == nil && waybill.Status == model.WaybillStatusDelivering { + msg := &mtwmapi.CallbackMsg{ + Cmd: FakeMsgTypeOrderDelivering, + Data: url.Values{}, + } + msg.Data.Set("timestamp", utils.Int64ToStr(time.Now().Unix())) + msg.Data.Set("utime", msg.Data.Get("timestamp")) + msg.Data.Set(mtwmapi.KeyOrderID, waybill.VendorOrderID) + msg.Data.Set("status", mtwmapi.OrderStatusDelivering) + go func() { + OnOrderCallbackMsg(msg) + }() + } + return mtwmapi.Err2CallbackResponse(err, "") } func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal *model.Waybill) {