servicecontext.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package svc
  4. import (
  5. "udeServer/internal/audit"
  6. "udeServer/internal/config"
  7. "udeServer/internal/model"
  8. "github.com/zeromicro/go-zero/core/logx"
  9. "github.com/zeromicro/go-zero/core/stores/sqlx"
  10. "github.com/zeromicro/go-zero/rest"
  11. )
  12. type ServiceContext struct {
  13. Config config.Config
  14. DB sqlx.SqlConn
  15. DirectoryModel model.TDirectoryModel
  16. KeyModel model.TKeyModel
  17. ServiceModel model.TServiceModel
  18. ApplicationCredModel model.TApplicationCredentialsModel
  19. // 审计日志(移植自 sdf-serve)
  20. SystemLogModel model.TSystemLogModel
  21. ConfigModel model.TConfigModel
  22. LogArchiveRecordModel model.TLogArchiveRecordModel
  23. LogRestoreRecordModel model.TLogRestoreRecordModel
  24. MinioClient *audit.MinioClient
  25. LogConfigManager *audit.LogConfigManager
  26. LogMiddleware rest.Middleware
  27. SpanRecorder *audit.SpanRecorder
  28. }
  29. func NewServiceContext(c config.Config) *ServiceContext {
  30. conn := sqlx.MustNewConn(c.MySQL)
  31. configModel := model.NewTConfigModel(conn)
  32. systemLogModel := model.NewTSystemLogModel(conn)
  33. // 动态配置 + MinIO 客户端;t_config 未建/缺行时降级运行(client 保持 nil)
  34. minioClient, logConfig := audit.GetGlobalConfig(configModel)
  35. logx.Infof("audit logging initialized: minio=%t logLevel=%q hmacSecretSet=%t",
  36. minioClient != nil, logConfig.LogRecordLevel, logConfig.HmacSecret != "")
  37. logMiddleware := audit.NewLogMiddleware().Handle(systemLogModel, configModel, c.Name)
  38. // type=2 接口日志:四个远程外挂接口调用的 Recorder(见 internal/audit/span.go)
  39. spanRecorder := audit.NewSpanRecorder(systemLogModel, configModel, c.Name)
  40. return &ServiceContext{
  41. Config: c,
  42. DB: conn,
  43. DirectoryModel: model.NewTDirectoryModel(conn),
  44. KeyModel: model.NewTKeyModel(conn),
  45. ServiceModel: model.NewTServiceModel(conn),
  46. ApplicationCredModel: model.NewTApplicationCredentialsModel(conn),
  47. SystemLogModel: systemLogModel,
  48. ConfigModel: configModel,
  49. LogArchiveRecordModel: model.NewTLogArchiveRecordModel(conn),
  50. LogRestoreRecordModel: model.NewTLogRestoreRecordModel(conn),
  51. MinioClient: minioClient,
  52. LogConfigManager: logConfig,
  53. LogMiddleware: logMiddleware,
  54. SpanRecorder: spanRecorder,
  55. }
  56. }