Parcourir la source

优化 EDB 数据源获取逻辑并简化代码

- 新增根据数据源 ID 获取 EdbSource 对象的函数 GetEdbSourceBySourceId
- 优化 GetEdbDataTableName 和 base_edb_lib.go 中的代码,使用新的获取方法
- 删除了大量不再使用的 case 语句,简化了代码结构
Roc il y a 4 mois
Parent
commit
4be7ff84a3
3 fichiers modifiés avec 102 ajouts et 132 suppressions
  1. 33 0
      models/data_manage/edb_source.go
  2. 1 64
      models/edb_data_base.go
  3. 68 68
      services/data/base_edb_lib.go

+ 33 - 0
models/data_manage/edb_source.go

@@ -110,6 +110,39 @@ func InitEdbSourceVar() {
 	}
 }
 
+// GetEdbSourceItemsSourceId
+// @Description: 根据来源id获取指标来源
+// @param sourceId
+// @return item
+// @return err
+func GetEdbSourceItemsSourceId(sourceId int) (item *EdbSource, err error) {
+	sql := `SELECT * FROM edb_source WHERE 1=1 AND edb_source_id = ? `
+	err = global.DmSQL["data"].Raw(sql, sourceId).First(&item).Error
+
+	return
+}
+
+// GetEdbSourceBySourceId
+// @Description: 根据来源id获取指标来源
+// @param sourceId
+// @return sourceItem
+func GetEdbSourceBySourceId(sourceId int) (sourceItem *EdbSource) {
+	sourceItem, ok := EdbSourceIdMap[sourceId]
+	if !ok {
+		item, err := GetEdbSourceItemsSourceId(sourceId)
+		if err != nil {
+			return
+		}
+		if item.EdbSourceId > 0 {
+			sourceItem = item
+			// 写入到内存中
+			EdbSourceIdMap[sourceId] = sourceItem
+		}
+	}
+
+	return
+}
+
 // GetEdbSourceItemByCondition 获取指标来源
 // func GetEdbSourceItemByCondition(condition string, pars []interface{}) (item *EdbSource, err error) {
 // 	o := orm.NewOrmUsingDB("data")

+ 1 - 64
models/edb_data_base.go

