DismissGroup

This commit is contained in:
withchao 2023-06-04 17:17:55 +08:00
parent 6acc0a18b5
commit 05ffb44ed5

View File

@ -1,8 +1,10 @@
package ormutil package ormutil
import ( import (
"fmt"
"github.com/OpenIMSDK/Open-IM-Server/pkg/errs" "github.com/OpenIMSDK/Open-IM-Server/pkg/errs"
"gorm.io/gorm" "gorm.io/gorm"
"strings"
) )
func GormPage[E any](db *gorm.DB, pageNumber, showNumber int32) (uint32, []*E, error) { func GormPage[E any](db *gorm.DB, pageNumber, showNumber int32) (uint32, []*E, error) {
@ -20,16 +22,14 @@ func GormPage[E any](db *gorm.DB, pageNumber, showNumber int32) (uint32, []*E, e
func GormSearch[E any](db *gorm.DB, fields []string, value string, pageNumber, showNumber int32) (uint32, []*E, error) { func GormSearch[E any](db *gorm.DB, fields []string, value string, pageNumber, showNumber int32) (uint32, []*E, error) {
if len(fields) > 0 && value != "" { if len(fields) > 0 && value != "" {
value = "%" + value + "%" val := "%" + value + "%"
if len(fields) == 1 { arr := make([]string, 0, len(fields))
db = db.Where(fields[0]+" like ?", value) vals := make([]interface{}, 0, len(fields))
} else { for _, field := range fields {
t := db arr = append(arr, fmt.Sprintf("`%s` like ?", field))
for _, field := range fields { vals = append(vals, val)
t = t.Or(field+" like ?", value)
}
db = db.Where(t)
} }
db = db.Where(strings.Join(arr, " or "), vals...)
} }
return GormPage[E](db, pageNumber, showNumber) return GormPage[E](db, pageNumber, showNumber)
} }