瀏覽代碼

Merge branch 'feature/jiayue' into debug

hsun 1 年之前
父節點
當前提交
e16b2cf50a
共有 1 個文件被更改,包括 38 次插入29 次删除
  1. 38 29
      services/index_data/jiayue_platform.go

+ 38 - 29
services/index_data/jiayue_platform.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_bridge/models/jiayue"
 	"eta/eta_bridge/models/response"
 	"eta/eta_bridge/services/alarm_msg"
+	"eta/eta_bridge/utils"
 	"fmt"
 	"strconv"
 	"strings"
@@ -22,18 +23,19 @@ func GetIndexFromJiaYue(indexCode string, sourceArr []string) (data *response.In
 
 	indexCond := ``
 	indexPars := make([]interface{}, 0)
-	// 指标存在无编码情况, 尝试转换indexCode为int查自增ID
-	indexId, e := strconv.Atoi(indexCode)
-	if e == nil && indexId > 0 {
-		indexCond = ` (ID = :1 OR SOURCE_CODE = :1)`
-		indexPars = append(indexPars, indexId, indexCode)
-	} else {
-		indexCond = ` SOURCE_CODE = :1`
-		indexPars = append(indexPars, indexCode)
+	// 以ID为指标编码
+	indexId, _ := strconv.Atoi(indexCode)
+	if indexId <= 0 {
+		global.LOG.Info(indexCode + "指标信息不存在")
+		return
 	}
+	indexCond = ` ID = :1`
+	indexPars = append(indexPars, indexId)
 	if len(sourceArr) > 0 {
-		indexCond += ` AND SOURCE_TYPE IN (:1)`
-		indexPars = append(indexPars, sourceArr)
+		indexCond += fmt.Sprintf(` AND SOURCE_TYPE IN (%s)`, utils.GetOracleInReplace(len(sourceArr)))
+		for _, s := range sourceArr {
+			indexPars = append(indexPars, s)
+		}
 	}
 
 	indexes, e := jiayue.GetDictIndex(indexCond, indexPars, "")
@@ -71,18 +73,19 @@ func GetIndexAndDataFromJiaYue(indexCode, startDate, endDate string, sourceArr [
 
 	indexCond := ``
 	indexPars := make([]interface{}, 0)
-	// 指标存在无编码情况, 尝试转换indexCode为int查自增ID
-	indexId, e := strconv.Atoi(indexCode)
-	if e == nil && indexId > 0 {
-		indexCond = ` (ID = :1 OR SOURCE_CODE = :1)`
-		indexPars = append(indexPars, indexId, indexCode)
-	} else {
-		indexCond = ` SOURCE_CODE = :1`
-		indexPars = append(indexPars, indexCode)
+	// 以ID为指标编码
+	indexId, _ := strconv.Atoi(indexCode)
+	if indexId <= 0 {
+		global.LOG.Info(indexCode + "指标信息不存在")
+		return
 	}
+	indexCond = ` ID = :1`
+	indexPars = append(indexPars, indexId)
 	if len(sourceArr) > 0 {
-		indexCond += ` AND SOURCE_TYPE IN (:1)`
-		indexPars = append(indexPars, sourceArr)
+		indexCond += fmt.Sprintf(` AND SOURCE_TYPE IN (%s)`, utils.GetOracleInReplace(len(sourceArr)))
+		for _, s := range sourceArr {
+			indexPars = append(indexPars, s)
+		}
 	}
 
 	indexes, e := jiayue.GetDictIndex(indexCond, indexPars, "")
@@ -105,15 +108,15 @@ func GetIndexAndDataFromJiaYue(indexCode, startDate, endDate string, sourceArr [
 	}
 
 	// 指标数据
-	dataCond := " INDEX_ID = :1"
+	dataCond := ` INDEX_ID = :1`
 	dataPars := make([]interface{}, 0)
 	dataPars = append(dataPars, index.Id)
 	if startDate != "" {
-		dataCond += " AND INDEX_DATE >= TO_DATE (:1, 'yyyy-mm-dd')"
+		dataCond += ` AND INDEX_DATE >= TO_DATE (:1, 'yyyy-mm-dd')`
 		dataPars = append(dataPars, startDate)
 	}
 	if endDate != "" {
-		dataCond += " AND INDEX_DATE <= TO_DATE (:1, 'yyyy-mm-dd')"
+		dataCond += ` AND INDEX_DATE <= TO_DATE (:1, 'yyyy-mm-dd')`
 		dataPars = append(dataPars, endDate)
 	}
 	indexData, e := jiayue.GetDictData(index.TableName, dataCond, dataPars)
@@ -145,12 +148,14 @@ func GetPageIndexesFromJiaYue(pageIndex, pageSize int, sourceArr []string, keywo
 		}
 	}()
 
-	indexCond := ``
+	indexCond := ` 1=1`
 	indexPars := make([]interface{}, 0)
 	// 筛选项
 	if len(sourceArr) > 0 {
-		indexCond += ` SOURCE_TYPE IN (:1)`
-		indexPars = append(indexPars, sourceArr)
+		indexCond += fmt.Sprintf(` AND SOURCE_TYPE IN (%s)`, utils.GetOracleInReplace(len(sourceArr)))
+		for _, s := range sourceArr {
+			indexPars = append(indexPars, s)
+		}
 	}
 	keyword = strings.TrimSpace(keyword)
 	if keyword != "" {
@@ -326,12 +331,16 @@ func GetJiaYueImportData(sourceArr []string) (items []JiaYueImportIndexResp, err
 	}()
 
 	// 获取指标
-	indexCond := ` SOURCE_TYPE IN (:1)`
-	indexPars := make([]interface{}, 0)
 	if len(sourceArr) == 0 {
 		sourceArr = []string{"webisite", "website", "website_gf", "platts", "reuter", "reuter_vessel_q", "路透", "bloomberg", "bloomberg_tmp", "wind", "wind_p", "wind_stop", "wind_tmp"}
 	}
-	indexPars = append(indexPars, sourceArr)
+	indexCond := fmt.Sprintf(` AND SOURCE_TYPE IN (%s)`, utils.GetOracleInReplace(len(sourceArr)))
+	indexPars := make([]interface{}, 0)
+	if len(sourceArr) > 0 {
+		for _, s := range sourceArr {
+			indexPars = append(indexPars, s)
+		}
+	}
 	indexes, e := jiayue.GetDictIndex(indexCond, indexPars, "SOURCE_TYPE ASC, ID ASC")
 	if e != nil {
 		err = fmt.Errorf("GetDictIndex err: %s", e.Error())