2021-01-08 15:37:32 +08:00
|
|
|
package model
|
2020-09-01 10:34:11 +08:00
|
|
|
|
2025-05-20 21:04:47 +08:00
|
|
|
import (
|
|
|
|
|
"mayfly-go/pkg/utils/structx"
|
|
|
|
|
)
|
|
|
|
|
|
2020-09-01 10:34:11 +08:00
|
|
|
// 分页参数
|
|
|
|
|
type PageParam struct {
|
2025-05-20 21:04:47 +08:00
|
|
|
PageNum int `json:"pageNum" form:"pageNum" gorm:"-"`
|
|
|
|
|
PageSize int `json:"pageSize" form:"pageSize" gorm:"-"`
|
2020-09-01 10:34:11 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 分页结果
|
2023-07-01 14:34:42 +08:00
|
|
|
type PageResult[T any] struct {
|
2022-11-18 17:52:30 +08:00
|
|
|
Total int64 `json:"total"`
|
2025-05-20 21:04:47 +08:00
|
|
|
List []T `json:"list"`
|
2020-09-01 10:34:11 +08:00
|
|
|
}
|
2022-10-26 20:49:29 +08:00
|
|
|
|
2023-07-01 14:34:42 +08:00
|
|
|
// 空分页结果
|
2025-05-20 21:04:47 +08:00
|
|
|
func NewEmptyPageResult[T any]() *PageResult[T] {
|
2023-07-01 14:34:42 +08:00
|
|
|
return &PageResult[T]{Total: 0}
|
2022-10-26 20:49:29 +08:00
|
|
|
}
|
2025-05-20 21:04:47 +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,
|
2025-05-24 16:22:54 +08:00
|
|
|
List: structx.CopySliceTo[F, T](pageResult.List),
|
2025-05-20 21:04:47 +08:00
|
|
|
}
|
|
|
|
|
}
|