package global import ( "speech-nlu-parse/dao" "speech-nlu-parse/model" ) // 叮当 bot, key 和 secret, 服务启动从数据库查询并加载 // var DingDangBot map[string]*model.DingDangBot var DingDangBot Bot type Bot struct { DingDangBot map[string]map[string]*model.DingDangBot // mid-midtype-bot } func NewBot() Bot { return Bot{ DingDangBot: make(map[string]map[string]*model.DingDangBot), } } func (this *Bot) Get(mid string, midType string) (*model.DingDangBot, bool) { _, ok := this.DingDangBot[mid] if !ok { // mid不存在 return nil, false } bot, ok := this.DingDangBot[mid][midType] if !ok { // midType不存在 bot, ok = this.DingDangBot[mid][""] if !ok { // 默认的也不存在 Logger.Errorf("GetDingDangBot error.mid: %v, midType: %v", mid, midType) return nil, false } return bot, true } else { return bot, true } } func InitDingDangBot() error { midAppKeyArr, err := dao.GetMidAppKey() if err != nil { return err } temp := NewBot() for i := 0; i < len(midAppKeyArr); i++ { if temp.DingDangBot[midAppKeyArr[i].Mid] == nil { temp.DingDangBot[midAppKeyArr[i].Mid] = make(map[string]*model.DingDangBot) } temp.DingDangBot[midAppKeyArr[i].Mid][midAppKeyArr[i].Vender] = &model.DingDangBot{Key: midAppKeyArr[i].AppKey, Secret: midAppKeyArr[i].AccessToken, UrlType: midAppKeyArr[i].UrlType} } DingDangBot = temp return nil }