feat():learning后台管理项目初始化
This commit is contained in:
70
internal/services/audit_log_service.go
Normal file
70
internal/services/audit_log_service.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"goalfymax-admin/internal/models"
|
||||
"goalfymax-admin/internal/storage"
|
||||
"time"
|
||||
)
|
||||
|
||||
// AuditLogService 审计日志服务接口
|
||||
type AuditLogService interface {
|
||||
Create(req *models.CreateAuditLogRequest) error
|
||||
GetByID(id uint) (*models.AuditLog, error)
|
||||
List(req *models.AuditLogListRequest) (*models.AuditLogListResponse, error)
|
||||
}
|
||||
|
||||
type auditLogService struct {
|
||||
storage storage.AuditLogStorage
|
||||
}
|
||||
|
||||
// NewAuditLogService 创建审计日志服务实例
|
||||
func NewAuditLogService(storage storage.AuditLogStorage) AuditLogService {
|
||||
return &auditLogService{
|
||||
storage: storage,
|
||||
}
|
||||
}
|
||||
|
||||
// Create 创建审计日志
|
||||
func (s *auditLogService) Create(req *models.CreateAuditLogRequest) error {
|
||||
log := &models.AuditLog{
|
||||
OperationType: req.OperationType,
|
||||
OperationTime: time.Now(),
|
||||
OperatorID: req.OperatorID,
|
||||
OperatorEmail: req.OperatorEmail,
|
||||
TargetType: req.TargetType,
|
||||
TargetID: req.TargetID,
|
||||
TargetEmail: req.TargetEmail,
|
||||
OperationDetails: req.OperationDetails,
|
||||
IPAddress: req.IPAddress,
|
||||
UserAgent: req.UserAgent,
|
||||
Status: req.Status,
|
||||
ErrorMessage: req.ErrorMessage,
|
||||
}
|
||||
|
||||
// 设置默认状态
|
||||
if log.Status == "" {
|
||||
log.Status = models.AuditLogStatusSuccess
|
||||
}
|
||||
|
||||
return s.storage.Create(log)
|
||||
}
|
||||
|
||||
// GetByID 根据ID获取审计日志
|
||||
func (s *auditLogService) GetByID(id uint) (*models.AuditLog, error) {
|
||||
return s.storage.GetByID(id)
|
||||
}
|
||||
|
||||
// List 查询审计日志列表
|
||||
func (s *auditLogService) List(req *models.AuditLogListRequest) (*models.AuditLogListResponse, error) {
|
||||
logs, total, err := s.storage.List(req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &models.AuditLogListResponse{
|
||||
List: logs,
|
||||
Total: total,
|
||||
Page: req.Page,
|
||||
Size: req.Size,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user