@@ -7,23 +7,6 @@ import (
 
 func GetEdbDataTableName(source, subSource int) (tableName string) {
 	switch source {
-	case utils.DATA_SOURCE_THS:
-		switch subSource {
-		case utils.DATA_SUB_SOURCE_DATE:
-			tableName = "edb_data_ths_ds"
-		case utils.DATA_SUB_SOURCE_HIGH_FREQUENCY:
-			tableName = "edb_data_ths_hf"
-		default:
-			tableName = "edb_data_ths"
-		}
-	case utils.DATA_SOURCE_WIND:
-		if subSource == utils.DATA_SUB_SOURCE_EDB {
-			tableName = "edb_data_wind"
-		} else {
-			tableName = "edb_data_wind_wsd"
-		}
-	case utils.DATA_SOURCE_PB, utils.DATA_SOURCE_PB_FINANCE:
-		tableName = "edb_data_pb"
 	case utils.DATA_SOURCE_CALCULATE:
 		tableName = "edb_data_calculate"
 	case utils.DATA_SOURCE_CALCULATE_LJZZY:
@@ -36,66 +19,34 @@ func GetEdbDataTableName(source, subSource int) (tableName string) {
 		tableName = "edb_data_calculate_nszydpjjs"
 	case utils.DATA_SOURCE_MANUAL:
 		tableName = "edb_data_manual"
-	case utils.DATA_SOURCE_LZ:
-		tableName = "edb_data_lz"
-	case utils.DATA_SOURCE_YS:
-		tableName = "edb_data_ys"
 	case utils.DATA_SOURCE_CALCULATE_HBZ:
 		tableName = "edb_data_calculate_hbz"
 	case utils.DATA_SOURCE_CALCULATE_HCZ:
 		tableName = "edb_data_calculate_hcz"
 	case utils.DATA_SOURCE_CALCULATE_BP:
 		tableName = "edb_data_calculate_bp"
-	case utils.DATA_SOURCE_GL:
-		tableName = "edb_data_gl"
-	case utils.DATA_SOURCE_ZZ:
-		tableName = "edb_data_zz"
-	case utils.DATA_SOURCE_DL:
-		tableName = "edb_data_dl"
-	case utils.DATA_SOURCE_SH:
-		tableName = "edb_data_sh"
-	case utils.DATA_SOURCE_CFFEX:
-		tableName = "edb_data_cffex"
-	case utils.DATA_SOURCE_SHFE:
-		tableName = "edb_data_ine"
-	case utils.DATA_SOURCE_GIE:
-		tableName = "edb_data_gie"
 	case utils.DATA_SOURCE_CALCULATE_ZJPJ:
 		tableName = "edb_data_calculate_zjpj"
 	case utils.DATA_SOURCE_CALCULATE_TIME_SHIFT:
 		tableName = "edb_data_calculate_time_shift"
 	case utils.DATA_SOURCE_CALCULATE_LJZTBPJ:
 		tableName = "edb_data_calculate_ljztbpj"
-	case utils.DATA_SOURCE_LT:
-		tableName = "edb_data_lt"
-	case utils.DATA_SOURCE_COAL:
-		tableName = "edb_data_coal"
 	case utils.DATA_SOURCE_PYTHON:
 		tableName = "edb_data_python"
-	case utils.DATA_SOURCE_GOOGLE_TRAVEL:
-		tableName = "edb_data_google_travel"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE:
 		tableName = "edb_data_predict_calculate"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_TBZ:
 		tableName = "edb_data_predict_calculate_tbz"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_TCZ:
 		tableName = "edb_data_predict_calculate_tcz"
-	case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
-		tableName = "edb_data_mysteel_chemical"
 	case utils.DATA_SOURCE_CALCULATE_CJJX:
 		tableName = "edb_data_calculate_cjjx"
-	case utils.DATA_SOURCE_EIA_STEO:
-		tableName = "edb_data_eia_steo"
 	case utils.DATA_SOURCE_CALCULATE_NHCC:
 		tableName = "edb_data_calculate_nhcc"
-	case utils.DATA_SOURCE_COM_TRADE:
-		tableName = "edb_data_com_trade"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_NSZYDPJJS:
 		tableName = "edb_data_predict_calculate_nszydpjjs"
 	case utils.DATA_SOURCE_CALCULATE_ADJUST:
 		tableName = "edb_data_calculate_adjust"
-	case utils.DATA_SOURCE_SCI:
-		tableName = "edb_data_sci"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_LJZZY:
 		tableName = "edb_data_predict_calculate_ljzzy"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_TIME_SHIFT:
@@ -126,14 +77,8 @@ func GetEdbDataTableName(source, subSource int) (tableName string) {
 		tableName = "edb_data_predict_calculate_nh"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_KSZS:
 		tableName = "edb_data_predict_calculate_kszs"
-	case utils.DATA_SOURCE_BAIINFO:
-		tableName = "edb_data_baiinfo"
-	case utils.DATA_SOURCE_STOCK_PLANT:
-		tableName = "edb_data_stock_plant"
 	case utils.DATA_SOURCE_CALCULATE_CORRELATION:
 		tableName = "edb_data_calculate_correlation"
-	case utils.DATA_SOURCE_NATIONAL_STATISTICS:
-		tableName = "edb_data_national_statistics"
 	case utils.DATA_SOURCE_CALCULATE_LJZZJ: //累计值转季 -> 61
 		tableName = "edb_data_calculate_ljzzj"
 	case utils.DATA_SOURCE_CALCULATE_LJZ: //累计值 -> 62
@@ -154,8 +99,6 @@ func GetEdbDataTableName(source, subSource int) (tableName string) {
 		tableName = "edb_data_predict_ccalculate_standard_deviation"
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_PERCENTILE: //预测百分位->70
 		tableName = "edb_data_predict_ccalculate_percentile"
-	case utils.DATA_SOURCE_FUBAO: //富宝 -> 71
-		tableName = "edb_data_fubao"
 	case utils.DATA_SOURCE_CALCULATE_ZSXY:
 		tableName = "edb_data_calculate_zsxy" // 指数修匀->72
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_ZSXY:
@@ -164,14 +107,8 @@ func GetEdbDataTableName(source, subSource int) (tableName string) {
 		tableName = "edb_data_calculate_zdyfx" // 自定义分析->74
 	case utils.DATA_SOURCE_CALCULATE_RJZ: //日均值->75
 		tableName = "edb_data_calculate_rjz"
-	case utils.DATA_SOURCE_GFEX: //广州期货交易所->76
-		tableName = "edb_data_gz"
-	case utils.DATA_SOURCE_ICPI: //日均值->75
-		tableName = "edb_data_icpi"
-	case utils.DATA_SOURCE_SCI99: //卓创资讯->85
-		tableName = "edb_data_sci99"
 	default:
-		edbSource := data_manage.EdbSourceIdMap[source]
+		edbSource := data_manage.GetEdbSourceBySourceId(source)
 		if edbSource != nil {
 			tableName = edbSource.TableName
 		}

+ 68 - 68
services/data/base_edb_lib.go

@@ -74,75 +74,75 @@ func RefreshEdbData(edbInfoId, source, subSource int, edbCode, startDate string)
 	param["StartDate"] = startDate
 	urlStr := ``
 	switch source {
-	case utils.DATA_SOURCE_THS:
-		switch subSource {
-		case utils.DATA_SUB_SOURCE_DATE:
-			urlStr = "ths/ds/refresh"
-		case utils.DATA_SUB_SOURCE_HIGH_FREQUENCY:
-			urlStr = "ths/hf/edb/refresh"
-		default:
-			urlStr = "ths/refresh"
-		}
-	case utils.DATA_SOURCE_WIND:
-		if subSource == 0 {
-			urlStr = "wind/refresh"
-		} else {
-			urlStr = "wind/wsd/refresh"
-		}
-	case utils.DATA_SOURCE_PB:
-		urlStr = "/pb/refresh"
-	case utils.DATA_SOURCE_PB_FINANCE:
-		urlStr = "/pb_finance/refresh"
-	case utils.DATA_SOURCE_MANUAL:
-		urlStr = "/manual/refresh"
-	case utils.DATA_SOURCE_LZ:
-		urlStr = "/lz/refresh"
-	case utils.DATA_SOURCE_YS:
-		urlStr = "/smm/refresh"
-	case utils.DATA_SOURCE_GL:
-		urlStr = "/mysteel/refresh"
-	case utils.DATA_SOURCE_ZZ:
-		urlStr = "/zz/refresh"
-	case utils.DATA_SOURCE_DL:
-		urlStr = "/dl/refresh"
-	case utils.DATA_SOURCE_SH:
-		urlStr = "/sh/refresh"
-	case utils.DATA_SOURCE_CFFEX:
-		urlStr = "/cffex/refresh"
-	case utils.DATA_SOURCE_SHFE:
-		urlStr = "/shfe/refresh"
-	case utils.DATA_SOURCE_GIE:
-		urlStr = "/gie/refresh"
-	case utils.DATA_SOURCE_LT:
-		urlStr = "/lt/refresh"
-	case utils.DATA_SOURCE_COAL:
-		urlStr = "/coal/refresh"
-	case utils.DATA_SOURCE_GOOGLE_TRAVEL:
-		urlStr = "google_travel/refresh"
-	case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
-		urlStr = "mysteel_chemical/refresh"
-	case utils.DATA_SOURCE_EIA_STEO:
-		urlStr = "eia_steo/refresh"
-	case utils.DATA_SOURCE_PREDICT:
-		urlStr = "predict/refresh"
-	case utils.DATA_SOURCE_COM_TRADE:
-		urlStr = "com_trade/refresh"
-	case utils.DATA_SOURCE_SCI:
-		urlStr = "/sci/refresh"
-	case utils.DATA_SOURCE_BAIINFO:
-		urlStr = "/baiinfo/refresh"
-	case utils.DATA_SOURCE_NATIONAL_STATISTICS:
-		urlStr = "/national_statistics/refresh"
-	case utils.DATA_SOURCE_FUBAO:
-		urlStr = "fubao/refresh"
-	case utils.DATA_SOURCE_GFEX:
-		urlStr = "gz/refresh"
-	case utils.DATA_SOURCE_ICPI:
-		urlStr = "icpi/refresh"
-	case utils.DATA_SOURCE_SCI99:
-		urlStr = "sci99/refresh"
+	//case utils.DATA_SOURCE_THS:
+	//	switch subSource {
+	//	case utils.DATA_SUB_SOURCE_DATE:
+	//		urlStr = "ths/ds/refresh"
+	//	case utils.DATA_SUB_SOURCE_HIGH_FREQUENCY:
+	//		urlStr = "ths/hf/edb/refresh"
+	//	default:
+	//		urlStr = "ths/refresh"
+	//	}
+	//case utils.DATA_SOURCE_WIND:
+	//	if subSource == 0 {
+	//		urlStr = "wind/refresh"
+	//	} else {
+	//		urlStr = "wind/wsd/refresh"
+	//	}
+	//case utils.DATA_SOURCE_PB:
+	//	urlStr = "/pb/refresh"
+	//case utils.DATA_SOURCE_PB_FINANCE:
+	//	urlStr = "/pb_finance/refresh"
+	//case utils.DATA_SOURCE_MANUAL:
+	//	urlStr = "/manual/refresh"
+	//case utils.DATA_SOURCE_LZ:
+	//	urlStr = "/lz/refresh"
+	//case utils.DATA_SOURCE_YS:
+	//	urlStr = "/smm/refresh"
+	//case utils.DATA_SOURCE_GL:
+	//	urlStr = "/mysteel/refresh"
+	//case utils.DATA_SOURCE_ZZ:
+	//	urlStr = "/zz/refresh"
+	//case utils.DATA_SOURCE_DL:
+	//	urlStr = "/dl/refresh"
+	//case utils.DATA_SOURCE_SH:
+	//	urlStr = "/sh/refresh"
+	//case utils.DATA_SOURCE_CFFEX:
+	//	urlStr = "/cffex/refresh"
+	//case utils.DATA_SOURCE_SHFE:
+	//	urlStr = "/shfe/refresh"
+	//case utils.DATA_SOURCE_GIE:
+	//	urlStr = "/gie/refresh"
+	//case utils.DATA_SOURCE_LT:
+	//	urlStr = "/lt/refresh"
+	//case utils.DATA_SOURCE_COAL:
+	//	urlStr = "/coal/refresh"
+	//case utils.DATA_SOURCE_GOOGLE_TRAVEL:
+	//	urlStr = "google_travel/refresh"
+	//case utils.DATA_SOURCE_MYSTEEL_CHEMICAL:
+	//	urlStr = "mysteel_chemical/refresh"
+	//case utils.DATA_SOURCE_EIA_STEO:
+	//	urlStr = "eia_steo/refresh"
+	//case utils.DATA_SOURCE_PREDICT:
+	//	urlStr = "predict/refresh"
+	//case utils.DATA_SOURCE_COM_TRADE:
+	//	urlStr = "com_trade/refresh"
+	//case utils.DATA_SOURCE_SCI:
+	//	urlStr = "/sci/refresh"
+	//case utils.DATA_SOURCE_BAIINFO:
+	//	urlStr = "/baiinfo/refresh"
+	//case utils.DATA_SOURCE_NATIONAL_STATISTICS:
+	//	urlStr = "/national_statistics/refresh"
+	//case utils.DATA_SOURCE_FUBAO:
+	//	urlStr = "fubao/refresh"
+	//case utils.DATA_SOURCE_GFEX:
+	//	urlStr = "gz/refresh"
+	//case utils.DATA_SOURCE_ICPI:
+	//	urlStr = "icpi/refresh"
+	//case utils.DATA_SOURCE_SCI99:
+	//	urlStr = "sci99/refresh"
 	default:
-		edbSource := data_manage.EdbSourceIdMap[source]
+		edbSource := data_manage.GetEdbSourceBySourceId(source)
 		if edbSource != nil {
 			urlStr = edbSource.EdbRefreshMethod
 		}