74 lines
1.4 KiB
Go
74 lines
1.4 KiB
Go
package handlers
|
|
|
|
import (
|
|
"goalfymax-admin/internal/models"
|
|
"goalfymax-admin/internal/services"
|
|
"goalfymax-admin/pkg/utils"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// AuditLogHandler 审计日志处理器
|
|
type AuditLogHandler struct {
|
|
service services.AuditLogService
|
|
response *utils.Response
|
|
}
|
|
|
|
// NewAuditLogHandler 创建审计日志处理器
|
|
func NewAuditLogHandler(service services.AuditLogService) *AuditLogHandler {
|
|
return &AuditLogHandler{
|
|
service: service,
|
|
response: utils.NewResponse(),
|
|
}
|
|
}
|
|
|
|
// List 获取审计日志列表
|
|
func (h *AuditLogHandler) List(c *gin.Context) {
|
|
var req models.AuditLogListRequest
|
|
if err := c.ShouldBindQuery(&req); err != nil {
|
|
h.response.ValidateError(c, err)
|
|
return
|
|
}
|
|
|
|
// 设置默认值
|
|
if req.Page < 1 {
|
|
req.Page = 1
|
|
}
|
|
if req.Size < 1 {
|
|
req.Size = 20
|
|
}
|
|
if req.SortBy == "" {
|
|
req.SortBy = "operation_time"
|
|
}
|
|
if req.SortOrder == "" {
|
|
req.SortOrder = "desc"
|
|
}
|
|
|
|
result, err := h.service.List(&req)
|
|
if err != nil {
|
|
h.response.InternalServerError(c, err.Error())
|
|
return
|
|
}
|
|
|
|
h.response.Success(c, result)
|
|
}
|
|
|
|
// GetByID 获取审计日志详情
|
|
func (h *AuditLogHandler) GetByID(c *gin.Context) {
|
|
idStr := c.Param("id")
|
|
id, err := strconv.ParseUint(idStr, 10, 32)
|
|
if err != nil {
|
|
h.response.BadRequest(c, "无效的ID")
|
|
return
|
|
}
|
|
|
|
log, err := h.service.GetByID(uint(id))
|
|
if err != nil {
|
|
h.response.InternalServerError(c, err.Error())
|
|
return
|
|
}
|
|
|
|
h.response.Success(c, log)
|
|
}
|