|
@@ -186,3 +186,80 @@ func SyncEiaSteoClassify() (err error) {
|
|
|
}
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+func SyncEiaSteoIndexDataV2() (err error) {
|
|
|
+ startDate := time.Now().Format(utils.FormatDate) + " 00:00:00"
|
|
|
+
|
|
|
+ method := `index/data/list`
|
|
|
+
|
|
|
+ //获取所有指标信息 某一天的
|
|
|
+ allIndexCode, err := data_manage.GetBaseFromEiaSteoIndexCodeListByDate(startDate)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("get GetBaseFromEiaSteoIndexAll err:" + err.Error())
|
|
|
+ utils.FileLog.Info("get GetBaseFromEiaSteoIndexCodeList err:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, indexCode := range allIndexCode {
|
|
|
+
|
|
|
+ data := make(map[string]interface{})
|
|
|
+ data["Source"] = utils.DATA_SOURCE_EIA_STEO
|
|
|
+ data["StartDate"] = startDate
|
|
|
+ data["IndexCode"] = indexCode
|
|
|
+
|
|
|
+ var result string
|
|
|
+ result, err = HttpPost("SyncEiaSteoIndexData", method, data)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("HttpPost err:", err)
|
|
|
+ utils.FileLog.Info("HttpPost err:", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ utils.FileLog.Info(result)
|
|
|
+ fmt.Println(result)
|
|
|
+
|
|
|
+ respObj := new(data_manage.EiaSteoIndexDataResp)
|
|
|
+ err = json.Unmarshal([]byte(result), &respObj)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("json.Unmarshal err:" + err.Error())
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ existDataMap := make(map[int]*data_manage.BaseFromEiaSteoData)
|
|
|
+ allData, err1 := data_manage.GetBaseFromEiaSteoIndexDataByIndexCode(indexCode)
|
|
|
+ if err1 != nil {
|
|
|
+ utils.FileLog.Error("get GetBaseFromEiaSteoIndexDataByDate err:", err1.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, dv := range allData {
|
|
|
+ existDataMap[dv.BaseFromEiaSteoDataId] = dv
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, dv := range respObj.Data {
|
|
|
+ if v, ok := existDataMap[dv.BaseFromEiaSteoDataId]; !ok {
|
|
|
+ newID, err := data_manage.AddBaseFromEiaSteoData(dv)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error("add error:", err)
|
|
|
+ }
|
|
|
+ fmt.Println("insert new indexID:", newID)
|
|
|
+ } else {
|
|
|
+ upDateCols := make([]string, 0)
|
|
|
+ if !v.DataTime.Equal(dv.DataTime) {
|
|
|
+ v.DataTime = dv.DataTime
|
|
|
+ upDateCols = append(upDateCols, "DataTime")
|
|
|
+ }
|
|
|
+ if v.Value != dv.Value {
|
|
|
+ v.Value = dv.Value
|
|
|
+ v.ModifyTime = dv.ModifyTime
|
|
|
+ upDateCols = append(upDateCols, []string{"Value", "ModifyTime"}...)
|
|
|
+ }
|
|
|
+ if len(upDateCols) > 0 {
|
|
|
+ err = v.Update(upDateCols)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error("update error:", err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return err
|
|
|
+}
|