|
@@ -14,204 +14,53 @@ import (
|
|
|
)
|
|
|
|
|
|
var (
|
|
|
- BridgeApiPCSGBloombergDailyUrl = "/api/pcsg/bloomberg/daily_index" // 日度指标API
|
|
|
- BridgeApiPCSGBloombergWeeklyUrl = "/api/pcsg/bloomberg/weekly_index" // 周度指标API
|
|
|
- BridgeApiPCSGBloombergMonthlyUrl = "/api/pcsg/bloomberg/monthly_index" // 月度指标API
|
|
|
- BridgeApiPCSGBloombergDailyRun3Url = "/api/pcsg/bloomberg/daily_index_run3" // 月度指标API
|
|
|
+ PCSGBloombergGeneralIndexDataUrl = "/api/pcsg/bloomberg/index_data/general" // 通用指标API
|
|
|
)
|
|
|
|
|
|
-// GetPCSGBloombergDailyFromBridge 获取彭博日度指标
|
|
|
-func GetPCSGBloombergDailyFromBridge() (indexes []models.BaseFromBloombergApiIndexAndData, err error) {
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- tips := fmt.Sprintf("GetPCSGBloombergDailyFromBridge-获取彭博日度指标失败, err: %s", err.Error())
|
|
|
- utils.FileLog.Info(tips)
|
|
|
- go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
- }
|
|
|
- }()
|
|
|
-
|
|
|
- url := fmt.Sprint(utils.EtaBridgeUrl, BridgeApiPCSGBloombergDailyUrl)
|
|
|
- body := ioutil.NopCloser(strings.NewReader(""))
|
|
|
- client := &http.Client{}
|
|
|
- req, e := http.NewRequest("POST", url, body)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("http create request err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- checkToken := utils.MD5(utils.EtaBridgeAppNameEn + utils.EtaBridgeMd5Key)
|
|
|
- contentType := "application/json;charset=utf-8"
|
|
|
- req.Header.Set("Content-Type", contentType)
|
|
|
- req.Header.Set("Authorization", checkToken)
|
|
|
- resp, e := client.Do(req)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("http client do err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- defer func() {
|
|
|
- _ = resp.Body.Close()
|
|
|
- }()
|
|
|
- b, e := ioutil.ReadAll(resp.Body)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("resp body read err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if len(b) == 0 {
|
|
|
- err = fmt.Errorf("resp body is empty")
|
|
|
- return
|
|
|
- }
|
|
|
- // 生产环境解密
|
|
|
- if utils.RunMode == "release" {
|
|
|
- str := string(b)
|
|
|
- str = strings.Trim(str, `"`)
|
|
|
- b = utils.DesBase64Decrypt([]byte(str), utils.EtaBridgeDesKey)
|
|
|
- }
|
|
|
-
|
|
|
- result := new(models.BridgePCSGBloombergResultData)
|
|
|
- if e = json.Unmarshal(b, &result); e != nil {
|
|
|
- err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- if result.Code != 200 {
|
|
|
- err = fmt.Errorf("result: %s", string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- indexes = result.Data
|
|
|
- return
|
|
|
+type PCSGBloombergApiReq struct {
|
|
|
+ TaskKey string `description:"任务key"`
|
|
|
+ Frequency string `description:"指标频度"`
|
|
|
}
|
|
|
|
|
|
-// GetPCSGBloombergWeeklyFromBridge 获取彭博周度指标
|
|
|
-func GetPCSGBloombergWeeklyFromBridge() (indexes []models.BaseFromBloombergApiIndexAndData, err error) {
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- tips := fmt.Sprintf("GetPCSGBloombergWeeklyFromBridge-获取彭博周度指标失败, err: %s", err.Error())
|
|
|
- utils.FileLog.Info(tips)
|
|
|
- go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
- }
|
|
|
- }()
|
|
|
+type PCSGBloombergTask struct {
|
|
|
+ TaskKey string `json:"TaskKey"`
|
|
|
+ Frequency string `json:"Frequency"`
|
|
|
+ VCode bool `json:"VCode"`
|
|
|
+}
|
|
|
|
|
|
- url := fmt.Sprint(utils.EtaBridgeUrl, BridgeApiPCSGBloombergWeeklyUrl)
|
|
|
- body := ioutil.NopCloser(strings.NewReader(""))
|
|
|
- client := &http.Client{}
|
|
|
- req, e := http.NewRequest("POST", url, body)
|
|
|
+// LoadPCSGBloombergTask 加载配置
|
|
|
+func LoadPCSGBloombergTask() (tasks []*PCSGBloombergTask, err error) {
|
|
|
+ filePath := "./static/pcsg_task.json"
|
|
|
+ b, e := ioutil.ReadFile(filePath)
|
|
|
if e != nil {
|
|
|
- err = fmt.Errorf("http create request err: %s", e.Error())
|
|
|
+ err = fmt.Errorf("读取配置失败, err: %v", e)
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- checkToken := utils.MD5(utils.EtaBridgeAppNameEn + utils.EtaBridgeMd5Key)
|
|
|
- contentType := "application/json;charset=utf-8"
|
|
|
- req.Header.Set("Content-Type", contentType)
|
|
|
- req.Header.Set("Authorization", checkToken)
|
|
|
- resp, e := client.Do(req)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("http client do err: %s", e.Error())
|
|
|
+ if e = json.Unmarshal(b, &tasks); e != nil {
|
|
|
+ err = fmt.Errorf("解析配置失败, err: %v", e)
|
|
|
return
|
|
|
}
|
|
|
- defer func() {
|
|
|
- _ = resp.Body.Close()
|
|
|
- }()
|
|
|
- b, e := ioutil.ReadAll(resp.Body)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("resp body read err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if len(b) == 0 {
|
|
|
- err = fmt.Errorf("resp body is empty")
|
|
|
- return
|
|
|
- }
|
|
|
- // 生产环境解密
|
|
|
- if utils.RunMode == "release" {
|
|
|
- str := string(b)
|
|
|
- str = strings.Trim(str, `"`)
|
|
|
- b = utils.DesBase64Decrypt([]byte(str), utils.EtaBridgeDesKey)
|
|
|
- }
|
|
|
-
|
|
|
- result := new(models.BridgePCSGBloombergResultData)
|
|
|
- if e = json.Unmarshal(b, &result); e != nil {
|
|
|
- err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- if result.Code != 200 {
|
|
|
- err = fmt.Errorf("result: %s", string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- indexes = result.Data
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// GetPCSGBloombergMonthlyFromBridge 获取彭博月度指标
|
|
|
-func GetPCSGBloombergMonthlyFromBridge() (indexes []models.BaseFromBloombergApiIndexAndData, err error) {
|
|
|
+// GetPCSGBloombergGeneralIndexFromBridge 获取通用数据类型指标
|
|
|
+func GetPCSGBloombergGeneralIndexFromBridge(params PCSGBloombergApiReq) (indexes []models.BaseFromBloombergApiIndexAndData, err error) {
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
|
- tips := fmt.Sprintf("GetPCSGBloombergMonthlyFromBridge-获取彭博月度指标失败, err: %s", err.Error())
|
|
|
+ tips := fmt.Sprintf("GetPCSGBloombergGeneralIndexFromBridge-获取指标数据失败, err: %s", err.Error())
|
|
|
utils.FileLog.Info(tips)
|
|
|
go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
- url := fmt.Sprint(utils.EtaBridgeUrl, BridgeApiPCSGBloombergMonthlyUrl)
|
|
|
- body := ioutil.NopCloser(strings.NewReader(""))
|
|
|
- client := &http.Client{}
|
|
|
- req, e := http.NewRequest("POST", url, body)
|
|
|
+ p, e := json.Marshal(params)
|
|
|
if e != nil {
|
|
|
- err = fmt.Errorf("http create request err: %s", e.Error())
|
|
|
+ err = fmt.Errorf("params json marshal err: %v", e)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- checkToken := utils.MD5(utils.EtaBridgeAppNameEn + utils.EtaBridgeMd5Key)
|
|
|
- contentType := "application/json;charset=utf-8"
|
|
|
- req.Header.Set("Content-Type", contentType)
|
|
|
- req.Header.Set("Authorization", checkToken)
|
|
|
- resp, e := client.Do(req)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("http client do err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- defer func() {
|
|
|
- _ = resp.Body.Close()
|
|
|
- }()
|
|
|
- b, e := ioutil.ReadAll(resp.Body)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("resp body read err: %s", e.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if len(b) == 0 {
|
|
|
- err = fmt.Errorf("resp body is empty")
|
|
|
- return
|
|
|
- }
|
|
|
- // 生产环境解密
|
|
|
- if utils.RunMode == "release" {
|
|
|
- str := string(b)
|
|
|
- str = strings.Trim(str, `"`)
|
|
|
- b = utils.DesBase64Decrypt([]byte(str), utils.EtaBridgeDesKey)
|
|
|
- }
|
|
|
-
|
|
|
- result := new(models.BridgePCSGBloombergResultData)
|
|
|
- if e = json.Unmarshal(b, &result); e != nil {
|
|
|
- err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- if result.Code != 200 {
|
|
|
- err = fmt.Errorf("result: %s", string(b))
|
|
|
- return
|
|
|
- }
|
|
|
- indexes = result.Data
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// GetPCSGBloombergDailyFromBridgeRun3 获取彭博日度指标
|
|
|
-func GetPCSGBloombergDailyFromBridgeRun3() (indexes []models.BaseFromBloombergApiIndexAndData, err error) {
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- tips := fmt.Sprintf("GetPCSGBloombergDailyFromBridgeRun3-获取彭博日度指标失败, err: %s", err.Error())
|
|
|
- utils.FileLog.Info(tips)
|
|
|
- go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
- }
|
|
|
- }()
|
|
|
-
|
|
|
- url := fmt.Sprint(utils.EtaBridgeUrl, BridgeApiPCSGBloombergDailyRun3Url)
|
|
|
- body := ioutil.NopCloser(strings.NewReader(""))
|
|
|
+ url := fmt.Sprint(utils.EtaBridgeUrl, PCSGBloombergGeneralIndexDataUrl)
|
|
|
+ body := ioutil.NopCloser(strings.NewReader(string(p)))
|
|
|
client := &http.Client{}
|
|
|
req, e := http.NewRequest("POST", url, body)
|
|
|
if e != nil {
|