Explorar el Código

Merge pull request #425 from dalefengs/fix_group

fix: 渠道多分组查询 sqlite 查询兼容
Calcium-Ion hace 1 año
padre
commit
e495354823
Se han modificado 1 ficheros con 5 adiciones y 4 borrados
  1. 5 4
      model/channel.go

+ 5 - 4
model/channel.go

@@ -108,10 +108,11 @@ func SearchChannels(keyword string, group string, model string) ([]*Channel, err
 	var args []interface{}
 	var args []interface{}
 	if group != "" && group != "null" {
 	if group != "" && group != "null" {
 		var groupCondition string
 		var groupCondition string
-		if common.UsingPostgreSQL {
-			groupCondition = `(',' || ` + groupCol + ` || ',') LIKE ?`
-		} else {
+		if common.UsingMySQL {
 			groupCondition = `CONCAT(',', ` + groupCol + `, ',') LIKE ?`
 			groupCondition = `CONCAT(',', ` + groupCol + `, ',') LIKE ?`
+		} else {
+			// sqlite, PostgreSQL
+			groupCondition = `(',' || ` + groupCol + ` || ',') LIKE ?`
 		}
 		}
 		whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition
 		whereClause = "(id = ? OR name LIKE ? OR " + keyCol + " = ?) AND " + modelsCol + ` LIKE ? AND ` + groupCondition
 		args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%", "%,"+group+",%")
 		args = append(args, common.String2Int(keyword), "%"+keyword+"%", keyword, "%"+model+"%", "%,"+group+",%")
@@ -121,7 +122,7 @@ func SearchChannels(keyword string, group string, model string) ([]*Channel, err
 	}
 	}
 
 
 	// 执行查询
 	// 执行查询
-	err := baseQuery.Where(whereClause, args...).Find(&channels).Error
+	err := baseQuery.Where(whereClause, args...).Order("priority desc").Find(&channels).Error
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}