Browse Source

Merge pull request #648 from palboss/main

解决  #534 用户管理-管理用户-查询报错 (SQLSTATE 42601)-postgresql
Calcium-Ion 1 year ago
parent
commit
794f6a6e34
1 changed files with 10 additions and 5 deletions
  1. 10 5
      model/user.go

+ 10 - 5
model/user.go

@@ -89,26 +89,31 @@ 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 {
 			return users, err
 		}
 	}
-
+ 
 	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+"%")
 	}