- apis interact with PurchasePlatform added.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user