diff --git a/business/controller/order.go b/business/controller/order.go index bd84931b4..bc2132171 100644 --- a/business/controller/order.go +++ b/business/controller/order.go @@ -7,7 +7,6 @@ import ( "git.rosy.net.cn/baseapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/globals" @@ -60,7 +59,6 @@ func (c *OrderController) OnOrderNew(order *model.GoodsOrder, msgVendorStatus st if err == nil && !isDuplicated { if isDuplicated, err = c.saveOrder(order, false, db); err == nil && !isDuplicated { err = scheduler.CurrentScheduler.OnOrderNew(order, false) - weixinmsg.NotifyNewOrder(order) } } return err @@ -96,7 +94,6 @@ func (c *OrderController) OnOrderAdjust(order *model.GoodsOrder, msgVendorStatus // 因为订单调度器需要的是真实状态,所以用order的状态 err = scheduler.CurrentScheduler.OnOrderNew(order, false) err = scheduler.CurrentScheduler.OnOrderStatusChanged(model.Order2Status(order), false) - weixinmsg.NotifyNewOrder(order) } } return err diff --git a/business/controller/waybill.go b/business/controller/waybill.go index f0ed9c029..d16e2f171 100644 --- a/business/controller/waybill.go +++ b/business/controller/waybill.go @@ -4,7 +4,6 @@ import ( "time" "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/scheduler" "git.rosy.net.cn/jx-callback/globals" @@ -90,11 +89,6 @@ func (w *WaybillController) OnWaybillStatusChanged(bill *model.Waybill) (err err } if err == nil && !isDuplicated { scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, false) - if bill.Status == model.WaybillStatusAccepted || bill.Status == model.WaybillStatusDelivered { - if order, err2 := OrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID); err2 == nil { - weixinmsg.NotifyWaybillStatus(bill, order) - } - } if globals.GenerateLegacyJxOrder { w.legacyWaybillStatusChanged(bill, db) } diff --git a/business/jxutils/weixinmsg/weixinmsg.go b/business/jxutils/weixinmsg/weixinmsg.go index e4e5d23cc..7c1dd1a7d 100644 --- a/business/jxutils/weixinmsg/weixinmsg.go +++ b/business/jxutils/weixinmsg/weixinmsg.go @@ -99,6 +99,10 @@ func SendMsgToStore(storeID int, templateID, downloadURL string, data interface{ func NotifyNewOrder(order *model.GoodsOrder) (err error) { globals.SugarLogger.Debugf("NotifyNewOrder orderID:%s", order.VendorOrderID) + if !model.IsOrderSolid(order) { + globals.SugarLogger.Infof("NotifyNewOrder orderID:%s is not solid", order.VendorOrderID) + return nil + } sb := new(strings.Builder) sb.WriteString("老板,") sb.WriteString(order.ConsigneeName) @@ -142,9 +146,13 @@ func NotifyNewOrder(order *model.GoodsOrder) (err error) { } func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder) error { - globals.SugarLogger.Debugf("NotifyWaybillStatus bill:%v", bill) + globals.SugarLogger.Debugf("NotifyWaybillStatus orderID:%s bill:%v", order.VendorOrderID, bill) + if !model.IsOrderSolid(order) { + globals.SugarLogger.Infof("NotifyWaybillStatus orderID:%s is not solid", order.VendorOrderID) + return nil + } var title string - var templateID string + templateID := "" remark := "" titleColor := "" switch bill.Status { diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index f9dd6fb3c..cd2cea9e3 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -8,6 +8,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/jxutils/weixinmsg" "git.rosy.net.cn/jx-callback/business/legacymodel" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/scheduler" @@ -205,6 +206,9 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool) (err savedOrderInfo.SetOrder(order) // 调整单或消息错序都可能进到这里来 } s.resetTimer(savedOrderInfo, nil, isPending) + if !isPending { + weixinmsg.NotifyNewOrder(order) + } return err } @@ -285,6 +289,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, 2, 10*time.Second) } } + if !isPending { + weixinmsg.NotifyWaybillStatus(bill, order) + } } else if !s.isBillCandidate(order, bill) && bill.WaybillVendorID != order.VendorID { // 发生这种情况的原因就是两个接单事件几乎同时到达(来不及取消),也算正常 s.CancelWaybill(bill) @@ -364,6 +371,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo s.updateOrderByBill(order, bill, false) } } + if !isPending { + weixinmsg.NotifyWaybillStatus(bill, order) + } } } }