- FakeMsgTypeOrderReceived, FakeMsgTypeOrderDelivering for mtwm

This commit is contained in:
gazebo
2018-12-02 22:03:09 +08:00
parent 4bdfd03073
commit 042a0d1752
3 changed files with 39 additions and 4 deletions

View File

@@ -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)
}

View File

@@ -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))
}

View File

@@ -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) {