- 部分快递平台在取消成功后有时会不发运单取消消息过来(比如达达,904200512000442),为避免二次取消报错,添加状态判断(in BaseScheduler.CancelWaybill)
This commit is contained in:
@@ -160,11 +160,14 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr
|
|||||||
|
|
||||||
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
|
||||||
globals.SugarLogger.Infof("CancelWaybill bill:%v, cancelReasonID:%d cancelReason:%s", bill, cancelReasonID, cancelReason)
|
globals.SugarLogger.Infof("CancelWaybill bill:%v, cancelReasonID:%d cancelReason:%s", bill, cancelReasonID, cancelReason)
|
||||||
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID {
|
// 部分快递平台在取消成功后有时会不发运单取消消息过来(比如达达,904200512000442),为避免二次取消报错,添加状态判断
|
||||||
|
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
|
||||||
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
|
||||||
err = utils.CallFuncLogError(func() error {
|
if err = utils.CallFuncLogError(func() error {
|
||||||
return handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason)
|
return handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason)
|
||||||
}, "CancelWaybill bill:%v", bill)
|
}, "CancelWaybill bill:%v", bill); err == nil {
|
||||||
|
bill.Status = model.WaybillStatusCanceled
|
||||||
|
}
|
||||||
globals.SugarLogger.Debugf("CancelWaybill bill:%v canceled by myself", bill)
|
globals.SugarLogger.Debugf("CancelWaybill bill:%v canceled by myself", bill)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user