Files

86 lines
2.5 KiB
Go

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
}