From f113e1874ee50aae6714c34a57c2378990710bd3 Mon Sep 17 00:00:00 2001 From: wozulong <> Date: Tue, 5 Nov 2024 14:28:39 +0800 Subject: [PATCH] fix: fix SearchUsers not working if using PostgreSQL Signed-off-by: wozulong <> --- model/user.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/model/user.go b/model/user.go index 34f97e0..aa0126e 100644 --- a/model/user.go +++ b/model/user.go @@ -91,13 +91,18 @@ func SearchUsers(keyword string, group string) ([]*User, error) { var users []*User var err error + groupCol := "`group`" + if common.UsingPostgreSQL { + groupCol = `"group"` + } + // 尝试将关键字转换为整数ID keywordInt, err := strconv.Atoi(keyword) if err == nil { // 如果转换成功,按照ID和可选的组别搜索用户 - query := DB.Unscoped().Omit("password").Where("`id` = ?", keywordInt) + query := DB.Unscoped().Omit("password").Where("id = ?", keywordInt) if group != "" { - query = query.Where("`group` = ?", group) // 使用反引号包围group + query = query.Where(groupCol+" = ?", group) // 使用反引号包围group } err = query.Find(&users).Error if err != nil || len(users) > 0 { @@ -108,9 +113,9 @@ func SearchUsers(keyword string, group string) ([]*User, error) { err = nil 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 != "" { - query = query.Where("("+likeCondition+") AND `group` = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group) + query = query.Where("("+likeCondition+") AND "+groupCol+" = ?", "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%", group) } else { query = query.Where(likeCondition, "%"+keyword+"%", "%"+keyword+"%", "%"+keyword+"%") }