// Package account_audit 提供账号操作审计日志服务 // 负责记录所有账号管理操作,用于审计追踪和合规要求 package account_audit import ( "context" "github.com/break/junhong_cmp_fiber/internal/model" "github.com/break/junhong_cmp_fiber/pkg/logger" "go.uber.org/zap" ) // AccountOperationLogStore 账号操作日志存储接口 type AccountOperationLogStore interface { Create(ctx context.Context, log *model.AccountOperationLog) error } // Service 账号审计服务 type Service struct { store AccountOperationLogStore } // NewService 创建账号审计服务实例 func NewService(store AccountOperationLogStore) *Service { return &Service{ store: store, } } // LogOperation 记录账号操作日志(异步写入,不阻塞主流程) func (s *Service) LogOperation(ctx context.Context, log *model.AccountOperationLog) { // 异步写入审计日志,不阻塞业务操作 go func() { if err := s.store.Create(context.Background(), log); err != nil { // 写入失败只记录错误日志,不影响业务 logger.GetAppLogger().Error("写入账号操作日志失败", zap.Uint("operator_id", log.OperatorID), zap.String("operation_type", log.OperationType), zap.Error(err)) } }() }