zwxi 9 months ago
parent
commit
6bc7ad74a5

+ 47 - 0
controllers/data_manage/edb_info.go

@@ -1754,6 +1754,53 @@ func (this *EdbInfoController) EdbInfoSearch() {
 			searchItem.Frequency = indexInfo.Frequency
 			searchItem.Unit = indexInfo.Unit
 			searchItem.EdbName = indexInfo.IndexName
+		} else if source == utils.DATA_SOURCE_SCI99 { //卓创资讯
+			dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, subSource, utils.EDB_DATA_LIMIT)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取上期所已存在信息失败,Err:" + err.Error()
+				return
+			}
+
+			if len(dataItems) > 0 {
+				searchItem.EdbCode = edbCode
+				minDate, maxDate, err := data_manage.GetEdbDataSci99MaxOrMinDate(edbCode)
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取上期所日期信息失败,Err:" + err.Error()
+					return
+				}
+				searchItem.DataList = dataItems
+				searchItem.StartDate = minDate
+				searchItem.EndDate = maxDate
+			} else {
+				respItem, err := data.AddEdbData(source, edbCode, frequency)
+				if err != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取失败,Err:" + err.Error()
+					return
+				}
+				if respItem.Ret != 200 {
+					br.Msg = "未搜索到该指标"
+					br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + edbCode
+					return
+				}
+				isAdd = true
+			}
+
+			//获取指标信息
+			indexInfo, err := data_manage.GetBaseInfoFromSci99ByIndexCode(edbCode)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取上期所指标详情失败,Err:" + err.Error()
+				return
+			}
+
+			if indexInfo != nil {
+				searchItem.Frequency = "日度"
+				searchItem.Unit = "元/吨"
+				searchItem.EdbName = indexInfo.IndexName
+			}
 		} else {
 			// 代码中没有的来源那么从edb_source中找是否有对应的
 			sourceItem := data_manage.EdbSourceIdMap[source]

+ 2 - 0
models/data_manage/edb_data_base.go

@@ -172,6 +172,8 @@ func GetEdbDataTableName(source, subSource int) (tableName string) {
 		tableName = "edb_data_gz"
 	case utils.DATA_SOURCE_ICPI: //ICPI消费价格指数->79
 		tableName = "edb_data_icpi"
+	case utils.DATA_SOURCE_SCI99: //ICPI消费价格指数->85
+		tableName = "edb_data_sci99"
 	default:
 		edbSource := EdbSourceIdMap[source]
 		if edbSource != nil {

+ 37 - 0
models/data_manage/edb_data_sci99.go

@@ -0,0 +1,37 @@
+package data_manage
+
+import (
+	"eta/eta_api/models/data_source"
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type Sci99Data struct {
+	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
+	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
+}
+
+func GetEdbDataSci99MaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_icpi WHERE edb_code=? `
+	err = o.Raw(sql, edbCode).QueryRow(&minDate, &maxDate)
+	return
+}
+
+//type BaseFromSci99DataItem struct {
+//	BaseFromSciDataId  int       `orm:"column(base_from_sci_data_id);pk"` // 主键,自动递增
+//	BaseFromSciIndexId int       // 指标id
+//	IndexCode          string    // 指标编码
+//	DataTime           string    // 数据日期
+//	Value              float64   // 数据值
+//	CreateTime         string // 创建时间
+//	ModifyTime         string // 修改时间
+//}
+// GetBaseInfoFromSci99ByIndexCode 获取指标信息
+func GetBaseInfoFromSci99ByIndexCode(indexCode string) (item *data_source.BaseFromSci99Index, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT * FROM base_from_sci99_index WHERE index_code=? `
+	sql = fmt.Sprintf(sql)
+	err = o.Raw(sql, indexCode).QueryRow(&item)
+	return
+}

+ 2 - 2
models/data_source/base_from_sci99.go

@@ -57,8 +57,8 @@ type BaseFromSci99IndexList struct {
 	Unit               string    // 单位
 	Frequency          string    // 频度
 	Describe           string    // 指标描述
-	CreateTime         time.Time // 创建时间
-	ModifyTime         time.Time // 修改时间
+	CreateTime         string // 创建时间
+	ModifyTime         string // 修改时间
 	DataList           []*BaseFromSci99DataItem
 	Paging             *paging.PagingItem `description:"分页数据"`
 }

+ 4 - 0
services/data/base_edb_lib.go

@@ -72,6 +72,8 @@ func AddEdbData(source int, edbCode, frequency string) (resp *models.BaseRespons
 		urlStr = "gz/add"
 	case utils.DATA_SOURCE_ICPI:
 		urlStr = "icpi/add"
+	case utils.DATA_SOURCE_SCI99:
+		urlStr = "sci99/add"
 	default:
 		edbSource := data_manage.EdbSourceIdMap[source]
 		if edbSource != nil {
@@ -267,6 +269,8 @@ func RefreshEdbData(edbInfoId, source, subSource int, edbCode, startDate string)
 		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]
 		if edbSource != nil {

+ 1 - 0
utils/constants.go

@@ -172,6 +172,7 @@ const (
 	DATA_SOURCE_ICPI                                 = 79       // ICPI消费价格指数->79
 	DATA_SOURCE_BLOOMBERG                            = 83       // bloomberg彭博数据
 	DATA_SOURCE_BUSINESS                             = 84       // 来源于自有数据
+	DATA_SOURCE_SCI99                                = 85       // 卓创资讯 -> 85
 )
 
 // 数据刷新频率