init push

This commit is contained in:
2026-07-16 22:16:45 +07:00
commit 8b068bdb10
1021 changed files with 332816 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package service
import "strings"
type sortRule struct {
keys []string
asc string
desc string
}
func sortField(column string, keys ...string) sortRule {
if len(keys) == 0 {
keys = []string{column}
}
return sortRule{
keys: keys,
asc: column + " ASC",
desc: column + " DESC",
}
}
func sortExpr(asc, desc string, keys ...string) sortRule {
return sortRule{
keys: keys,
asc: asc,
desc: desc,
}
}
func normalizeSortByRules(sort string, rules ...sortRule) string {
for _, rule := range rules {
for _, key := range rule.keys {
key = strings.TrimSpace(key)
if key == "" {
continue
}
if sort == key {
return rule.asc
}
if sort == "-"+key {
return rule.desc
}
}
}
return ""
}
func joinSortClauses(clauses []string) string {
return strings.Join(clauses, ", ")
}