This commit is contained in:
withchao
2023-02-08 15:25:25 +08:00
parent 77edbe1edd
commit 3423b224fd
4 changed files with 72 additions and 64 deletions
+19 -3
View File
@@ -17,9 +17,25 @@ func gormPage[E any](db *gorm.DB, pageNumber, showNumber int32) (int32, []*E, er
return int32(count), es, nil
}
func gormSearch[E any](db *gorm.DB, field string, value string, pageNumber, showNumber int32) (int32, []*E, error) {
if field != "" && value != "" {
db = db.Where(field+" like ?", "%"+value+"%")
func gormSearch[E any](db *gorm.DB, fields []string, value string, pageNumber, showNumber int32) (int32, []*E, error) {
if len(fields) > 0 && value != "" {
value = "%" + value + "%"
if len(fields) == 1 {
db = db.Where(fields[0]+" like ?", value)
} else {
t := db
for _, field := range fields {
t = t.Or(field+" like ?", value)
}
db = db.Where(t)
}
}
return gormPage[E](db, pageNumber, showNumber)
}
func gormIn[E any](db **gorm.DB, field string, es []E) {
if len(es) == 0 {
return
}
*db = (*db).Where(field+" in (?)", es)
}