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.
sonic/service/impl/log.go

54 lines
1.3 KiB
Go

package impl
import (
"context"
"github.com/go-sonic/sonic/consts"
"github.com/go-sonic/sonic/dal"
"github.com/go-sonic/sonic/model/dto"
"github.com/go-sonic/sonic/model/entity"
"github.com/go-sonic/sonic/model/param"
"github.com/go-sonic/sonic/service"
)
type logServiceImpl struct{}
func NewLogService() service.LogService {
return &logServiceImpl{}
}
func (l *logServiceImpl) Clear(ctx context.Context) error {
logDAL := dal.GetQueryByCtx(ctx).Log
_, err := logDAL.WithContext(ctx).Delete()
if err != nil {
return WrapDBErr(err)
}
return nil
}
func (l *logServiceImpl) PageLog(ctx context.Context, page param.Page, sort *param.Sort) ([]*entity.Log, int64, error) {
logDAL := dal.GetQueryByCtx(ctx).Log
logDO := logDAL.WithContext(ctx)
err := BuildSort(sort, &logDAL, &logDO)
if err != nil {
return nil, 0, err
}
logs, totalCount, err := logDO.FindByPage(page.PageNum*page.PageSize, page.PageSize)
if err != nil {
return nil, 0, WrapDBErr(err)
}
return logs, totalCount, nil
}
func (l *logServiceImpl) ConvertToDTO(log *entity.Log) *dto.Log {
return &dto.Log{
ID: log.ID,
LogKey: log.LogKey,
LogType: consts.LogType(log.Type),
Content: log.Content,
IPAddress: log.IPAddress,
CreateTime: log.CreateTime.UnixMilli(),
}
}