package services import ( "github.com/ctwj/urldb/db/repo" "github.com/silenceper/wechat/v2/officialaccount" "github.com/silenceper/wechat/v2/officialaccount/message" ) // WechatBotService 微信公众号机器人服务接口 type WechatBotService interface { Start() error Stop() error IsRunning() bool ReloadConfig() error HandleMessage(msg *message.MixMessage) (interface{}, error) SendWelcomeMessage(openID string) error GetRuntimeStatus() map[string]interface{} GetConfig() *WechatBotConfig } // WechatBotConfig 微信公众号机器人配置 type WechatBotConfig struct { Enabled bool AppID string AppSecret string Token string EncodingAesKey string WelcomeMessage string AutoReplyEnabled bool SearchLimit int } // WechatBotServiceImpl 微信公众号机器人服务实现 type WechatBotServiceImpl struct { isRunning bool systemConfigRepo repo.SystemConfigRepository resourceRepo repo.ResourceRepository readyRepo repo.ReadyResourceRepository config *WechatBotConfig wechatClient *officialaccount.OfficialAccount searchSessionManager *SearchSessionManager } // NewWechatBotService 创建微信公众号机器人服务 func NewWechatBotService( systemConfigRepo repo.SystemConfigRepository, resourceRepo repo.ResourceRepository, readyResourceRepo repo.ReadyResourceRepository, ) WechatBotService { return &WechatBotServiceImpl{ isRunning: false, systemConfigRepo: systemConfigRepo, resourceRepo: resourceRepo, readyRepo: readyResourceRepo, config: &WechatBotConfig{}, searchSessionManager: GlobalSearchSessionManager, } }