- cancel waybill reason added.
- api operator added. - token added.
This commit is contained in:
@@ -148,17 +148,16 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, policy func(del
|
||||
return bill, err
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill) (err error) {
|
||||
reasonID := dadaapi.ReasonIDOther
|
||||
reasonMsg := "send not in time"
|
||||
if bill.Status < model.WaybillStatusAccepted {
|
||||
reasonID = dadaapi.ReasonIDNobodyAccept
|
||||
reasonMsg = "ReasonIDNobodyAccept"
|
||||
} else if bill.Status < model.WaybillStatusCourierArrived {
|
||||
reasonID = dadaapi.ReasonIDNobodyPickup
|
||||
reasonMsg = "ReasonIDNobodyPickup"
|
||||
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||
switch cancelReasonID {
|
||||
case partner.CancelWaybillReasonNotAcceptIntime:
|
||||
cancelReasonID = dadaapi.ReasonIDNobodyAccept
|
||||
case partner.CancelWaybillReasonSwitch2SelfFailed:
|
||||
cancelReasonID = dadaapi.ReasonIDClientDontWantItAnymore
|
||||
default:
|
||||
cancelReasonID = dadaapi.ReasonIDOther
|
||||
}
|
||||
_, err = api.DadaAPI.CancelOrder(bill.VendorOrderID, reasonID, reasonMsg)
|
||||
_, err = api.DadaAPI.CancelOrder(bill.VendorOrderID, cancelReasonID, cancelReason)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -245,17 +245,16 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, policy func(del
|
||||
return bill, err
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill) (err error) {
|
||||
reasonID := mtpsapi.CancelReasonRidderSendNotIntime
|
||||
reasonMsg := "CancelReasonRidderSendNotIntime"
|
||||
if bill.Status < model.WaybillStatusAccepted {
|
||||
reasonID = mtpsapi.CancelReasonMerchantOther
|
||||
reasonMsg = "nobody accept order"
|
||||
} else if bill.Status < model.WaybillStatusCourierArrived {
|
||||
reasonID = mtpsapi.CancelReasonRideerGetGoodNotIntime
|
||||
reasonMsg = "CancelReasonRideerGetGoodNotIntime"
|
||||
func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||
switch cancelReasonID {
|
||||
case partner.CancelWaybillReasonNotAcceptIntime:
|
||||
cancelReasonID = mtpsapi.CancelReasonRideerMtpsOther
|
||||
case partner.CancelWaybillReasonSwitch2SelfFailed:
|
||||
cancelReasonID = mtpsapi.CancelReasonMerchantOther
|
||||
default:
|
||||
cancelReasonID = mtpsapi.CancelReasonRideerOther
|
||||
}
|
||||
_, err = api.MtpsAPI.CancelOrder(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, reasonID, reasonMsg)
|
||||
_, err = api.MtpsAPI.CancelOrder(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, cancelReasonID, cancelReason)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,18 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
)
|
||||
|
||||
const (
|
||||
CancelWaybillReasonNotAcceptIntime = 1
|
||||
CancelWaybillReasonSwitch2SelfFailed = 2
|
||||
CancelWaybillReasonOther = 10
|
||||
)
|
||||
|
||||
var (
|
||||
CancelWaybillReasonStrNotAcceptIntime = "没有及时抢单"
|
||||
CancelWaybillReasonStrSwitch2SelfFailed = "转自送失败"
|
||||
CancelWaybillReasonStrOrderAlreadyFinished = "订单已经结束"
|
||||
)
|
||||
|
||||
var (
|
||||
CurOrderManager IOrderManager
|
||||
)
|
||||
@@ -27,25 +39,25 @@ type IPurchasePlatformHandler interface {
|
||||
GetOrder(vendorOrderID string) (order *model.GoodsOrder, err error)
|
||||
GetStatusActionTimeout(statusType, status int) time.Duration
|
||||
|
||||
AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error)
|
||||
PickupGoods(order *model.GoodsOrder) (err error)
|
||||
AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error)
|
||||
PickupGoods(order *model.GoodsOrder, userName string) (err error)
|
||||
|
||||
// 将订单从购物平台配送转为自送
|
||||
Swtich2SelfDeliver(order *model.GoodsOrder) (err error)
|
||||
Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error)
|
||||
|
||||
// 将订单从购物平台配送转为自送后又送达
|
||||
Swtich2SelfDelivered(order *model.GoodsOrder) (err error)
|
||||
Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error)
|
||||
|
||||
// 完全自送的门店表示开始配送
|
||||
SelfDeliverDelievering(order *model.GoodsOrder) (err error)
|
||||
SelfDeliverDelievering(order *model.GoodsOrder, userName string) (err error)
|
||||
|
||||
// 完全自送的门店表示配送完成
|
||||
SelfDeliverDelievered(order *model.GoodsOrder) (err error)
|
||||
SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error)
|
||||
}
|
||||
|
||||
type IDeliveryPlatformHandler interface {
|
||||
CreateWaybill(order *model.GoodsOrder, policy func(deliveryFee, addFee int64) error) (bill *model.Waybill, err error)
|
||||
CancelWaybill(bill *model.Waybill) (err error)
|
||||
CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error)
|
||||
}
|
||||
|
||||
func Init(curOrderManager IOrderManager) {
|
||||
|
||||
@@ -264,7 +264,7 @@ func (c *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
return model.OrderStatusUnknown
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||
if isAcceptIt {
|
||||
err = api.ElmAPI.ConfirmOrder(order.VendorOrderID)
|
||||
} else {
|
||||
@@ -275,25 +275,25 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
|
||||
// 饿了么没有拣货这个状态,直接返回成功
|
||||
// 真实流程中也不会调用这个方法,因为接收订单后状态会直接转移到已拣货
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, userName string) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
||||
err = api.ElmAPI.DeliveryBySelfLite(order.VendorOrderID)
|
||||
return err
|
||||
}
|
||||
|
||||
// 饿了么转商家自送后,没有确认送达的概念,空操作
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) SelfDeliverDelievering(order *model.GoodsOrder, userName string) (err error) {
|
||||
return api.ElmAPI.StartDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
|
||||
return api.ElmAPI.CompleteDeliveryBySelf(order.VendorOrderID, order.ConsigneeMobile)
|
||||
}
|
||||
|
||||
|
||||
@@ -184,18 +184,18 @@ func (c *PurchaseHandler) GetStatusFromVendorStatus(vendorStatus string) int {
|
||||
return model.OrderStatusUnknown
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool) (err error) {
|
||||
_, err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt)
|
||||
func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptIt bool, userName string) (err error) {
|
||||
_, err = api.JdAPI.OrderAcceptOperate(order.VendorOrderID, isAcceptIt, userName)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID)
|
||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.OrderJDZBDelivery(order.VendorOrderID, userName)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.ModifySellerDelivery(order.VendorOrderID)
|
||||
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)
|
||||
@@ -212,17 +212,17 @@ func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder) (err error
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID)
|
||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.DeliveryEndOrder(order.VendorOrderID, userName)
|
||||
return err
|
||||
}
|
||||
|
||||
func (c *PurchaseHandler) SelfDeliverDelievering(order *model.GoodsOrder) (err error) {
|
||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID)
|
||||
func (c *PurchaseHandler) SelfDeliverDelievering(order *model.GoodsOrder, userName string) (err error) {
|
||||
_, err = api.JdAPI.OrderSerllerDelivery(order.VendorOrderID, userName)
|
||||
return err
|
||||
}
|
||||
|
||||
// 京东送达接口都是一样的
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder) (err error) {
|
||||
return c.Swtich2SelfDelivered(order)
|
||||
func (c *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
|
||||
return c.Swtich2SelfDelivered(order, userName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user