mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-20 17:26:38 +08:00
fix: SearchUsers (close #160)
This commit is contained in:
parent
d80a7d3c97
commit
36d164be0e
@ -4,6 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"one-api/common"
|
"one-api/common"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -72,8 +73,26 @@ func GetAllUsers(startIdx int, num int) (users []*User, err error) {
|
|||||||
return users, err
|
return users, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SearchUsers(keyword string) (users []*User, err error) {
|
func SearchUsers(keyword string) ([]*User, error) {
|
||||||
err = DB.Omit("password").Where("id = ? or username LIKE ? or email LIKE ? or display_name LIKE ?", keyword, keyword+"%", keyword+"%", keyword+"%").Find(&users).Error
|
var users []*User
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// 尝试将关键字转换为整数ID
|
||||||
|
keywordInt, err := strconv.Atoi(keyword)
|
||||||
|
if err == nil {
|
||||||
|
// 如果转换成功,按照ID搜索用户
|
||||||
|
err = DB.Unscoped().Omit("password").Where("id = ?", keywordInt).Find(&users).Error
|
||||||
|
if err != nil || len(users) > 0 {
|
||||||
|
// 如果依据ID找到用户或者发生错误,返回结果或错误
|
||||||
|
return users, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果ID转换失败或者没有找到用户,依据其他字段进行模糊搜索
|
||||||
|
err = DB.Unscoped().Omit("password").
|
||||||
|
Where("username LIKE ? OR email LIKE ? OR display_name LIKE ?", keyword+"%", keyword+"%", keyword+"%").
|
||||||
|
Find(&users).Error
|
||||||
|
|
||||||
return users, err
|
return users, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user