diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index c3a4dea1e..29b0cfa9e 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -11,7 +11,6 @@ import ( "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" - "git.rosy.net.cn/jx-callback/business/msghub" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/orm" ) @@ -124,7 +123,6 @@ func (c *OrderManager) OnOrderAdjust(order *model.GoodsOrder, orderStatus *model if err == nil { dao.Commit(db) if !isDuplicated { - msghub.OnNewOrder(order) // 因为订单调度器需要的是真实状态,所以用order的状态 _ = scheduler.CurrentScheduler.OnOrderNew(order, false) _ = scheduler.CurrentScheduler.OnOrderStatusChanged(order, orderStatus, false) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index a8164b5c9..5b06c63a9 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -338,12 +338,13 @@ func (s *DefScheduler) OnOrderStatusChanged(order *model.GoodsOrder, status *mod if order.LockStatus != model.OrderStatusUnknown { s.stopTimer(savedOrderInfo) } - if status.Status == model.OrderStatusFinishedPickup || - status.Status == model.OrderStatusApplyCancel || //model.IsOrderLockStatus(status.Status) || - status.Status == model.OrderStatusApplyFailedGetGoods || //model.IsOrderUnlockStatus(status.Status) || - status.Status == model.OrderStatusAgreeFailedGetGoods || - status.Status == model.OrderStatusDeliverFailed { - if !isPending { + if !isPending { + if status.Status == model.OrderStatusFinishedPickup { + msghub.OnFinishedPickup(savedOrderInfo.order) + } else if status.Status == model.OrderStatusApplyCancel || //model.IsOrderLockStatus(status.Status) || + status.Status == model.OrderStatusApplyFailedGetGoods || //model.IsOrderUnlockStatus(status.Status) || + status.Status == model.OrderStatusAgreeFailedGetGoods || + status.Status == model.OrderStatusDeliverFailed { if status.Status == model.OrderStatusApplyCancel { utils.CallFuncAsync(func() { weixinmsg.NotifyUserApplyCancel(savedOrderInfo.order, status.Remark) diff --git a/business/msghub/msghub.go b/business/msghub/msghub.go index fb5c2855b..ded5374c4 100644 --- a/business/msghub/msghub.go +++ b/business/msghub/msghub.go @@ -18,6 +18,7 @@ const ( ServerMsgPing = "ping" ServerMsgNewOrder = "newOrder" + ServerMsgFinishedPickup = "finishedPickup" ServerMsgKeyOrderStatusChanged = "keyOrderStatusChanged" // 重要订单状态变化 ServerMsgNewWait4ApproveAfsOrder = "newWait4ApproveAfsOrder" @@ -70,7 +71,7 @@ func routinueFunc() { registerMsg := msg.MsgData.(*MsgOp) delete(channelMap[registerMsg.StoreID], registerMsg.Chan2Listen) close(registerMsg.Chan2Close) - case ServerMsgNewOrder, ServerMsgKeyOrderStatusChanged, ServerMsgNewWait4ApproveAfsOrder, ServerMsgKeyAfsOrderStatusChanged: + case ServerMsgNewOrder, ServerMsgFinishedPickup, ServerMsgKeyOrderStatusChanged, ServerMsgNewWait4ApproveAfsOrder, ServerMsgKeyAfsOrderStatusChanged: globals.SugarLogger.Debugf("msghub routinueFunc, msg:%s", utils.Format4Output(msg, true)) utils.CallFuncAsync(func() { for chan2Send := range channelMap[msg.StoreID] { @@ -170,6 +171,22 @@ func OnNewOrder(order *model.GoodsOrder) { }) } +func OnFinishedPickup(order *model.GoodsOrder) { + globals.SugarLogger.Debugf("msghub OnFinishedPickup, order:%s", utils.Format4Output(order, true)) + utils.CallFuncAsync(func() { + msgChan <- &ServerMsg{ + Type: ServerMsgFinishedPickup, + StoreID: jxutils.GetSaleStoreIDFromOrder(order), + MsgData: 1, + // MsgData: []*model.GoodsOrderExt{ + // &model.GoodsOrderExt{ + // GoodsOrder: *order, + // }, + // }, + } + }) +} + func OnKeyOrderStatusChanged(order *model.GoodsOrder) { globals.SugarLogger.Debugf("msghub OnKeyOrderStatusChanged, order:%s", utils.Format4Output(order, true)) utils.CallFuncAsync(func() {