- 完成美团外卖运单调度

- 整理虚拟消息
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

@@ -155,9 +155,9 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
globals.SugarLogger.Debugf("ebai AcceptOrRefuseOrder orderID:%s", order.VendorOrderID)
if isAcceptIt {
p.postFakeOrderAcceptMsg(order.VendorOrderID)
p.postFakeMsg(order.VendorOrderID, fakeAcceptOrder)
} else {
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, "bu")
}
}
@@ -166,11 +166,10 @@ func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
globals.SugarLogger.Debugf("ebai PickupGoods orderID:%s", order.VendorOrderID)
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderConfirm(order.VendorOrderID)
// if err == nil && !isSelfDeilivery {
// err = api.EbaiAPI.OrderCallDelivery(order.VendorOrderID)
// }
} else {
p.postFakeMsg(order.VendorOrderID, ebaiapi.OrderStatusAccepted)
}
return err
}
@@ -178,7 +177,7 @@ func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery b
// 将订单从购物平台配送转为自送
func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
globals.SugarLogger.Debugf("ebai Swtich2SelfDeliver orderID:%s", order.VendorOrderID)
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderSwitchselfdelivery(order.VendorOrderID)
}
return err
@@ -194,7 +193,7 @@ func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName
// 完全自送的门店表示开始配送
func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
globals.SugarLogger.Debugf("ebai SelfDeliverDelivering orderID:%s", order.VendorOrderID)
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderSendOut(order.VendorOrderID, userName)
}
return err
@@ -203,7 +202,7 @@ func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
// 完全自送的门店表示配送完成
func (p *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
globals.SugarLogger.Debugf("ebai SelfDeliverDelievered orderID:%s", order.VendorOrderID)
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
if globals.EnableEbaiStoreWrite {
err = api.EbaiAPI.OrderComplete(order.VendorOrderID, userName)
}
return err
@@ -215,26 +214,11 @@ func (c *PurchaseHandler) onOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.
retVal = c.onOrderNew(msg)
} else {
status := c.callbackMsg2Status(msg)
var err error
if status != nil {
err := partner.CurOrderManager.OnOrderStatusChanged(status)
// 如果订单所属的门店是专送模式,直接跳到拣货完成,因为饿百没有拣货完成的概念,接单就视为拣货完成
// if status.Status == model.OrderStatusAccepted {
// postFakeFinishedPickupMsg := true
// vendorOrderID := GetOrderIDFromMsg(msg)
// if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDEBAI); err == nil {
// if c.getOrderStoreDeliveryType(order) != scheduler.StoreDeliveryTypeByPlatform {
// postFakeFinishedPickupMsg = false
// }
// }
// if postFakeFinishedPickupMsg {
// c.postFakeOrderAcceptMsg(vendorOrderID)
// }
// }
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil)
} else {
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, nil, nil)
err = partner.CurOrderManager.OnOrderStatusChanged(status)
}
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil)
}
return retVal
}
@@ -321,12 +305,12 @@ func (c *PurchaseHandler) getOrderStoreDeliveryType(order *model.GoodsOrder) (de
return scheduler.StoreDeliveryTypeByPlatform
}
func (c *PurchaseHandler) postFakeOrderAcceptMsg(vendorOrderID string) {
func (c *PurchaseHandler) postFakeMsg(vendorOrderID, vendorStatus string) {
msg := &ebaiapi.CallbackMsg{
Cmd: ebaiapi.CmdOrderStatus,
Timestamp: time.Now().Unix(),
Body: map[string]interface{}{
"status": fakeAcceptOrder,
"status": vendorStatus,
"order_id": vendorOrderID,
},
}