86 lines
2.5 KiB
Go
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
|
|
}
|