- 防止重复发送订单取消通知消息

This commit is contained in:
gazebo
2019-09-21 17:01:41 +08:00
parent 190793d6ec
commit 3f459a5e10
4 changed files with 13 additions and 9 deletions

View File

@@ -325,7 +325,8 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
} else if order.Status > model.OrderStatusUnknown && status.Status > model.OrderStatusUnknown && order.Status != status.Status {
globals.SugarLogger.Warnf("OnOrderStatusChanged strange order:%s, status:%s", utils.Format4Output(order, true), utils.Format4Output(status, true))
}
savedOrderInfo := s.loadSavedOrderFromMap(status, false)
savedOrderInfo := s.loadSavedOrderFromMap(status, false) // 可能会有重复的消息(比如订单取消)
statusChanged := savedOrderInfo.order == nil || savedOrderInfo.order.Status != order.Status
savedOrderInfo.SetOrder(order)
if (model.IsOrderUnlockStatus(status.Status)) ||
@@ -366,7 +367,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
}
if !isPending {
if status.Status == model.OrderStatusFinishedPickup || status.Status == model.OrderStatusCanceled {
if status.Status == model.OrderStatusCanceled {
if statusChanged && status.Status == model.OrderStatusCanceled {
s.notifyOrderCanceled(savedOrderInfo.order)
}
msghub.OnFinishedPickup(savedOrderInfo.order)
@@ -374,7 +375,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
status.Status == model.OrderStatusApplyFailedGetGoods || //model.IsOrderUnlockStatus(status.Status) ||
status.Status == model.OrderStatusAgreeFailedGetGoods ||
status.Status == model.OrderStatusDeliverFailed {
if status.Status == model.OrderStatusApplyCancel {
if statusChanged && status.Status == model.OrderStatusApplyCancel {
s.notifyUserApplyCancel(savedOrderInfo.order, status.Remark)
}
msghub.OnKeyOrderStatusChanged(savedOrderInfo.order)