mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-17 16:06:38 +08:00
fix: fix SearchUsers not working if using PostgreSQL
Signed-off-by: wozulong <>
This commit is contained in:
parent
c6d5245c5c
commit
f113e1874e
@ -91,13 +91,18 @@ func SearchUsers(keyword string, group string) ([]*User, error) {
|
|||||||
var users []*User
|
var users []*User
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
groupCol := "`group`"
|
||||||
|
if common.UsingPostgreSQL {
|
||||||
|
groupCol = `"group"`
|
||||||
|
}
|
||||||
|
|
||||||
// 尝试将关键字转换为整数ID
|
// 尝试将关键字转换为整数ID
|
||||||
keywordInt, err := strconv.Atoi(keyword)
|
keywordInt, err := strconv.Atoi(keyword)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// 如果转换成功,按照ID和可选的组别搜索用户
|
// 如果转换成功,按照ID和可选的组别搜索用户
|
||||||
query := DB.Unscoped().Omit("password").Where("`id` = ?", keywordInt)
|
query := DB.Unscoped().Omit("password").Where("id = ?", keywordInt)
|
||||||
if group != "" {
|
if group != "" {
|
||||||
query = query.Where("`group` = ?", group) // 使用反引号包围group
|
query = query.Where(groupCol+" = ?", group) // 使用反引号包围group
|
||||||
}
|
}
|
||||||
err = query.Find(&users).Error
|
err = query.Find(&users).Error
|
||||||
if err != nil || len(users) > 0 {
|
if err != nil || len(users) > 0 {
|
||||||
@ -108,9 +113,9 @@ func SearchUsers(keyword string, group string) ([]*User, error) {
|
|||||||
err = nil
|
err = nil
|
||||||
|
|
||||||
query := DB.Unscoped().Omit("password")
|
query := DB.Unscoped().Omit("password")
|
||||||
likeCondition := "`username` LIKE ? OR `email` LIKE ? OR `display_name` LIKE ?"
|
likeCondition := "username LIKE ? OR email LIKE ? OR display_name LIKE ?"
|
||||||
if group != "" {
|
if group != "" {
|
||||||
query = query.Where("("+likeCondition+") AND `group` = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group)
|
query = query.Where("("+likeCondition+") AND "+groupCol+" = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group)
|
||||||
} else {
|
} else {
|
||||||
query = query.Where(likeCondition, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
|
query = query.Where(likeCondition, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user