- 新订单时,发送短信消息

This commit is contained in:
gazebo
2019-09-06 10:16:09 +08:00
parent a393869612
commit 0fbe4d7024
4 changed files with 116 additions and 31 deletions

View File

@@ -8,6 +8,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/jxutils/netprinter"
"git.rosy.net.cn/jx-callback/business/jxutils/smsmsg"
"git.rosy.net.cn/jx-callback/business/msghub"
"git.rosy.net.cn/baseapi/utils"
@@ -184,10 +185,7 @@ func init() {
}
}
if isAcceptIt {
utils.CallFuncAsync(func() {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
weixinmsg.NotifyNewOrder(order)
})
sch.notifyNewOrder(order)
msghub.OnNewOrder(order)
} else {
partner.CurOrderManager.OnOrderMsg(order, "黑名单拒单", "")
@@ -307,10 +305,7 @@ func (s *DefScheduler) OnOrderNew(order *model.GoodsOrder, isPending bool) (err
if order.Status >= model.OrderStatusNew {
s.resetTimer(savedOrderInfo, nil, isPending)
if !isPending && order.Status >= model.OrderStatusAccepted { // 有订单消息错序先收到接单消息再收到新订单消息导致接单TIMER不动作这里补一下
utils.CallFuncAsync(func() {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
weixinmsg.NotifyNewOrder(order)
})
s.notifyNewOrder(order)
msghub.OnNewOrder(order)
}
}
@@ -329,13 +324,6 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
savedOrderInfo := s.loadSavedOrderFromMap(status, false)
savedOrderInfo.SetOrder(order)
// if status.Status == model.OrderStatusNew {
// if !isPending {
// utils.CallFuncAsync(func() {
// weixinmsg.NotifyNewOrder(savedOrderInfo.order)
// })
// }
// }
if (model.IsOrderUnlockStatus(status.Status)) ||
(order.LockStatus == model.OrderStatusUnknown && (status.Status > model.OrderStatusUnknown || status.Status == model.OrderStatusRefuseFailedGetGoods)) { // 只处理状态转换,一般消息不处理
if status.Status == model.OrderStatusRefuseFailedGetGoods && order.Status != model.OrderStatusFinishedPickup && !model.IsOrderFinalStatus(order.Status) {
@@ -374,9 +362,7 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod
status.Status == model.OrderStatusAgreeFailedGetGoods ||
status.Status == model.OrderStatusDeliverFailed {
if status.Status == model.OrderStatusApplyCancel {
utils.CallFuncAsync(func() {
weixinmsg.NotifyUserApplyCancel(savedOrderInfo.order, status.Remark)
})
s.notifyUserApplyCancel(savedOrderInfo.order, status.Remark)
}
msghub.OnKeyOrderStatusChanged(savedOrderInfo.order)
}
@@ -483,9 +469,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
if err := s.SelfDeliverDelivering(savedOrderInfo.order, bill.CourierMobile); err != nil {
partner.CurOrderManager.OnOrderMsg(order, "自送出设置失败", err.Error())
}
utils.CallFuncAsync(func() {
weixinmsg.NotifyWaybillStatus(bill, order, isBillAlreadyCandidate)
})
s.notify3rdPartyWaybill(order, bill, isBillAlreadyCandidate)
} else {
s.swtich2SelfDeliverWithRetry(savedOrderInfo, bill, 2, 10*time.Second)
}
@@ -496,9 +480,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
globals.SugarLogger.Infof("OnWaybillStatusChanged Accepted orderID:%s got multiple bill:%v", order.VendorOrderID, bill)
}
if isBillAlreadyCandidate && !s.isWaybillCourierSame(savedOrderInfo, bill) && !model.IsWaybillPlatformOwn(bill) {
utils.CallFuncAsync(func() {
weixinmsg.NotifyWaybillStatus(bill, order, isBillAlreadyCandidate)
})
s.notify3rdPartyWaybill(order, bill, isBillAlreadyCandidate)
}
flag2Clear := model.WaybillVendorID2Mask(bill.WaybillVendorID)
order.Flag &= ^model.OrderFlagMaskFailedGetGoods
@@ -579,9 +561,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo
}
}
if !isPending {
utils.CallFuncAsync(func() {
weixinmsg.NotifyWaybillStatus(bill, order, false)
})
s.notify3rdPartyWaybill(order, bill, false)
}
// case model.WaybillStatusNeverSend: // 平台不配送,直接创建三方运单
// s.resetTimer(savedOrderInfo, bill, isPending)
@@ -710,9 +690,7 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", errStr)
}
} else {
utils.CallFuncAsync(func() {
weixinmsg.NotifyWaybillStatus(bill, order, false)
})
s.notify3rdPartyWaybill(order, bill, false)
s.removeWaybillFromMap(savedOrderInfo, order.VendorID)
partner.CurOrderManager.OnOrderMsg(order, "转自送成功", "")
}
@@ -1112,3 +1090,23 @@ func OnDefSchConfChanged(key, value string) {
}
}
}
func (s *DefScheduler) notifyNewOrder(order *model.GoodsOrder) {
utils.CallFuncAsync(func() {
netprinter.PrintOrderByOrder(jxcontext.AdminCtx, order)
weixinmsg.NotifyNewOrder(order)
smsmsg.NotifyNewOrder(order)
})
}
func (s *DefScheduler) notifyUserApplyCancel(order *model.GoodsOrder, cancelReason string) {
utils.CallFuncAsync(func() {
weixinmsg.NotifyUserApplyCancel(order, cancelReason)
})
}
func (s *DefScheduler) notify3rdPartyWaybill(order *model.GoodsOrder, bill *model.Waybill, isBillAlreadyCandidate bool) {
utils.CallFuncAsync(func() {
weixinmsg.NotifyWaybillStatus(bill, order, isBillAlreadyCandidate)
})
}