2025-12-18 18:01:21 +08:00
|
|
|
|
package config
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"context"
|
|
|
|
|
|
"sync"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
|
|
|
|
"github.com/gogf/gf/v2/os/glog"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
|
welcomeCache map[string]string
|
|
|
|
|
|
welcomeMu sync.RWMutex
|
|
|
|
|
|
welcomeOnce sync.Once
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// initWelcomeMessages 初始化欢迎话术配置
|
|
|
|
|
|
func initWelcomeMessages(ctx context.Context) {
|
|
|
|
|
|
welcomeOnce.Do(func() {
|
2025-12-19 15:02:05 +08:00
|
|
|
|
// 从默认配置文件(config.yml)读取 welcomes 配置
|
|
|
|
|
|
welcomeMap := g.Cfg().MustGet(ctx, "welcomes").MapStrStr()
|
2025-12-18 18:01:21 +08:00
|
|
|
|
|
|
|
|
|
|
welcomeMu.Lock()
|
|
|
|
|
|
welcomeCache = welcomeMap
|
|
|
|
|
|
welcomeMu.Unlock()
|
|
|
|
|
|
|
|
|
|
|
|
glog.Infof(ctx, "已加载欢迎话术配置: %d个方向", len(welcomeMap))
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// GetWelcomeMessage 根据方向名称获取欢迎话术
|
|
|
|
|
|
func GetWelcomeMessage(direction string) string {
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
|
|
initWelcomeMessages(ctx)
|
|
|
|
|
|
|
|
|
|
|
|
welcomeMu.RLock()
|
|
|
|
|
|
defer welcomeMu.RUnlock()
|
|
|
|
|
|
|
|
|
|
|
|
return welcomeCache[direction]
|
|
|
|
|
|
}
|