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) }