Commit b01c1522 by FENG

fix: 渠道多分组,优化分组 like 查询

parent cba830e5
...@@ -90,13 +90,11 @@ func GetAllChannels(startIdx int, num int, selectAll bool, idSort bool) ([]*Chan ...@@ -90,13 +90,11 @@ func GetAllChannels(startIdx int, num int, selectAll bool, idSort bool) ([]*Chan
func SearchChannels(keyword string, group string, model string) ([]*Channel, error) { func SearchChannels(keyword string, group string, model string) ([]*Channel, error) {
var channels []*Channel var channels []*Channel
keyCol := "`key`" keyCol := "`key`"
groupCol := "`group`"
modelsCol := "`models`" modelsCol := "`models`"
// 如果是 PostgreSQL,使用双引号 // 如果是 PostgreSQL,使用双引号
if common.UsingPostgreSQL { if common.UsingPostgreSQL {
keyCol = `"key"` keyCol = `"key"`
groupCol = `"group"`
modelsCol = `"models"` modelsCol = `"models"`
} }
...@@ -106,9 +104,9 @@ func SearchChannels(keyword string, group string, model string) ([]*Channel, err ...@@ -106,9 +104,9 @@ func SearchChannels(keyword string, group string, model string) ([]*Channel, err
// 构造WHERE子句 // 构造WHERE子句
var whereClause string var whereClause string
var args []interface{} var args []interface{}
if group != "" { if group != "" && group != "null" {
whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + groupCol + " = ? AND " + modelsCol + " LIKE ?" whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + ` LIKE ? AND (',' || "group" || ',') LIKE ?`
args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, group, "%"+model+"%") args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%", "%,"+group+",%")
} else { } else {
whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + " LIKE ?" whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + " LIKE ?"
args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%") args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment