123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package services
- import (
- "encoding/json"
- "eta_gn/eta_index_lib/utils"
- "fmt"
- "github.com/rdlucklib/rdluck_tools/http"
- )
- type EdbDataFromLt struct {
- Close map[int64]interface{} `json:"CLOSE"`
- Value map[int64]interface{} `json:"VALUE"`
- }
- // GetEdbDataFromLt 获取路透数据
- func GetEdbDataFromLt(edbCode, startDate, endDate, frequency, edbTerminalCode string) (dataList map[int64]interface{}, err error) {
- /*if utils.Hz_LT_Data_Url == `` {
- err = errors.New("路透社接口未配置")
- return
- }*/
- terminal, err := GetTerminal(utils.DATA_SOURCE_LT, edbTerminalCode)
- if err != nil {
- err = fmt.Errorf("获取路透社接口配置出错 Err: %s", err)
- return
- }
- if terminal.ServerUrl == "" {
- err = fmt.Errorf("路透社接口未配置")
- return
- }
- if edbTerminalCode == "" {
- // 设置指标与终端关系的缓存
- terminalCodeCacheKey := utils.CACHE_EDB_TERMINAL_CODE_URL + edbCode
- _ = utils.Rc.Put(terminalCodeCacheKey, terminal.TerminalCode, utils.GetTodayLastSecond())
- }
- //'tick','minute',"hour','daily','weekly', 'monthly','quarterly', 'yearly'(Default 'daily')
- ltFrequency := `daily`
- switch frequency {
- case "周度":
- ltFrequency = `weekly`
- case "月度":
- ltFrequency = `monthly`
- case "季度":
- ltFrequency = `quarterly`
- case "年度":
- ltFrequency = `yearly`
- }
- dataList = make(map[int64]interface{})
- ltUrl := terminal.ServerUrl + `edbInfo/ek?EdbCode=%s&StartDate=%s&EndDate=%s&Frequency=%s`
- ltUrl = fmt.Sprintf(ltUrl, edbCode, startDate, endDate, ltFrequency)
- utils.FileLog.Info("ltUrl:%s", ltUrl)
- body, err := http.Get(ltUrl)
- utils.FileLog.Info("lt result:%s", string(body))
- if err != nil {
- return
- }
- item := new(EdbDataFromLt)
- err = json.Unmarshal(body, &item)
- if err != nil {
- return
- }
- if len(item.Close) > 0 {
- dataList = item.Close
- } else {
- dataList = item.Value
- }
- return
- }
|