diff --git a/model/channel.go b/model/channel.go index 4bb4ebec..7fdea9d9 100644 --- a/model/channel.go +++ b/model/channel.go @@ -2,7 +2,6 @@ package model import ( "one-api/common" - "strconv" "gorm.io/gorm" ) @@ -42,9 +41,11 @@ func GetAllChannels(startIdx int, num int, selectAll bool) ([]*Channel, error) { } func SearchChannels(keyword string) (channels []*Channel, err error) { - idKeyword, err := strconv.Atoi(keyword) - - err = DB.Omit("key").Where("name LIKE ?", keyword+"%").Or(&Channel{Id: idKeyword}).Or(&Channel{Key: keyword}).Find(&channels).Error + keyCol := "`key`" + if common.UsingPostgreSQL { + keyCol = `"key"` + } + err = DB.Omit("key").Where("id = ? or name LIKE ? or "+keyCol+" = ?", common.String2Int(keyword), keyword+"%", keyword).Find(&channels).Error return channels, err }