- send weixin msg more accurately.

This commit is contained in:
gazebo
2018-08-11 16:37:16 +08:00
parent 75a0f77c6f
commit f5f3805470
4 changed files with 20 additions and 11 deletions

View File

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

View File

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

View File

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

View File

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