package services import ( "go.uber.org/zap" "goalfymax-admin/internal/models" "goalfymax-admin/internal/storage" "goalfymax-admin/pkg/utils" ) // LogService 日志服务接口 type LogService interface { CreateLoginLog(log *models.LoginLog) error CreateOperationLog(log *models.OperationLog) error GetLoginLogs(req *models.LoginLogListRequest) ([]models.LoginLog, int64, error) GetOperationLogs(req *models.OperationLogListRequest) ([]models.OperationLog, int64, error) DeleteLoginLogs(beforeDate string) error DeleteOperationLogs(beforeDate string) error } type logService struct { logStorage storage.LogStorage logger *utils.Logger } // NewLogService 创建日志服务实例 func NewLogService(logStorage storage.LogStorage, logger *utils.Logger) LogService { return &logService{ logStorage: logStorage, logger: logger, } } // CreateLoginLog 创建登录日志 func (s *logService) CreateLoginLog(log *models.LoginLog) error { err := s.logStorage.CreateLoginLog(log) if err != nil { s.logger.Error("创建登录日志失败", zap.Error(err)) return err } return nil } // CreateOperationLog 创建操作日志 func (s *logService) CreateOperationLog(log *models.OperationLog) error { err := s.logStorage.CreateOperationLog(log) if err != nil { s.logger.Error("创建操作日志失败", zap.Error(err)) return err } return nil } // GetLoginLogs 获取登录日志列表 func (s *logService) GetLoginLogs(req *models.LoginLogListRequest) ([]models.LoginLog, int64, error) { return s.logStorage.GetLoginLogs(req) } // GetOperationLogs 获取操作日志列表 func (s *logService) GetOperationLogs(req *models.OperationLogListRequest) ([]models.OperationLog, int64, error) { return s.logStorage.GetOperationLogs(req) } // DeleteLoginLogs 删除指定日期之前的登录日志 func (s *logService) DeleteLoginLogs(beforeDate string) error { err := s.logStorage.DeleteLoginLogs(beforeDate) if err != nil { s.logger.Error("删除登录日志失败", zap.Error(err)) return err } s.logger.Info("登录日志删除成功", zap.String("beforeDate", beforeDate)) return nil } // DeleteOperationLogs 删除指定日期之前的操作日志 func (s *logService) DeleteOperationLogs(beforeDate string) error { err := s.logStorage.DeleteOperationLogs(beforeDate) if err != nil { s.logger.Error("删除操作日志失败", zap.Error(err)) return err } s.logger.Info("操作日志删除成功", zap.String("beforeDate", beforeDate)) return nil }