mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
DismissGroup
This commit is contained in:
parent
6acc0a18b5
commit
05ffb44ed5
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user