// Code scaffolded by goctl. Safe to edit. // goctl 1.10.2 package svc import ( "udeServer/internal/audit" "udeServer/internal/config" "udeServer/internal/model" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/rest" ) type ServiceContext struct { Config config.Config DB sqlx.SqlConn DirectoryModel model.TDirectoryModel KeyModel model.TKeyModel ServiceModel model.TServiceModel // 审计日志(移植自 sdf-serve) SystemLogModel model.TSystemLogModel ConfigModel model.TConfigModel LogArchiveRecordModel model.TLogArchiveRecordModel LogRestoreRecordModel model.TLogRestoreRecordModel MinioClient *audit.MinioClient LogConfigManager *audit.LogConfigManager LogMiddleware rest.Middleware SpanRecorder *audit.SpanRecorder } func NewServiceContext(c config.Config) *ServiceContext { conn := sqlx.MustNewConn(c.MySQL) configModel := model.NewTConfigModel(conn) systemLogModel := model.NewTSystemLogModel(conn) // 动态配置 + MinIO 客户端;t_config 未建/缺行时降级运行(client 保持 nil) minioClient, logConfig := audit.GetGlobalConfig(configModel) logx.Infof("audit logging initialized: minio=%t logLevel=%q hmacSecretSet=%t", minioClient != nil, logConfig.LogRecordLevel, logConfig.HmacSecret != "") logMiddleware := audit.NewLogMiddleware().Handle(systemLogModel, configModel, c.Name) // type=2 接口日志:四个远程外挂接口调用的 Recorder(见 internal/audit/span.go) spanRecorder := audit.NewSpanRecorder(systemLogModel, configModel, c.Name) return &ServiceContext{ Config: c, DB: conn, DirectoryModel: model.NewTDirectoryModel(conn), KeyModel: model.NewTKeyModel(conn), ServiceModel: model.NewTServiceModel(conn), SystemLogModel: systemLogModel, ConfigModel: configModel, LogArchiveRecordModel: model.NewTLogArchiveRecordModel(conn), LogRestoreRecordModel: model.NewTLogRestoreRecordModel(conn), MinioClient: minioClient, LogConfigManager: logConfig, LogMiddleware: logMiddleware, SpanRecorder: spanRecorder, } }