|
@@ -4,6 +4,7 @@ import (
|
|
|
"encoding/json"
|
|
|
"eta/eta_task/models/data_manage"
|
|
|
"eta/eta_task/utils"
|
|
|
+ "errors"
|
|
|
"fmt"
|
|
|
"time"
|
|
|
)
|
|
@@ -15,7 +16,7 @@ func SyncEiaSteoIndex() (err error) {
|
|
|
if err != nil || maxDate.IsZero() {
|
|
|
startDate = time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + " 00:00:00"
|
|
|
} else {
|
|
|
- startDate = maxDate.AddDate(0, 0, 1).Format(utils.FormatDate) + " 00:00:00"
|
|
|
+ startDate = maxDate.Format(utils.FormatDateTime)
|
|
|
}
|
|
|
|
|
|
method := `index/list`
|
|
@@ -29,8 +30,8 @@ func SyncEiaSteoIndex() (err error) {
|
|
|
utils.FileLog.Info("HttpPost err:", err)
|
|
|
return
|
|
|
}
|
|
|
- utils.FileLog.Info(result)
|
|
|
- fmt.Println(result)
|
|
|
+ //utils.FileLog.Info(result)
|
|
|
+ //fmt.Println(result)
|
|
|
|
|
|
respObj := new(data_manage.EiaSteoIndexResp)
|
|
|
err = json.Unmarshal([]byte(result), &respObj)
|
|
@@ -52,14 +53,14 @@ func SyncEiaSteoIndex() (err error) {
|
|
|
|
|
|
for _, zv := range respObj.Data {
|
|
|
//if _, ok := existIndexMap[zv.IndexCode]; !ok {
|
|
|
- if zv.BaseFromEiaSteoIndexId <= 0 {
|
|
|
- continue
|
|
|
- }
|
|
|
- newID, err := data_manage.InsertOrUpdateBaseFromEiaSteoIndex(zv)
|
|
|
+ // if zv.BaseFromEiaSteoIndexId <= 0 {
|
|
|
+ // continue
|
|
|
+ // }
|
|
|
+ _, err := data_manage.InsertOrUpdateBaseFromEiaSteoIndex(zv)
|
|
|
if err != nil {
|
|
|
- fmt.Println("InsertOrUpdateBaseFromEiaSteoIndex error:", err)
|
|
|
+ utils.FileLog.Info("InsertOrUpdateBaseFromEiaSteoIndex error:", err)
|
|
|
}
|
|
|
- fmt.Println("InsertOrUpdateBaseFromEiaSteoIndex new indexID:", newID)
|
|
|
+ //fmt.Println("InsertOrUpdateBaseFromEiaSteoIndex new indexID:", newID)
|
|
|
//}
|
|
|
}
|
|
|
return err
|
|
@@ -91,8 +92,8 @@ func SyncEiaSteoIndexData() (err error) {
|
|
|
utils.FileLog.Info("HttpPost err:", err)
|
|
|
return
|
|
|
}
|
|
|
- utils.FileLog.Info(result)
|
|
|
- fmt.Println(result)
|
|
|
+ //utils.FileLog.Info(result)
|
|
|
+ //fmt.Println(result)
|
|
|
|
|
|
respObj := new(data_manage.EiaSteoIndexDataResp)
|
|
|
err = json.Unmarshal([]byte(result), &respObj)
|
|
@@ -202,76 +203,85 @@ func SyncEiaSteoClassify() (err error) {
|
|
|
|
|
|
func SyncEiaSteoIndexDataV2() (err error) {
|
|
|
startDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + " 00:00:00"
|
|
|
+ //var startDate string
|
|
|
+ maxDate, err := data_manage.GetBaseFromEiaSteoDataMaxModifyDate()
|
|
|
+ if err != nil || maxDate.IsZero() {
|
|
|
+ startDate = time.Now().AddDate(0, 0, -1).Format(utils.FormatDate) + " 00:00:00"
|
|
|
+ } else {
|
|
|
+ startDate = maxDate.Format(utils.FormatDateTime)
|
|
|
+ }
|
|
|
|
|
|
- method := `index/data/list`
|
|
|
+ existDataMap := make(map[string]*data_manage.BaseFromEiaSteoData)
|
|
|
+ allData, err1 := data_manage.GetAllBaseFromEiaSteoDataList(startDate)
|
|
|
+ if err1 != nil {
|
|
|
+ fmt.Println("get GetAllBaseFromEiaSteoDataList err:" + err1.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, dv := range allData {
|
|
|
+ tmpKey := dv.IndexCode + "_" + dv.DataTime.Format(utils.FormatDate)
|
|
|
+ existDataMap[tmpKey] = dv
|
|
|
+ }
|
|
|
+
|
|
|
+ method := `index/data/list_page`
|
|
|
|
|
|
//获取所有指标信息 某一天的
|
|
|
- allIndexCode, err := data_manage.GetBaseFromEiaSteoIndexCodeListByDate(startDate)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("get GetBaseFromEiaSteoIndexAll err:" + err.Error())
|
|
|
- utils.FileLog.Info("get GetBaseFromEiaSteoIndexCodeList err:", err)
|
|
|
- return
|
|
|
- }
|
|
|
+ maxPage := 1
|
|
|
|
|
|
- for _, indexCode := range allIndexCode {
|
|
|
+ for currPage := 0; currPage < maxPage; currPage++ {
|
|
|
data := make(map[string]interface{})
|
|
|
data["Source"] = utils.DATA_SOURCE_EIA_STEO
|
|
|
data["StartDate"] = startDate
|
|
|
- data["IndexCode"] = indexCode
|
|
|
+ data["CurrPage"] = currPage
|
|
|
+ data["PageSize"] = 500 //
|
|
|
|
|
|
var result string
|
|
|
- result, err = HttpPost("SyncEiaSteoIndexData", method, data)
|
|
|
+ result, err = HttpPost("SyncBaseFromEiaSteoData", method, data)
|
|
|
if err != nil {
|
|
|
- fmt.Println("HttpPost err:", err)
|
|
|
- utils.FileLog.Info("HttpPost err:", err)
|
|
|
+ err = fmt.Errorf("获取分页指标信息失败")
|
|
|
return
|
|
|
}
|
|
|
- utils.FileLog.Info(result)
|
|
|
- fmt.Println(result)
|
|
|
+ //utils.FileLog.Info(result)
|
|
|
+ //fmt.Println(result)
|
|
|
|
|
|
- respObj := new(data_manage.EiaSteoIndexDataResp)
|
|
|
+ respObj := new(data_manage.BaseFromEiaSteoDataResp)
|
|
|
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, startDate)
|
|
|
- if err1 != nil {
|
|
|
- utils.FileLog.Error("get GetBaseFromEiaSteoIndexDataByDate err:", err1.Error())
|
|
|
+ if respObj.Ret != 200 {
|
|
|
+ err = errors.New(respObj.ErrMsg)
|
|
|
return
|
|
|
}
|
|
|
- for _, dv := range allData {
|
|
|
- existDataMap[dv.BaseFromEiaSteoDataId] = dv
|
|
|
- }
|
|
|
+ // 总页码数
|
|
|
+ maxPage = respObj.Data.Paging.Pages
|
|
|
|
|
|
- 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, "data_time")
|
|
|
- }
|
|
|
- if v.Value != dv.Value {
|
|
|
- v.Value = dv.Value
|
|
|
- v.ModifyTime = dv.ModifyTime
|
|
|
- upDateCols = append(upDateCols, []string{"value", "modify_time"}...)
|
|
|
- }
|
|
|
- if len(upDateCols) > 0 {
|
|
|
- err = v.Update(upDateCols)
|
|
|
+
|
|
|
+ addDataList := make([]*data_manage.BaseFromEiaSteoData, 0)
|
|
|
+ if respObj.Data.List != nil && len(respObj.Data.List) > 0 {
|
|
|
+ for _, dv := range respObj.Data.List {
|
|
|
+ tmpKey := dv.IndexCode + "_" + dv.DataTime.Format(utils.FormatDate)
|
|
|
+ if oldVal, ok := existDataMap[tmpKey]; !ok {
|
|
|
+ addDataList = append(addDataList, dv)
|
|
|
+ existDataMap[tmpKey] = dv
|
|
|
+ }else if dv.Value != oldVal.Value {
|
|
|
+ // 更新指标数据
|
|
|
+ err = data_manage.UpdateBaseFromEiaSteoData(dv)
|
|
|
if err != nil {
|
|
|
- utils.FileLog.Error("update error:", err)
|
|
|
+ utils.FileLog.Info("UpdateBaseFromEiaSteoData error:"+err.Error())
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 最后如果还有数据未插入,那么继续插入吧
|
|
|
+ if len(addDataList) > 0 {
|
|
|
+ _, err = data_manage.MultiAddBaseFromEiaSteoDataIndex(addDataList)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Info("MultiAddBaseFromEiaSteoDataIndex error:"+err.Error())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
return err
|
|
|
}
|