! 新增饿百假接单消息,将饿百的接单当成拣货完成
This commit is contained in:
@@ -21,16 +21,21 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
acceptOrderDelay = 180 * time.Second
|
// acceptOrderDelay = 180 * time.Second
|
||||||
fakePickedUp = "9527"
|
pickupOrderDelay = 240 * time.Second
|
||||||
|
pickupOrderGap = 30
|
||||||
|
// fakePickedUp = "9527"
|
||||||
fakeUserApplyCancel = "user_apply_cancel"
|
fakeUserApplyCancel = "user_apply_cancel"
|
||||||
|
fakeAcceptOrder = "accept_order"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// 饿百的接单会直接召唤配送,为了统一将饿百的接单影射成拣货完成,然后模拟一个接单消息
|
||||||
|
|
||||||
var (
|
var (
|
||||||
VendorStatus2StatusMap = map[string]int{
|
VendorStatus2StatusMap = map[string]int{
|
||||||
ebaiapi.OrderStatusNew: model.OrderStatusNew,
|
ebaiapi.OrderStatusNew: model.OrderStatusNew,
|
||||||
ebaiapi.OrderStatusAccepted: model.OrderStatusAccepted,
|
fakeAcceptOrder: model.OrderStatusAccepted,
|
||||||
fakePickedUp: model.OrderStatusFinishedPickup,
|
ebaiapi.OrderStatusAccepted: model.OrderStatusFinishedPickup,
|
||||||
fakeUserApplyCancel: model.OrderStatusApplyCancel,
|
fakeUserApplyCancel: model.OrderStatusApplyCancel,
|
||||||
ebaiapi.OrderStatusCourierAccepted: model.OrderStatusDelivering,
|
ebaiapi.OrderStatusCourierAccepted: model.OrderStatusDelivering,
|
||||||
ebaiapi.OrderStatusCourierPickedup: model.OrderStatusDelivering,
|
ebaiapi.OrderStatusCourierPickedup: model.OrderStatusDelivering,
|
||||||
@@ -148,22 +153,25 @@ func (p *PurchaseHandler) Map2Order(orderData map[string]interface{}) (order *mo
|
|||||||
|
|
||||||
func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("ebai AcceptOrRefuseOrder orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("ebai AcceptOrRefuseOrder orderID:%s", order.VendorOrderID)
|
||||||
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
|
if isAcceptIt {
|
||||||
if isAcceptIt {
|
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
|
||||||
err = api.EbaiAPI.OrderConfirm(order.VendorOrderID)
|
p.postFakeOrderAcceptMsg(order.VendorOrderID)
|
||||||
} else {
|
|
||||||
err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, "bu")
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
err = api.EbaiAPI.OrderCancel(order.VendorOrderID, ebaiapi.CancelTypeCustom, "bu")
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
|
func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
|
||||||
globals.SugarLogger.Debugf("ebai PickupGoods orderID:%s", order.VendorOrderID)
|
globals.SugarLogger.Debugf("ebai PickupGoods orderID:%s", order.VendorOrderID)
|
||||||
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite && !isSelfDeilivery {
|
if globals.EnableStoreWrite && globals.EnableEbaiStoreWrite {
|
||||||
err = api.EbaiAPI.OrderCallDelivery(order.VendorOrderID)
|
if !isSelfDeilivery {
|
||||||
|
err = api.EbaiAPI.OrderCallDelivery(order.VendorOrderID)
|
||||||
|
} else {
|
||||||
|
err = api.EbaiAPI.OrderConfirm(order.VendorOrderID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
p.postFakeFinishedPickupMsg(order.VendorOrderID) // 饿百没有拣货完成事件,模拟发送
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,18 +219,18 @@ func (c *PurchaseHandler) onOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaiapi.
|
|||||||
err := partner.CurOrderManager.OnOrderStatusChanged(status)
|
err := partner.CurOrderManager.OnOrderStatusChanged(status)
|
||||||
|
|
||||||
// 如果订单所属的门店是专送模式,直接跳到拣货完成,因为饿百没有拣货完成的概念,接单就视为拣货完成
|
// 如果订单所属的门店是专送模式,直接跳到拣货完成,因为饿百没有拣货完成的概念,接单就视为拣货完成
|
||||||
if status.Status == model.OrderStatusAccepted {
|
// if status.Status == model.OrderStatusAccepted {
|
||||||
postFakeFinishedPickupMsg := true
|
// postFakeFinishedPickupMsg := true
|
||||||
vendorOrderID := GetOrderIDFromMsg(msg)
|
// vendorOrderID := GetOrderIDFromMsg(msg)
|
||||||
if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDEBAI); err == nil {
|
// if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDEBAI); err == nil {
|
||||||
if c.getOrderStoreDeliveryType(order) != scheduler.StoreDeliveryTypeByPlatform {
|
// if c.getOrderStoreDeliveryType(order) != scheduler.StoreDeliveryTypeByPlatform {
|
||||||
postFakeFinishedPickupMsg = false
|
// postFakeFinishedPickupMsg = false
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if postFakeFinishedPickupMsg {
|
// if postFakeFinishedPickupMsg {
|
||||||
c.postFakeFinishedPickupMsg(vendorOrderID)
|
// c.postFakeOrderAcceptMsg(vendorOrderID)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil)
|
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil)
|
||||||
} else {
|
} else {
|
||||||
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, nil, nil)
|
retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, nil, nil)
|
||||||
@@ -278,9 +286,10 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *ebaiapi.CallbackMsg) (orderSta
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) GetStatusActionTimeout(statusType, status int) (params *partner.StatusActionParams) {
|
func (c *PurchaseHandler) GetStatusActionTimeout(statusType, status int) (params *partner.StatusActionParams) {
|
||||||
if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusNew {
|
if statusType == scheduler.TimerStatusTypeOrder && status == model.OrderStatusAccepted {
|
||||||
params = &partner.StatusActionParams{ // 饿百开了专送店的订单没有拣货状态,接单后就为拣货完成,所以要延迟接单,否则门店来不及备货
|
params = &partner.StatusActionParams{ // 饿百要求在5分钟内拣货,不然订单会被取消
|
||||||
Timeout: acceptOrderDelay,
|
Timeout: pickupOrderDelay,
|
||||||
|
TimeoutGap: pickupOrderGap,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return params
|
return params
|
||||||
@@ -304,12 +313,12 @@ func (c *PurchaseHandler) getOrderStoreDeliveryType(order *model.GoodsOrder) (de
|
|||||||
return scheduler.StoreDeliveryTypeByPlatform
|
return scheduler.StoreDeliveryTypeByPlatform
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) postFakeFinishedPickupMsg(vendorOrderID string) {
|
func (c *PurchaseHandler) postFakeOrderAcceptMsg(vendorOrderID string) {
|
||||||
msg := &ebaiapi.CallbackMsg{
|
msg := &ebaiapi.CallbackMsg{
|
||||||
Cmd: ebaiapi.CmdOrderStatus,
|
Cmd: ebaiapi.CmdOrderStatus,
|
||||||
Timestamp: time.Now().Unix(),
|
Timestamp: time.Now().Unix(),
|
||||||
Body: map[string]interface{}{
|
Body: map[string]interface{}{
|
||||||
"status": json.Number(fakePickedUp), // json.Number实际是string
|
"status": json.Number(fakeAcceptOrder), // json.Number实际是string
|
||||||
"order_id": vendorOrderID,
|
"order_id": vendorOrderID,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user