76 lines
2.2 KiB
Go
76 lines
2.2 KiB
Go
package audit
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"hyapp-admin-server/internal/model"
|
|
"hyapp-admin-server/internal/modules/shared"
|
|
"hyapp-admin-server/internal/repository"
|
|
"hyapp-admin-server/internal/response"
|
|
)
|
|
|
|
type Handler struct {
|
|
service *AuditService
|
|
}
|
|
|
|
func New(store *repository.Store) *Handler {
|
|
return &Handler{service: NewService(store)}
|
|
}
|
|
|
|
func (h *Handler) ListLoginLogs(c *gin.Context) {
|
|
options := shared.ListOptions(c)
|
|
logs, total, err := h.service.ListLoginLogs(options)
|
|
if err != nil {
|
|
response.ServerError(c, "获取登录日志失败")
|
|
return
|
|
}
|
|
response.OK(c, response.Page{Items: logs, Page: options.Page, PageSize: options.PageSize, Total: total})
|
|
}
|
|
|
|
func (h *Handler) ListOperationLogs(c *gin.Context) {
|
|
options := shared.ListOptions(c)
|
|
logs, total, err := h.service.ListOperationLogs(options)
|
|
if err != nil {
|
|
response.ServerError(c, "获取操作日志失败")
|
|
return
|
|
}
|
|
response.OK(c, response.Page{Items: logs, Page: options.Page, PageSize: options.PageSize, Total: total})
|
|
}
|
|
|
|
func (h *Handler) ExportLoginLogs(c *gin.Context) {
|
|
export, err := h.service.ExportLoginLogs(shared.ListOptions(c))
|
|
if err != nil {
|
|
response.ServerError(c, "导出登录日志失败")
|
|
return
|
|
}
|
|
|
|
shared.OperationLog(c, h, "export-login-logs", "admin_login_logs", "success", fmt.Sprintf("%d logs", export.Count))
|
|
c.Header("Content-Disposition", "attachment; filename="+export.FileName)
|
|
c.Header("Content-Type", "text/csv; charset=utf-8")
|
|
c.Writer.WriteHeader(200)
|
|
_, _ = c.Writer.Write(export.Content)
|
|
}
|
|
|
|
func (h *Handler) ExportOperationLogs(c *gin.Context) {
|
|
export, err := h.service.ExportOperationLogs(shared.ListOptions(c))
|
|
if err != nil {
|
|
response.ServerError(c, "导出操作日志失败")
|
|
return
|
|
}
|
|
|
|
shared.OperationLog(c, h, "export-operation-logs", "admin_operation_logs", "success", fmt.Sprintf("%d logs", export.Count))
|
|
c.Header("Content-Disposition", "attachment; filename="+export.FileName)
|
|
c.Header("Content-Type", "text/csv; charset=utf-8")
|
|
c.Writer.WriteHeader(200)
|
|
_, _ = c.Writer.Write(export.Content)
|
|
}
|
|
|
|
func (h *Handler) CreateOperationLog(log model.OperationLog) error {
|
|
return h.service.CreateOperationLog(log)
|
|
}
|
|
|
|
func (h *Handler) LogOperation(event shared.OperationEvent) error {
|
|
return h.service.LogOperation(event)
|
|
}
|