feat: entgo.
This commit is contained in:
@@ -21,14 +21,14 @@ func QueryCommandToOrderConditions(orderBys []string) (error, func(s *sql.Select
|
||||
continue
|
||||
}
|
||||
|
||||
s.OrderBy(sql.Desc(s.C(key)))
|
||||
BuildOrderSelect(s, key, true)
|
||||
} else {
|
||||
// 升序
|
||||
if len(v) == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
s.OrderBy(sql.Asc(s.C(v)))
|
||||
BuildOrderSelect(s, v, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,9 +37,17 @@ func QueryCommandToOrderConditions(orderBys []string) (error, func(s *sql.Select
|
||||
func BuildOrderSelector(orderBys []string, defaultOrderField string) (error, func(s *sql.Selector)) {
|
||||
if len(orderBys) == 0 {
|
||||
return nil, func(s *sql.Selector) {
|
||||
s.OrderBy(sql.Desc(s.C(defaultOrderField)))
|
||||
BuildOrderSelect(s, defaultOrderField, true)
|
||||
}
|
||||
} else {
|
||||
return QueryCommandToOrderConditions(orderBys)
|
||||
}
|
||||
}
|
||||
|
||||
func BuildOrderSelect(s *sql.Selector, field string, desc bool) {
|
||||
if desc {
|
||||
s.OrderBy(sql.Desc(s.C(field)))
|
||||
} else {
|
||||
s.OrderBy(sql.Asc(s.C(field)))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,18 +9,14 @@ import (
|
||||
func BuildPaginationSelector(page, pageSize int32, noPaging bool) func(*sql.Selector) {
|
||||
if noPaging {
|
||||
return nil
|
||||
}
|
||||
|
||||
if page == 0 {
|
||||
page = DefaultPage
|
||||
}
|
||||
|
||||
if pageSize == 0 {
|
||||
pageSize = DefaultPageSize
|
||||
}
|
||||
|
||||
return func(s *sql.Selector) {
|
||||
s.Offset(paging.GetPageOffset(page, pageSize)).
|
||||
Limit(int(pageSize))
|
||||
} else {
|
||||
return func(s *sql.Selector) {
|
||||
BuildPaginationSelect(s, page, pageSize)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func BuildPaginationSelect(s *sql.Selector, page, pageSize int32) {
|
||||
offset := paging.GetPageOffset(page, pageSize)
|
||||
s.Offset(offset).Limit(int(pageSize))
|
||||
}
|
||||
|
||||
@@ -5,11 +5,6 @@ import (
|
||||
_ "github.com/go-kratos/kratos/v2/encoding/json"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultPage = 1
|
||||
DefaultPageSize = 10
|
||||
)
|
||||
|
||||
// BuildQuerySelector 构建分页查询选择器
|
||||
func BuildQuerySelector(
|
||||
dbDriverName string,
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
package pagination
|
||||
|
||||
const (
|
||||
DefaultPage = 1 // 默认页数
|
||||
DefaultPageSize = 10 // 默认每页行数
|
||||
)
|
||||
|
||||
// GetPageOffset 计算偏移量
|
||||
func GetPageOffset(pageNum, pageSize int32) int {
|
||||
if pageNum < 1 {
|
||||
pageNum = DefaultPage
|
||||
}
|
||||
|
||||
if pageSize < 1 {
|
||||
pageSize = DefaultPageSize
|
||||
}
|
||||
|
||||
return int((pageNum - 1) * pageSize)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user