diff --git a/model/channel.go b/model/channel.go index 91f5384c..41e5e371 100644 --- a/model/channel.go +++ b/model/channel.go @@ -119,10 +119,15 @@ func SearchChannels(keyword string, group string, model string, idSort bool) ([] // 如果是 PostgreSQL,使用双引号 if common.UsingPostgreSQL { - keyCol = `"key"` modelsCol = `"models"` } + baseURLCol := "`base_url`" + // 如果是 PostgreSQL,使用双引号 + if common.UsingPostgreSQL { + baseURLCol = `"base_url"` + } + order := "priority desc" if idSort { order = "id desc" @@ -142,11 +147,11 @@ func SearchChannels(keyword string, group string, model string, idSort bool) ([] // sqlite, PostgreSQL groupCondition = `(',' || ` + groupCol + ` || ',') LIKE ?` } - whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition - args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%", "%,"+group+",%") + whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ? OR " + baseURLCol + " LIKE ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition + args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+keyword+"%", "%"+model+"%", "%,"+group+",%") } else { - whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + " LIKE ?" - args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%") + whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ? OR " + baseURLCol + " LIKE ?) AND " + modelsCol + " LIKE ?" + args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+keyword+"%", "%"+model+"%") } // 执行查询 @@ -450,6 +455,12 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str modelsCol = `"models"` } + baseURLCol := "`base_url`" + // 如果是 PostgreSQL,使用双引号 + if common.UsingPostgreSQL { + baseURLCol = `"base_url"` + } + order := "priority desc" if idSort { order = "id desc" @@ -469,11 +480,11 @@ func SearchTags(keyword string, group string, model string, idSort bool) ([]*str // sqlite, PostgreSQL groupCondition = `(',' || ` + groupCol + ` || ',') LIKE ?` } - whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition - args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%", "%,"+group+",%") + whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ? OR " + baseURLCol + " LIKE ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition + args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+keyword+"%", "%"+model+"%", "%,"+group+",%") } else { - whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + " LIKE ?" - args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%") + whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ? OR " + baseURLCol + " LIKE ?) AND " + modelsCol + " LIKE ?" + args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+keyword+"%", "%"+model+"%") } subQuery := baseQuery.Where(whereClause, args...). diff --git a/web/src/components/ChannelsTable.js b/web/src/components/ChannelsTable.js index 15b4059a..3425beea 100644 --- a/web/src/components/ChannelsTable.js +++ b/web/src/components/ChannelsTable.js @@ -1276,7 +1276,7 @@ const ChannelsTable = () => {