优化默认角色数据,增加表格多字段排序例子

This commit is contained in:
孟帅
2023-08-11 17:47:28 +08:00
parent 7fcf8fb73c
commit 8decde3f76
12 changed files with 526 additions and 337 deletions

View File

@@ -0,0 +1,41 @@
package handler
import (
"github.com/gogf/gf/v2/database/gdb"
"hotgo/internal/model/input/form"
)
// ISorter 排序器接口实现该接口即可使用Handler匹配排序支持多字段排序
type ISorter interface {
GetSorters() []form.Sorter
}
// Sorter 排序器
func Sorter(in ISorter) func(m *gdb.Model) *gdb.Model {
return func(m *gdb.Model) *gdb.Model {
hasSort := false
sorters := in.GetSorters()
for _, sorter := range sorters {
if len(sorter.ColumnKey) == 0 || !sorter.Sorter {
continue
}
switch sorter.Order {
case "descend":
hasSort = true
m = m.OrderDesc(sorter.ColumnKey)
case "ascend":
hasSort = true
m = m.OrderAsc(sorter.ColumnKey)
default:
continue
}
}
// 不存在排序条件
if !hasSort {
// ...
}
return m
}
}