Files
mayfly-go/server/pkg/model/page.go

34 lines
706 B
Go
Raw Normal View History

2021-01-08 15:37:32 +08:00
package model
2020-09-01 10:34:11 +08:00
import (
"mayfly-go/pkg/utils/structx"
)
2020-09-01 10:34:11 +08:00
// 分页参数
type PageParam struct {
PageNum int `json:"pageNum" form:"pageNum" gorm:"-"`
PageSize int `json:"pageSize" form:"pageSize" gorm:"-"`
2020-09-01 10:34:11 +08:00
}
// 分页结果
type PageResult[T any] struct {
2022-11-18 17:52:30 +08:00
Total int64 `json:"total"`
List []T `json:"list"`
2020-09-01 10:34:11 +08:00
}
2022-10-26 20:49:29 +08:00
// 空分页结果
func NewEmptyPageResult[T any]() *PageResult[T] {
return &PageResult[T]{Total: 0}
2022-10-26 20:49:29 +08:00
}
// PageResultConv pageResult转换
func PageResultConv[F any, T any](pageResult *PageResult[F]) *PageResult[T] {
if pageResult == nil {
return NewEmptyPageResult[T]()
}
return &PageResult[T]{
Total: pageResult.Total,
List: structx.CopySliceTo[F, T](pageResult.List),
}
}