Browse Source

fix 搜索

zwxi 1 year ago
parent
commit
cb6fa6929d
1 changed files with 12 additions and 6 deletions
  1. 12 6
      controllers/data_manage/smm_api.go

+ 12 - 6
controllers/data_manage/smm_api.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/utils"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"strconv"
 	"strings"
 )
 
@@ -104,14 +105,20 @@ func (this *EdbInfoController) SmmApiList() {
 		}
 	}
 
+	sortStr := ``
+
 	if keyword != "" {
 		keyWordArr := strings.Split(keyword, " ")
 		if len(keyWordArr) > 0 {
 			condition += " AND ( "
-			condition += ` CONCAT(index_name,index_code) LIKE '%` + strings.Replace(keyword, " ", "", -1) + `%' OR `
-			for _, v := range keyWordArr {
-				condition += ` '%` + v + `%' OR`
+			keywordStr := strings.Replace(keyword, " ", "", -1)
+			condition += ` CONCAT(index_name,index_code) LIKE '%` + keywordStr + `%' OR `
+			sortStr += ` CASE WHEN CONCAT(index_name,index_code) LIKE '%` + keywordStr + `%' THEN 1 `
+			for i, v := range keyWordArr {
+				condition += ` CONCAT(index_name,index_code) LIKE '%` + v + `%' OR`
+				sortStr += ` WHEN CONCAT(index_name,index_code) LIKE '%` + v + `%' THEN  ` + strconv.Itoa(i+2) + ` `
 			}
+			sortStr += ` END, `
 			condition = strings.TrimRight(condition, "OR")
 			condition += " ) "
 		}
@@ -127,11 +134,10 @@ func (this *EdbInfoController) SmmApiList() {
 		condition += " AND index_code IN (" + indexCodeStr + ") "
 	}
 
-	sortStr := ``
 	if sortParam != `` {
-		sortStr = fmt.Sprintf("%s %s,modify_time desc ", utils.PascalToSnake(sortParam), sortType)
+		sortStr += fmt.Sprintf("%s %s,modify_time desc ", utils.PascalToSnake(sortParam), sortType)
 	} else {
-		sortStr = " modify_time desc "
+		sortStr += " modify_time desc "
 	}
 
 	total, err := data_manage.GetSmmIndexDataListCount(condition, pars)