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