feat: entgo.

This commit is contained in:
tx7do
2023-10-27 08:15:00 +08:00
parent bfea578907
commit 6ed25e948c
6 changed files with 36 additions and 23 deletions

View File

@@ -1 +1 @@
# kratos-utils # go-utils

View File

@@ -21,14 +21,14 @@ func QueryCommandToOrderConditions(orderBys []string) (error, func(s *sql.Select
continue continue
} }
s.OrderBy(sql.Desc(s.C(key))) BuildOrderSelect(s, key, true)
} else { } else {
// 升序 // 升序
if len(v) == 0 { if len(v) == 0 {
continue 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)) { func BuildOrderSelector(orderBys []string, defaultOrderField string) (error, func(s *sql.Selector)) {
if len(orderBys) == 0 { if len(orderBys) == 0 {
return nil, func(s *sql.Selector) { return nil, func(s *sql.Selector) {
s.OrderBy(sql.Desc(s.C(defaultOrderField))) BuildOrderSelect(s, defaultOrderField, true)
} }
} else { } else {
return QueryCommandToOrderConditions(orderBys) 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)))
}
}

View File

@@ -9,18 +9,14 @@ import (
func BuildPaginationSelector(page, pageSize int32, noPaging bool) func(*sql.Selector) { func BuildPaginationSelector(page, pageSize int32, noPaging bool) func(*sql.Selector) {
if noPaging { if noPaging {
return nil return nil
} } else {
return func(s *sql.Selector) {
if page == 0 { BuildPaginationSelect(s, page, pageSize)
page = DefaultPage }
}
if pageSize == 0 {
pageSize = DefaultPageSize
}
return func(s *sql.Selector) {
s.Offset(paging.GetPageOffset(page, pageSize)).
Limit(int(pageSize))
} }
} }
func BuildPaginationSelect(s *sql.Selector, page, pageSize int32) {
offset := paging.GetPageOffset(page, pageSize)
s.Offset(offset).Limit(int(pageSize))
}

View File

@@ -5,11 +5,6 @@ import (
_ "github.com/go-kratos/kratos/v2/encoding/json" _ "github.com/go-kratos/kratos/v2/encoding/json"
) )
const (
DefaultPage = 1
DefaultPageSize = 10
)
// BuildQuerySelector 构建分页查询选择器 // BuildQuerySelector 构建分页查询选择器
func BuildQuerySelector( func BuildQuerySelector(
dbDriverName string, dbDriverName string,

View File

@@ -1,5 +1,19 @@
package pagination package pagination
const (
DefaultPage = 1 // 默认页数
DefaultPageSize = 10 // 默认每页行数
)
// GetPageOffset 计算偏移量
func GetPageOffset(pageNum, pageSize int32) int { func GetPageOffset(pageNum, pageSize int32) int {
if pageNum < 1 {
pageNum = DefaultPage
}
if pageSize < 1 {
pageSize = DefaultPageSize
}
return int((pageNum - 1) * pageSize) return int((pageNum - 1) * pageSize)
} }

View File

@@ -1,6 +1,6 @@
git tag v1.1.0 git tag v1.1.0
git tag bank_card/v1.1.0 git tag bank_card/v1.1.0
git tag entgo/v1.1.1 git tag entgo/v1.1.2
git tag geoip/v1.1.0 git tag geoip/v1.1.0
git push origin --tags git push origin --tags