zwxi 1 year ago
parent
commit
093fadb98c
5 changed files with 139 additions and 4 deletions
  1. 68 0
      models/data_manage/base_from_gie.go
  2. 5 4
      models/db.go
  3. 57 0
      services/eic.go
  4. 2 0
      services/icpi.go
  5. 7 0
      services/sync_hz_data.go

+ 68 - 0
models/data_manage/base_from_gie.go

@@ -0,0 +1,68 @@
+package data_manage
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type BaseFromTradeEicIndexV2 struct {
+	BaseFromEicIndexId     int `orm:"column(base_from_eic_index_id);pk"`
+	Type                   string
+	EicCode                string
+	Name                   string
+	Status                 string
+	GasDayStart            string
+	GasInStorage           string
+	GasInStorageCode       string
+	Consumption            string
+	ConsumptionCode        string
+	ConsumptionFull        string
+	ConsumptionFullCode    string
+	Full                   string
+	FullCode               string
+	Trend                  string
+	TrendCode              string
+	Injection              string
+	InjectionCode          string
+	Withdrawal             string
+	WithdrawalCode         string
+	WorkingGasVolume       string
+	WorkingGasVolumeCode   string
+	InjectionCapacity      string
+	InjectionCapacityCode  string
+	WithdrawalCapacity     string
+	WithdrawalCapacityCode string
+	Info                   string
+	Parent                 string
+	CreateTime             time.Time
+	ModifyTime             time.Time
+}
+
+
+func GetBaseFromEicIndexMaxDate() (max_date time.Time, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT max(a.data_time)as max_date FROM base_from_trade_eic_index_v2 as a `
+	err = o.Raw(sql).QueryRow(&max_date)
+	return
+}
+
+func GetBaseFromEicIndexAll(dateStr string) (list []*BaseFromTradeEicIndexV2, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_trade_eic_index_v2 where gas_day_start >=?`
+	_, err = o.Raw(sql, dateStr).QueryRows(&list)
+	return
+}
+
+func AddBaseFromEicIndexV2(item *BaseFromTradeEicIndexV2) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+type EicIndexResp struct {
+	Ret     int
+	Msg     string
+	ErrMsg  string
+	ErrCode string
+	Data    []*BaseFromTradeEicIndexV2
+}

+ 5 - 4
models/db.go

@@ -111,10 +111,11 @@ func initEdbDataTable() {
 		new(data_manage.BaseFromChangesVisitorsCovid),
 		new(data_manage.BaseFromEiaSteoIndex),
 		new(data_manage.BaseFromEiaSteoData),
-		new(data_manage.ComTradeIndex),        // 联合国指标表
-		new(data_manage.ComTradeCodeMapping),  // 联合国指标关系表
-		new(data_manage.ComTradeData),         // 联合国数据表
-		new(data_manage.MeetingProbabilities), // 联储加息概率
+		new(data_manage.ComTradeIndex),           // 联合国指标表
+		new(data_manage.ComTradeCodeMapping),     // 联合国指标关系表
+		new(data_manage.ComTradeData),            // 联合国数据表
+		new(data_manage.MeetingProbabilities),    // 联储加息概率
+		new(data_manage.BaseFromTradeEicIndexV2), // 欧洲天然气
 
 		//广期所
 		new(data_manage.BaseFromTradeGuangzhouClassify),

+ 57 - 0
services/eic.go

@@ -0,0 +1,57 @@
+package services
+
+import (
+	"encoding/json"
+	"eta/eta_task/models/data_manage"
+	"eta/eta_task/utils"
+	"fmt"
+	"time"
+)
+
+// 天然气
+func SyncRankingFromEic() (err error) {
+	var startDate string
+	maxDate, err := data_manage.GetBaseFromEicIndexMaxDate()
+	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"
+	}
+
+	method := `index/list`
+	data := make(map[string]interface{})
+	data["Source"] = utils.DATA_SOURCE_GIE
+	data["StartDate"] = startDate
+	//data["EndDate"] = endDate
+	result, err := HttpPost("SyncRankingFromEic", method, data)
+	utils.FileLog.Info(result)
+	fmt.Println(result)
+
+	respObj := new(data_manage.EicIndexResp)
+	err = json.Unmarshal([]byte(result), &respObj)
+	if err != nil {
+		return err
+	}
+	//获取所有指标信息  某一天的
+	allIndex, err := data_manage.GetBaseFromEicIndexAll(startDate)
+	if err != nil {
+		return
+	}
+
+	existIndexMap := make(map[int]*data_manage.BaseFromTradeEicIndexV2)
+	for _, v := range allIndex {
+		existIndexMap[v.BaseFromEicIndexId] = v
+	}
+
+	for _, zv := range respObj.Data {
+		if _, ok := existIndexMap[zv.BaseFromEicIndexId]; !ok {
+			newID, err := data_manage.AddBaseFromEicIndexV2(zv)
+			if err != nil {
+				fmt.Println("insert error:", err)
+			}
+			fmt.Println("insert new indexID:", newID)
+		}
+	}
+	return err
+}
+

+ 2 - 0
services/icpi.go

@@ -31,6 +31,8 @@ func SyncBaseFromIcpi() (err error) {
 	respObj := new(data_manage.IcpiIndexResp)
 	err = json.Unmarshal([]byte(result), &respObj)
 	if err != nil {
+		utils.FileLog.Info("err:",err.Error())
+		fmt.Println("err:",err.Error())
 		return err
 	}
 	//获取所有指标信息  某一天的

+ 7 - 0
services/sync_hz_data.go

@@ -45,6 +45,13 @@ func SyncHzDataIndex(cont context.Context) (err error) {
 		return
 	}
 
+	//欧洲天然气
+	err = SyncRankingFromEic()
+	if err != nil {
+		fmt.Println("SyncRankingFromEic Err:" + err.Error())
+		return
+	}
+
 	//谷歌出行数据
 	err = SyncChangesVisitorsCovid()
 	if err != nil {