Bläddra i källkod

自定义分析新增指标搜索

hsun 1 år sedan
förälder
incheckning
47d65aeb03

+ 8 - 1
controllers/data_manage/excel/custom_analysis_edb.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
+	"fmt"
 	"strconv"
 	"strings"
 	"time"
@@ -18,6 +19,7 @@ import (
 // @Title 指标列表
 // @Description 指标列表
 // @Param   ExcelInfoId   query   int  true       "excel的id"
+// @Param   Keyword   query   string  false	"指标关键词"
 // @Success 200 {object} []excel.ExcelEdbMappingItem
 // @router /edb/list [get]
 func (c *CustomAnalysisController) EdbList() {
@@ -33,6 +35,11 @@ func (c *CustomAnalysisController) EdbList() {
 		br.IsSendEmail = false
 		return
 	}
+	keyword := c.GetString("Keyword")
+	keyword = strings.TrimSpace(keyword)
+	if keyword != "" {
+		keyword = fmt.Sprint("%", keyword, "%")
+	}
 
 	// 获取excel表详情
 	excelInfo, err := excelModel.GetExcelInfoById(excelInfoId)
@@ -48,7 +55,7 @@ func (c *CustomAnalysisController) EdbList() {
 		return
 	}
 
-	list, err := excelModel.GetAllExcelEdbMappingItemByExcelInfoId(excelInfo.ExcelInfoId)
+	list, err := excelModel.GetExcelEdbMappingItemByExcelInfoIdOrKeyword(excelInfo.ExcelInfoId, keyword)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()

+ 30 - 0
models/data_manage/excel/excel_edb_mapping.go

@@ -2,6 +2,7 @@ package excel
 
 import (
 	"eta/eta_api/utils"
+	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
@@ -110,3 +111,32 @@ func DeleteCustomAnalysisExcelEdbMappingByEdbInfoId(excelInfoId int) (err error)
 
 	return
 }
+
+// GetExcelEdbMappingItemByExcelInfoIdOrKeyword 根据表格ID或关键词获取指标
+func GetExcelEdbMappingItemByExcelInfoIdOrKeyword(excelInfoId int, keyword string) (items []*ExcelEdbMappingItem, err error) {
+	o := orm.NewOrmUsingDB("data")
+	cond := `b.excel_info_id = ?`
+	pars := make([]interface{}, 0)
+	pars = append(pars, excelInfoId)
+	if keyword != "" {
+		cond += ` AND (a.edb_code LIKE ? OR a.edb_name LIKE ?)`
+		pars = append(pars, keyword, keyword)
+	}
+	sql := fmt.Sprintf(`SELECT
+			a.edb_info_id,
+			a.unique_code,
+			a.edb_name,
+			a.classify_id,
+			a.frequency,
+			a.unit,
+			calculate_formula
+		FROM
+			edb_info AS a
+		JOIN excel_edb_mapping AS b ON a.edb_info_id = b.edb_info_id
+		WHERE
+			%s
+		ORDER BY
+			b.excel_edb_mapping_id ASC`, cond)
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}