package xingwei import ( "tyapi-server/internal/config" "tyapi-server/internal/shared/external_logger" ) // NewXingweiServiceWithConfig 使用配置创建行为数据服务 func NewXingweiServiceWithConfig(cfg *config.Config) (*XingweiService, error) { // 将配置类型转换为通用外部服务日志配置 loggingConfig := external_logger.ExternalServiceLoggingConfig{ Enabled: cfg.Xingwei.Logging.Enabled, LogDir: cfg.Xingwei.Logging.LogDir, ServiceName: "xingwei", UseDaily: cfg.Xingwei.Logging.UseDaily, EnableLevelSeparation: cfg.Xingwei.Logging.EnableLevelSeparation, LevelConfigs: make(map[string]external_logger.ExternalServiceLevelFileConfig), } // 转换级别配置 for key, value := range cfg.Xingwei.Logging.LevelConfigs { loggingConfig.LevelConfigs[key] = external_logger.ExternalServiceLevelFileConfig{ MaxSize: value.MaxSize, MaxBackups: value.MaxBackups, MaxAge: value.MaxAge, Compress: value.Compress, } } // 创建通用外部服务日志器 logger, err := external_logger.NewExternalServiceLogger(loggingConfig) if err != nil { return nil, err } // 创建行为数据服务 service := NewXingweiService( cfg.Xingwei.URL, cfg.Xingwei.ApiID, cfg.Xingwei.ApiKey, logger, ) return service, nil } // NewXingweiServiceWithLogging 使用自定义日志配置创建行为数据服务 func NewXingweiServiceWithLogging(url, apiID, apiKey string, loggingConfig external_logger.ExternalServiceLoggingConfig) (*XingweiService, error) { // 设置服务名称 loggingConfig.ServiceName = "xingwei" // 创建通用外部服务日志器 logger, err := external_logger.NewExternalServiceLogger(loggingConfig) if err != nil { return nil, err } // 创建行为数据服务 service := NewXingweiService(url, apiID, apiKey, logger) return service, nil }