package services import ( "encoding/json" "eta/eta_index_lib/models" "eta/eta_index_lib/utils" "fmt" "github.com/rdlucklib/rdluck_tools/http" "net/url" ) // GetEdbDataFromPb 获取Pb数据 func GetEdbDataFromPb(edbCode, startDate, endDate, edbTerminalCode string) (item *models.EdbDataFromPb, err error) { /* if utils.Hz_Pb_Data_Url == `` { err = errors.New("彭博接口未配置") return }*/ terminal, err := GetTerminal(utils.DATA_SOURCE_PB, 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()) } edbCode = url.QueryEscape(edbCode) bpUrl := terminal.ServerUrl + `edbInfo/pb?EdbCode=%s&StartDate=%s&EndDate=%s` bpUrl = fmt.Sprintf(bpUrl, edbCode, startDate, endDate) utils.FileLog.Info("bpUrl:" + bpUrl) body, err := http.Get(bpUrl) if err != nil { utils.FileLog.Info("GetEdbDataByPb Err:" + err.Error()) return } utils.FileLog.Info("GetEdbDataByPb result:" + string(body)) item = new(models.EdbDataFromPb) err = json.Unmarshal(body, &item) if err != nil { utils.FileLog.Info("GetEdbDataByPb Unmarshal Err:" + err.Error()) return } edbCode, _ = url.QueryUnescape(edbCode) return } // GetEdbDataFromPbFinance 获取Pb财务数据 func GetEdbDataFromPbFinance(companyCode, edbCode, startDate, endDate, edbTerminalCode string) (item *models.EdbDataFromPb, err error) { /*if utils.Hz_Pb_Data_Url == `` { err = errors.New("彭博接口未配置") return }*/ terminal, err := GetTerminal(utils.DATA_SOURCE_PB_FINANCE, 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 + companyCode + "&&" + edbCode _ = utils.Rc.Put(terminalCodeCacheKey, terminal.TerminalCode, utils.GetTodayLastSecond()) } companyCode = url.QueryEscape(companyCode) edbCode = url.QueryEscape(edbCode) bpUrl := terminal.ServerUrl + `edbInfo/pb/finance?CompanyCode=%s&EdbCode=%s&StartDate=%s&EndDate=%s` bpUrl = fmt.Sprintf(bpUrl, companyCode, edbCode, startDate, endDate) utils.FileLog.Info("bpUrl:" + bpUrl) body, err := http.Get(bpUrl) if err != nil { utils.FileLog.Info("GetEdbDataByPb Err:" + err.Error()) return } utils.FileLog.Info("GetEdbDataByPb result:" + string(body)) item = new(models.EdbDataFromPb) err = json.Unmarshal(body, &item) if err != nil { utils.FileLog.Info("GetEdbDataByPb Unmarshal Err:" + err.Error()) return } edbCode, _ = url.QueryUnescape(edbCode) return }