- DeliveryOrder in wsc
This commit is contained in:
@@ -389,6 +389,8 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
} else {
|
||||
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, 2, 10*time.Second)
|
||||
}
|
||||
} else if s.IsSpecialOrderPlatformWaybill(bill) {
|
||||
s.SelfDeliverDelivering(savedOrderInfo.order, "")
|
||||
}
|
||||
} else if !s.isBillCandidate(order, bill) && bill.WaybillVendorID != order.VendorID {
|
||||
// 发生这种情况的原因就是两个接单事件几乎同时到达(来不及取消),也算正常
|
||||
@@ -466,6 +468,8 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
|
||||
} else {
|
||||
s.Swtich2SelfDelivered(order, "")
|
||||
}
|
||||
} else if s.IsSpecialOrderPlatformWaybill(bill) {
|
||||
s.SelfDeliverDelievered(savedOrderInfo.order, "")
|
||||
}
|
||||
if !s.isBillCandidate(order, bill) {
|
||||
// 一般只会消息乱序才会到这里,即新订单消息在运单接单消息后到达
|
||||
@@ -865,5 +869,10 @@ func OnDefSchConfChanged(key, value string) {
|
||||
// 判断是否是购买平台自有物流
|
||||
// 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达
|
||||
func (s *DefScheduler) IsOrderPlatformWaybill(bill *model.Waybill) bool {
|
||||
return bill.OrderVendorID == bill.WaybillVendorID || (bill.OrderVendorID == model.VendorIDWSC && bill.WaybillVendorID == model.VendorIDDada)
|
||||
return bill.OrderVendorID == bill.WaybillVendorID || s.IsSpecialOrderPlatformWaybill(bill)
|
||||
}
|
||||
|
||||
// 是否是特殊物流
|
||||
func (s *DefScheduler) IsSpecialOrderPlatformWaybill(bill *model.Waybill) bool {
|
||||
return (bill.OrderVendorID == model.VendorIDWSC && bill.WaybillVendorID == model.VendorIDDada)
|
||||
}
|
||||
|
||||
@@ -189,25 +189,31 @@ func (p *PurchaseHandler) PickupGoods(order *model.GoodsOrder, userName string)
|
||||
|
||||
// 将订单从购物平台配送转为自送
|
||||
func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
||||
// p.postFakeMsg(utils.Str2Int64(order.VendorOrderID), weimobapi.OrderStatusDelivering)
|
||||
if globals.EnableStoreWrite && globals.EnableWscStoreWrite {
|
||||
err = api.WeimobAPI.DeliveryOrder(&weimobapi.DeliveryOrder{
|
||||
OrderNo: utils.Str2Int64(order.VendorOrderID),
|
||||
})
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// 将订单从购物平台配送转为自送后又送达
|
||||
func (p *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||
// p.postFakeMsg(utils.Str2Int64(order.VendorOrderID), weimobapi.OrderStatusFinished)
|
||||
return err
|
||||
}
|
||||
|
||||
// 完全自送的门店表示开始配送
|
||||
func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) {
|
||||
// p.postFakeMsg(utils.Str2Int64(order.VendorOrderID), weimobapi.OrderStatusDelivering)
|
||||
if globals.EnableStoreWrite && globals.EnableWscStoreWrite {
|
||||
err = api.WeimobAPI.DeliveryOrder(&weimobapi.DeliveryOrder{
|
||||
OrderNo: utils.Str2Int64(order.VendorOrderID),
|
||||
})
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// 完全自送的门店表示配送完成
|
||||
func (p *PurchaseHandler) SelfDeliverDelievered(order *model.GoodsOrder, userName string) (err error) {
|
||||
// p.postFakeMsg(utils.Str2Int64(order.VendorOrderID), weimobapi.OrderStatusFinished)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user