- 完成美团外卖运单调度

- 整理虚拟消息
This commit is contained in:
gazebo
2019-03-27 11:39:24 +08:00
parent 04c82289fd
commit 87ea9ff15a
3 changed files with 72 additions and 70 deletions

View File

@@ -158,7 +158,6 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap
}
}
} else {
// todo 好像没有“商家已收到”消息回调,是否需要模拟?
status := c.callbackMsg2Status(msg)
err = partner.CurOrderManager.OnOrderStatusChanged(status)
}
@@ -199,38 +198,31 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *mtwmapi.CallbackMsg) *model.Or
return orderStatus
}
func (c *PurchaseHandler) postFakeFinishedPickupMsg(vendorOrderID string) {
func (c *PurchaseHandler) postFakeMsg(vendorOrderID, cmd, vendorStatus string) {
msg := &mtwmapi.CallbackMsg{
Cmd: mtwmapi.MsgTypeOrderAccepted,
Data: make(url.Values),
}
timeStr := utils.Int64ToStr(time.Now().Unix())
msg.Data.Add(mtwmapi.KeyOrderID, vendorOrderID)
msg.Data.Add("status", mtwmapi.OrderStatusAccepted)
msg.Data.Add("timestamp", timeStr)
msg.Data.Add("utime", timeStr)
msg.Data.Set(mtwmapi.KeyOrderID, vendorOrderID)
msg.Data.Set("status", mtwmapi.OrderStatusAccepted)
msg.Data.Set("timestamp", timeStr)
msg.Data.Set("utime", timeStr)
utils.CallFuncAsync(func() {
OnOrderCallbackMsg(msg)
})
}
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite {
if isAcceptIt {
if err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID)); err == nil {
msg := &mtwmapi.CallbackMsg{
Cmd: FakeMsgTypeOrderReceived,
Data: url.Values{},
}
msg.Data.Set(mtwmapi.KeyOrderID, order.VendorOrderID)
msg.Data.Set("status", mtwmapi.OrderStatusReceived)
msg.Data.Set("timestamp", utils.Int64ToStr(time.Now().Unix()))
msg.Data.Set("utime", msg.Data.Get("timestamp"))
utils.CallFuncAsync(func() {
OnOrderCallbackMsg(msg)
})
}
} else {
if isAcceptIt {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderReceived(utils.Str2Int64(order.VendorOrderID))
}
if err == nil {
c.postFakeMsg(order.VendorOrderID, FakeMsgTypeOrderReceived, mtwmapi.OrderStatusReceived)
}
} else {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderCancel(utils.Str2Int64(order.VendorOrderID))
}
}
@@ -238,27 +230,39 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
}
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite && !isSelfDeilivery {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID))
} else {
c.postFakeFinishedPickupMsg(order.VendorOrderID)
c.postFakeMsg(order.VendorOrderID, mtwmapi.MsgTypeOrderAccepted, mtwmapi.OrderStatusAccepted)
}
return err
}
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderLogisticsChange2Self(utils.Str2Int64(order.VendorOrderID))
}
return err
}
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderArrived(utils.Str2Int64(order.VendorOrderID))
}
return err
}
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderDelivering(utils.Str2Int64(order.VendorOrderID))
}
return err
}
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.OrderArrived(utils.Str2Int64(order.VendorOrderID))
}
return err
}