yintai2/app/common/dao/base.go

37 lines
645 B
Go

package dao
import (
"regexp"
"strings"
"yintai-api/base/global"
"gorm.io/gorm"
)
func getDB(db ...*gorm.DB) *gorm.DB {
if len(db) > 0 {
return db[0]
}
return global.GetDB()
}
var sortCol = regexp.MustCompile(`^[A-Za-z_][A-Za-z0-9_]*$`)
func ezSort(a string) string {
items := strings.Split(a, ",")
parts := make([]string, 0, len(items))
for _, item := range items {
s := strings.Fields(item)
if len(s) != 2 || !sortCol.MatchString(s[0]) {
return ""
}
dir := strings.ToUpper(s[1])
if dir != "ASC" && dir != "DESC" {
return ""
}
parts = append(parts, "`"+s[0]+"` "+dir)
}
return strings.Join(parts, ",")
}