package wxcore import ( "xiawan/wx/srv/wxface" "xiawan/wx/srv/wxtask" ) // WXTaskMgr 任务管理器 type WXTaskMgr struct { start bool wxConn wxface.IWXConnect friendTask *wxtask.WXFriendTask groupTask *wxtask.WXGroupTask grabHBTask *wxtask.WXGrabHBTask snsTransTask *wxtask.WXSnsTransTask revokeTask *wxtask.WXRevokeTask snsTask *wxtask.WXSnsTask verifyTask *wxtask.WXVerifyTask SocketMsgTask *wxtask.WXSocketMsgTask } // NewWXTaskMgr 新建一个微信管理器 func NewWXTaskMgr(wxConn wxface.IWXConnect) wxface.IWXTaskMgr { return &WXTaskMgr{ wxConn: wxConn, friendTask: wxtask.NewWXFriendTask(wxConn), groupTask: wxtask.NewWXGroupTask(wxConn), grabHBTask: wxtask.NewWXGrabHBTask(wxConn), snsTransTask: wxtask.NewWXSnsTransTask(wxConn), revokeTask: wxtask.NewWXRevokeTask(wxConn), snsTask: wxtask.NewWXSnsTask(wxConn), verifyTask: wxtask.NewWXVerifyTask(wxConn), SocketMsgTask: wxtask.NewWXSocketMsgTask(wxConn), } } // Start 启动 func (wxtm *WXTaskMgr) Start() { // fmt.Println("启动微信任务管理器") //处理异常 // defer TryE("(wxtm *WXTaskMgr) Start()") if wxtm.start { return } wxtm.start = true // wxtm.grabHBTask.Start() wxtm.snsTransTask.Start() // wxtm.revokeTask.Start() wxtm.snsTask.Start() wxtm.SocketMsgTask.Start() } // Stop 关闭 func (wxtm *WXTaskMgr) Stop() { if !wxtm.start { return } wxtm.start = false // wxtm.grabHBTask.Stop() wxtm.snsTransTask.Stop() // wxtm.revokeTask.Stop() wxtm.snsTask.Stop() wxtm.SocketMsgTask.Stop() } func (wxtm *WXTaskMgr) GetTaskStatus() bool { return wxtm.start } // GetGroupTask 获取群任务管理器 func (wxtm *WXTaskMgr) GetGroupTask() *wxtask.WXGroupTask { return wxtm.groupTask } // GetFriendTask 获取好友任务管理器 func (wxtm *WXTaskMgr) GetFriendTask() *wxtask.WXFriendTask { return wxtm.friendTask } // GetGrabHBTask 获取红包任务管理器 func (wxtm *WXTaskMgr) GetGrabHBTask() *wxtask.WXGrabHBTask { return wxtm.grabHBTask } func (wxtm *WXTaskMgr) GetSocketMsgTask() *wxtask.WXSocketMsgTask { return wxtm.SocketMsgTask } // GetSnsTransTask 获取朋友圈转发任务管理器 func (wxtm *WXTaskMgr) GetSnsTransTask() *wxtask.WXSnsTransTask { return wxtm.snsTransTask } // GetRevokeTask 获取防撤回消息任务管理器 func (wxtm *WXTaskMgr) GetRevokeTask() *wxtask.WXRevokeTask { return wxtm.revokeTask } // GetSnsTask 获取朋友圈任务管理器 func (wxtm *WXTaskMgr) GetSnsTask() *wxtask.WXSnsTask { return wxtm.snsTask } // GetVerifyTask 获取朋友圈任务管理器 func (wxtm *WXTaskMgr) GetVerifyTask() *wxtask.WXVerifyTask { return wxtm.verifyTask }