- 完成美团外卖运单调度
- 整理虚拟消息
This commit is contained in:
@@ -226,10 +226,10 @@ func (c *PurchaseHandler) callbackMsg2Status(msg *jdapi.CallbackOrderMsg) *model
|
||||
return orderStatus
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) postFakeFinishedPickupMsg(vendorOrderID string) {
|
||||
func (c *PurchaseHandler) postFakeMsg(vendorOrderID, vendorStatus string) {
|
||||
msg := &jdapi.CallbackOrderMsg{
|
||||
BillID: vendorOrderID,
|
||||
StatusID: jdapi.OrderStatusFinishedPickup,
|
||||
StatusID: vendorStatus,
|
||||
Timestamp: utils.Time2Str(time.Now()),
|
||||
}
|
||||
utils.CallFuncAsync(func() {
|
||||
@@ -246,28 +246,35 @@ func (c *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||
return api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName)
|
||||
if globals.EnableStoreWrite {
|
||||
err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName)
|
||||
} else {
|
||||
c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusWaitOutStore)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDeilivery bool, userName string) (err error) {
|
||||
if !isSelfDeilivery {
|
||||
if !isSelfDeilivery && globals.EnableStoreWrite {
|
||||
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID, userName)
|
||||
} else {
|
||||
c.postFakeFinishedPickupMsg(order.VendorOrderID)
|
||||
c.postFakeMsg(order.VendorOrderID, jdapi.OrderStatusFinishedPickup)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID, userName)
|
||||
if err != nil {
|
||||
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 {
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err)
|
||||
if order2, err2 := c.GetOrder(order.VendorOrderID); err2 == nil {
|
||||
var mapData map[string]interface{}
|
||||
if err2 = utils.UnmarshalUseNumber([]byte(order2.OriginalData), &mapData); err2 == nil {
|
||||
if utils.Interface2String(mapData["deliveryCarrierNo"]) == "2938" { // 当前已经是自送状态了
|
||||
err = nil
|
||||
if globals.EnableStoreWrite {
|
||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID, userName)
|
||||
if err != nil {
|
||||
if errWithCode, ok := err.(*utils.ErrorWithCode); ok && errWithCode.Level() == 1 {
|
||||
globals.SugarLogger.Infof("Swtich2SelfDeliver failed with error:%v try get current status", err)
|
||||
if order2, err2 := c.GetOrder(order.VendorOrderID); err2 == nil {
|
||||
var mapData map[string]interface{}
|
||||
if err2 = utils.UnmarshalUseNumber([]byte(order2.OriginalData), &mapData); err2 == nil {
|
||||
if utils.Interface2String(mapData["deliveryCarrierNo"]) == "2938" { // 当前已经是自送状态了
|
||||
err = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -277,18 +284,25 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID, userName)
|
||||
if globals.EnableStoreWrite {
|
||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID, userName)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID, userName)
|
||||
if globals.EnableStoreWrite {
|
||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID, userName)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// 京东送达接口都是一样的
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
|
||||
return c.Swtich2SelfDelivered(order, userName)
|
||||
if globals.EnableStoreWrite {
|
||||
err = c.Swtich2SelfDelivered(order, userName)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) RefreshRealMobile(ctx *jxcontext.Context, fromTime, toTime time.Time, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
|
||||
Reference in New Issue
Block a user