79 lines
2.0 KiB
Go
79 lines
2.0 KiB
Go
package wxcore
|
|
|
|
import (
|
|
// "fmt"
|
|
"xiawan/wx/srv"
|
|
"xiawan/wx/srv/wxface"
|
|
)
|
|
|
|
// WXServer 微信服务器,处理与微信的交互
|
|
type WXServer struct {
|
|
wxMsgHandler wxface.IWXMsgHandler
|
|
wxConnectMgr wxface.IWXConnectMgr
|
|
wxFileMgr *srv.WXFileMgr
|
|
}
|
|
|
|
// NewWXServer 新建微信服务对象
|
|
func NewWXServer() wxface.IWXServer {
|
|
return &WXServer{
|
|
wxMsgHandler: NewWXMsgHandler(),
|
|
wxConnectMgr: NewWXConnManager(),
|
|
wxFileMgr: srv.NewWXFileMgr(),
|
|
}
|
|
}
|
|
|
|
// Start 开启微信服务
|
|
func (wxs *WXServer) Start() {
|
|
defer TryE("(wxtm *WXServer) Start()")
|
|
// fmt.Println("xiaoyue--------start开启微信服务")
|
|
// 开启微信消息线程池
|
|
wxs.wxMsgHandler.StartWorkerPool()
|
|
//wxs.wxFileMgr.Start()
|
|
}
|
|
|
|
// GetWXMsgHandler 获取微信消息管理器
|
|
func (wxs *WXServer) GetWXMsgHandler() wxface.IWXMsgHandler {
|
|
return wxs.wxMsgHandler
|
|
}
|
|
|
|
// GetWXConnectMgr 获取微信链接管理器
|
|
func (wxs *WXServer) GetWXConnectMgr() wxface.IWXConnectMgr {
|
|
return wxs.wxConnectMgr
|
|
}
|
|
|
|
// GetWXFileMgr 获取微信文件管理器
|
|
func (wxs *WXServer) GetWXFileMgr() *srv.WXFileMgr {
|
|
return wxs.wxFileMgr
|
|
}
|
|
|
|
// AddWXRouter 添加微信消息路由
|
|
func (wxs *WXServer) AddWXRouter(funcID uint32, wxRouter wxface.IWXRouter) {
|
|
wxs.wxMsgHandler.AddRouter(funcID, wxRouter)
|
|
}
|
|
|
|
// UpdateExpiryDate 更新授权码过期时间
|
|
func (wxs *WXServer) UpdateExpiryDate(key, expiryDate string) {
|
|
connMgr := wxs.GetWXConnectMgr()
|
|
wxConn := connMgr.GetWXConnectByUserInfoUUID(key)
|
|
if wxConn == nil {
|
|
return
|
|
}
|
|
currentTaskMgr := wxConn.GetWXTaskMgr()
|
|
taskMgr, _ := currentTaskMgr.(*WXTaskMgr)
|
|
currentSnsTransTask := taskMgr.GetSnsTransTask()
|
|
currentSnsTransTask.SetExpiryDate(expiryDate)
|
|
}
|
|
|
|
// UpdateDisable 更新授权码禁用状态
|
|
func (wxs *WXServer) UpdateDisable(key string, disable int) {
|
|
connMgr := wxs.GetWXConnectMgr()
|
|
wxConn := connMgr.GetWXConnectByUserInfoUUID(key)
|
|
if wxConn == nil {
|
|
return
|
|
}
|
|
currentTaskMgr := wxConn.GetWXTaskMgr()
|
|
taskMgr, _ := currentTaskMgr.(*WXTaskMgr)
|
|
currentSnsTransTask := taskMgr.GetSnsTransTask()
|
|
currentSnsTransTask.SetDisable(disable)
|
|
}
|