servicecontext.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. // 审计日志(移植自 sdf-serve)
  19. SystemLogModel model.TSystemLogModel
  20. ConfigModel model.TConfigModel
  21. LogArchiveRecordModel model.TLogArchiveRecordModel
  22. LogRestoreRecordModel model.TLogRestoreRecordModel
  23. MinioClient *audit.MinioClient
  24. LogConfigManager *audit.LogConfigManager
  25. LogMiddleware rest.Middleware
  26. }
  27. func NewServiceContext(c config.Config) *ServiceContext {
  28. conn := sqlx.MustNewConn(c.MySQL)
  29. configModel := model.NewTConfigModel(conn)
  30. systemLogModel := model.NewTSystemLogModel(conn)
  31. // 动态配置 + MinIO 客户端;t_config 未建/缺行时降级运行(client 保持 nil)
  32. minioClient, logConfig := audit.GetGlobalConfig(configModel)
  33. logx.Infof("audit logging initialized: minio=%t logLevel=%q hmacSecretSet=%t",
  34. minioClient != nil, logConfig.LogRecordLevel, logConfig.HmacSecret != "")
  35. logMiddleware := audit.NewLogMiddleware().Handle(systemLogModel, configModel, c.Name)
  36. return &ServiceContext{
  37. Config: c,
  38. DB: conn,
  39. DirectoryModel: model.NewTDirectoryModel(conn),
  40. KeyModel: model.NewTKeyModel(conn),
  41. ServiceModel: model.NewTServiceModel(conn),
  42. SystemLogModel: systemLogModel,
  43. ConfigModel: configModel,
  44. LogArchiveRecordModel: model.NewTLogArchiveRecordModel(conn),
  45. LogRestoreRecordModel: model.NewTLogRestoreRecordModel(conn),
  46. MinioClient: minioClient,
  47. LogConfigManager: logConfig,
  48. LogMiddleware: logMiddleware,
  49. }
  50. }