- fixed a bug, savedOrderInfo.timer is nil.

This commit is contained in:
gazebo
2018-07-19 12:27:53 +08:00
parent 3098740dce
commit 308b5b2cef

View File

@@ -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