mirror of https://github.com/go-sonic/sonic.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package admin
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/go-sonic/sonic/model/dto"
|
|
"github.com/go-sonic/sonic/model/param"
|
|
"github.com/go-sonic/sonic/service"
|
|
"github.com/go-sonic/sonic/util"
|
|
"github.com/go-sonic/sonic/util/xerr"
|
|
)
|
|
|
|
type LogHandler struct {
|
|
LogService service.LogService
|
|
}
|
|
|
|
func NewLogHandler(logService service.LogService) *LogHandler {
|
|
return &LogHandler{
|
|
LogService: logService,
|
|
}
|
|
}
|
|
|
|
func (l *LogHandler) PageLatestLog(ctx *gin.Context) (interface{}, error) {
|
|
top, err := util.MustGetQueryInt32(ctx, "top")
|
|
if err != nil {
|
|
top = 10
|
|
}
|
|
logs, _, err := l.LogService.PageLog(ctx, param.Page{PageSize: int(top)}, ¶m.Sort{Fields: []string{"createTime,desc"}})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
logDTOs := make([]*dto.Log, 0, len(logs))
|
|
for _, log := range logs {
|
|
logDTOs = append(logDTOs, l.LogService.ConvertToDTO(log))
|
|
}
|
|
return logDTOs, nil
|
|
}
|
|
|
|
func (l *LogHandler) PageLog(ctx *gin.Context) (interface{}, error) {
|
|
type LogParam struct {
|
|
param.Page
|
|
*param.Sort
|
|
}
|
|
var logParam LogParam
|
|
err := ctx.ShouldBindQuery(&logParam)
|
|
if err != nil {
|
|
return nil, xerr.WithMsg(err, "parameter error").WithStatus(xerr.StatusBadRequest)
|
|
}
|
|
if logParam.Sort == nil {
|
|
logParam.Sort = ¶m.Sort{
|
|
Fields: []string{"createTime,desc"},
|
|
}
|
|
}
|
|
logs, totalCount, err := l.LogService.PageLog(ctx, logParam.Page, logParam.Sort)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
logDTOs := make([]*dto.Log, 0, len(logs))
|
|
for _, log := range logs {
|
|
logDTOs = append(logDTOs, l.LogService.ConvertToDTO(log))
|
|
}
|
|
return dto.NewPage(logDTOs, totalCount, logParam.Page), nil
|
|
}
|
|
|
|
func (l *LogHandler) ClearLog(ctx *gin.Context) (interface{}, error) {
|
|
return nil, l.LogService.Clear(ctx)
|
|
}
|