base_from_lt.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_index_lib/utils"
  5. "fmt"
  6. "github.com/rdlucklib/rdluck_tools/http"
  7. )
  8. type EdbDataFromLt struct {
  9. Close map[int64]interface{} `json:"CLOSE"`
  10. Value map[int64]interface{} `json:"VALUE"`
  11. }
  12. // GetEdbDataFromLt 获取路透数据
  13. func GetEdbDataFromLt(edbCode, startDate, endDate, edbTerminalCode string) (dataList map[int64]interface{}, err error) {
  14. /*if utils.Hz_LT_Data_Url == `` {
  15. err = errors.New("路透社接口未配置")
  16. return
  17. }*/
  18. terminal, err := GetTerminal(utils.DATA_SOURCE_LT, edbTerminalCode)
  19. if err != nil {
  20. err = fmt.Errorf("获取路透社接口配置出错 Err: %s", err)
  21. return
  22. }
  23. if terminal.ServerUrl == "" {
  24. err = fmt.Errorf("路透社接口未配置")
  25. return
  26. }
  27. if edbTerminalCode == "" {
  28. // 设置指标与终端关系的缓存
  29. terminalCodeCacheKey := utils.CACHE_EDB_TERMINAL_CODE_URL + edbCode
  30. _ = utils.Rc.Put(terminalCodeCacheKey, terminal.TerminalCode, utils.GetTodayLastSecond())
  31. }
  32. dataList = make(map[int64]interface{})
  33. ltUrl := terminal.ServerUrl + `edbInfo/ek?EdbCode=%s&StartDate=%s&EndDate=%s`
  34. ltUrl = fmt.Sprintf(ltUrl, edbCode, startDate, endDate)
  35. utils.FileLog.Info("ltUrl:%s", ltUrl)
  36. body, err := http.Get(ltUrl)
  37. utils.FileLog.Info("lt result:%s", string(body))
  38. if err != nil {
  39. return
  40. }
  41. item := new(EdbDataFromLt)
  42. err = json.Unmarshal(body, &item)
  43. if err != nil {
  44. return
  45. }
  46. if len(item.Close) > 0 {
  47. dataList = item.Close
  48. } else {
  49. dataList = item.Value
  50. }
  51. return
  52. }