- apis interact with PurchasePlatform added.

This commit is contained in:
gazebo
2018-07-15 20:44:25 +08:00
parent de2545c3e2
commit e1e5e93319
4 changed files with 59 additions and 7 deletions

View File

@@ -30,7 +30,7 @@ func (c *WaybillController) onWaybillMsg(msg *dadaapi.CallbackMsg) (retVal *dada
order.Status = model.WaybillStatusNew order.Status = model.WaybillStatusNew
case dadaapi.OrderStatusAccepted: case dadaapi.OrderStatusAccepted:
order.Status = model.WaybillStatusAccepted order.Status = model.WaybillStatusAccepted
case dadaapi.OrderStatusDeliverying: case dadaapi.OrderStatusDelivering:
order.Status = model.WaybillStatusDelivering order.Status = model.WaybillStatusDelivering
case dadaapi.OrderStatusFinished: case dadaapi.OrderStatusFinished:
order.Status = model.WaybillStatusDelivered order.Status = model.WaybillStatusDelivered

View File

@@ -210,10 +210,25 @@ func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
return err return err
} }
func (c *OrderController) ForcePickUp(order *model.GoodsOrder) (err error) { // 饿了么没有拣货这个状态,直接返回成功
// 真实流程中也不会调用这个方法,因为接收定单后状态会直接转移到已拣货
func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
return nil return nil
} }
func (c *OrderController) SwtichSelfDeliver(order *model.GoodsOrder) (err error) { func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
return api.ElmAPI.DeliveryBySelfLite(order.VendorOrderID)
}
// 饿了么没有这个操作,直接返回成功
func (c *OrderController) SelfDeliverPickedUpGoods(order *model.GoodsOrder) (err error) {
return nil return nil
} }
func (c *OrderController) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
return api.ElmAPI.StartDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
}
func (c *OrderController) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
return api.ElmAPI.CompleteDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
}

View File

@@ -163,10 +163,39 @@ func (c *OrderController) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
return err return err
} }
func (c *OrderController) ForcePickUp(order *model.GoodsOrder) (err error) { func (c *OrderController) PickedUpGoods(order *model.GoodsOrder) (err error) {
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID)
return c.translateOrderRelatedErr(err)
}
func (c *OrderController) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID)
return c.translateOrderRelatedErr(err)
}
func (c *OrderController) SelfDeliverPickedUpGoods(order *model.GoodsOrder) (err error) {
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID)
return c.translateOrderRelatedErr(err)
}
// 京东无此操作,直接返回成功
func (c *OrderController) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
return nil return nil
} }
func (c *OrderController) SwtichSelfDeliver(order *model.GoodsOrder) (err error) { func (c *OrderController) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID)
return err
}
func (c *OrderController) translateOrderRelatedErr(err error) (retVal error) {
if err != nil {
if errWithCode, ok := err.(*utils.ErrorWithCode); ok {
if errWithCode.Level() == 1 && errWithCode.Code() == jdapi.ResponseInnerCodeOrderAlreadyPickedUp {
return nil
}
}
return scheduler.ErrStatusIsNotOKForOperation
}
return nil return nil
} }

View File

@@ -1,6 +1,7 @@
package scheduler package scheduler
import ( import (
"errors"
"fmt" "fmt"
"time" "time"
@@ -11,6 +12,10 @@ var (
CurrentScheduler Scheduler CurrentScheduler Scheduler
) )
var (
ErrStatusIsNotOKForOperation = errors.New("当前状态操作无效")
)
type StatusTimeoutAction struct { type StatusTimeoutAction struct {
Action func(order *model.GoodsOrder) (err error) Action func(order *model.GoodsOrder) (err error)
Timeout time.Duration Timeout time.Duration
@@ -23,8 +28,11 @@ type StatusConfig struct {
type PurchasePlatformHandler interface { type PurchasePlatformHandler interface {
AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error)
ForcePickUp(order *model.GoodsOrder) (err error) PickedUpGoods(order *model.GoodsOrder) (err error)
SwtichSelfDeliver(order *model.GoodsOrder) (err error) Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
SelfDeliverPickedUpGoods(order *model.GoodsOrder) (err error)
SelfDeliverDelievering(order *model.GoodsOrder) (err error)
SelfDeliverDelievered(order *model.GoodsOrder) (err error)
} }
type DeliveryPlatformHandler interface { type DeliveryPlatformHandler interface {