- fixed a bug, savedOrderInfo.timer is nil.
This commit is contained in:
@@ -86,7 +86,7 @@ func (s *DefScheduler) OnOrderStatusChanged(status *model.OrderStatus) (err erro
|
||||
}
|
||||
s.resetTimer(status.Status, savedOrderInfo, gap)
|
||||
} else {
|
||||
savedOrderInfo.timer.Stop()
|
||||
s.stopTimer(savedOrderInfo)
|
||||
s.orderMap.Delete(jxutils.GetUniversalOrderIDFromOrderStatus(status))
|
||||
}
|
||||
return err
|
||||
@@ -114,7 +114,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) {
|
||||
if findIt {
|
||||
switch bill.Status {
|
||||
case model.WaybillStatusAccepted:
|
||||
savedOrderInfo.timer.Stop() // todo 这里应该另外启动一个TIMER
|
||||
s.stopTimer(savedOrderInfo) // todo 这里应该另外启动一个TIMER
|
||||
s.cancelOtherWaybills(bill)
|
||||
|
||||
s.CurOrderManager.UpdateWaybillVendorID(bill)
|
||||
@@ -245,10 +245,14 @@ func (s *DefScheduler) getLatestPickupTimeout(order *model.GoodsOrder, configTim
|
||||
return jxutils.GetRealTimeout(beginTime, configTimeout)
|
||||
}
|
||||
|
||||
func (s *DefScheduler) resetTimer(status int, savedOrderInfo *WatchOrderInfo, gap time.Duration) {
|
||||
func (s *DefScheduler) stopTimer(savedOrderInfo *WatchOrderInfo) {
|
||||
if savedOrderInfo.timer != nil {
|
||||
savedOrderInfo.timer.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *DefScheduler) resetTimer(status int, savedOrderInfo *WatchOrderInfo, gap time.Duration) {
|
||||
s.stopTimer(savedOrderInfo)
|
||||
config := s.mergeOrderStatusConfig(status, s.GetPurchasePlatformFromVendorID(savedOrderInfo.order.VendorID).GetStatusActionConfig(status))
|
||||
if config != nil && config.TimeoutAction != nil {
|
||||
var timeout time.Duration
|
||||
|
||||
Reference in New Issue
Block a user