瀏覽代碼

欧洲天然气

ziwen 3 年之前
父節點
當前提交
5293597ba4
共有 5 個文件被更改,包括 357 次插入110 次删除
  1. 8 12
      models/base_from_trade_eic.go
  2. 4 4
      services/commodity_trade_ine.go
  3. 3 3
      services/commodity_trade_shanghai.go
  4. 340 90
      services/sso_eic.go
  5. 2 1
      services/task.go

+ 8 - 12
models/base_from_trade_eic.go

@@ -1,8 +1,6 @@
 package models
 
 import (
-	"fmt"
-	"hongze/hongze_data_crawler/utils"
 	"rdluck_tools/orm"
 	"time"
 )
@@ -17,13 +15,21 @@ type BaseFromTradeEicIndex struct {
 	Status             string
 	GasDayStartedOn    string
 	GasInStorage       float64
+	GasInStorageCode string
 	Full               float64
+	FullCode string
 	Trend              float64
+	TrendCode string
 	Injection          float64
+	InjectionCode string
 	Withdrawal         float64
+	WithdrawalCode string
 	WorkingGasVolume   float64
+	WorkingGasVolumeCode string
 	InjectionCapacity  float64
+	InjectionCapacityCode string
 	WithdrawalCapacity float64
+	WithdrawalCapacityCode string
 	Info               string
 	CreateTime         time.Time
 	ModifyTime         time.Time
@@ -76,16 +82,6 @@ func GetCountryFromEicIndexAll(name string) (list []*BaseFromTradeEicIndex, err
 	return
 }
 
-func GetEicAddSql(item *BaseFromTradeEicIndex) (addSql string) {
-	addSql += "('" + item.Country + "','" + item.Type + "','" + item.EicCode + "','" + item.ShortName + "','" + item.Name + "','" + item.Status + "','" + item.GasDayStartedOn + "','" + fmt.Sprintf("%f", item.GasInStorage) + "','" + fmt.Sprintf("%f", item.Full) + "','" + fmt.Sprintf("%f", item.Trend) + "','" + fmt.Sprintf("%f", item.Injection) + "','" + fmt.Sprintf("%f", item.Withdrawal) + "','" + fmt.Sprintf("%f", item.WorkingGasVolume) + "','" + fmt.Sprintf("%f", item.InjectionCapacity) + "','" + fmt.Sprintf("%f", item.WithdrawalCapacity) + "','" + item.Info + "','" + item.CreateTime.Format(utils.FormatDateTime) + "','" + item.ModifyTime.Format(utils.FormatDateTime) + "'),"
-	return
-}
-
-func GetMappingAddSql(indexName, indexCode, exchange string) (addSql string) {
-	addSql += "('" + indexName + "','" + indexCode + "','" + exchange + "'),"
-	return
-}
-
 func AddEicDataMulti(items []*BaseFromTradeEicIndex) (successNums int64, err error) {
 	o := orm.NewOrm()
 	o.Using("data")

+ 4 - 4
services/commodity_trade_ine.go

@@ -81,7 +81,7 @@ func SyncRankingFromIne() {
 		ineIndexCodeMap[item.IndexName] = item.IndexCode
 	}
 	//获取新的指标信息
-	for i := 180; i > 0; i-- {
+	for i := 2; i > 0; i-- {
 		var message Message
 		var item = new(models.BaseFromTradeIneIndex)
 		zzUrl := "http://www.ine.com.cn/data/dailydata/kx/pm%s.dat"
@@ -116,9 +116,9 @@ func SyncRankingFromIne() {
 				item.DealShortName = p.ParticipantName1
 				item.BuyShortName = p.ParticipantName2
 				item.SoldShortName = p.ParticipantName3
-				item.DealName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName1+"_"+p.ContractCode+"_成交量"), " ", "", -1)
-				item.BuyName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName2+"_"+p.ContractCode+"_持买单量"), " ", "", -1)
-				item.SoldName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName3+"_"+p.ContractCode+"_持卖单量"), " ", "", -1)
+				item.DealName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName1+"_"+p.ContractCode+"_成交量(手)"), " ", "", -1)
+				item.BuyName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName2+"_"+p.ContractCode+"_持买单量(手)"), " ", "", -1)
+				item.SoldName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName3+"_"+p.ContractCode+"_持卖单量(手)"), " ", "", -1)
 				item.DealCode = IneIndexCodeGenerator(item.DealShortName, item.DealName, p.ContractCode, "deal")
 				item.BuyCode = IneIndexCodeGenerator(item.BuyShortName, item.BuyName, p.ContractCode, "buy")
 				item.SoldCode = IneIndexCodeGenerator(item.SoldShortName, item.SoldName, p.ContractCode, "sold")

+ 3 - 3
services/commodity_trade_shanghai.go

@@ -118,9 +118,9 @@ func SyncRankingFromShangHai() {
 					item.DealShortName = p.ParticipantName1
 					item.BuyShortName = p.ParticipantName2
 					item.SoldShortName = p.ParticipantName3
-					item.DealName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName1+"_"+p.ContractCode+"_成交量"), " ", "", -1)
-					item.BuyName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName2+"_"+p.ContractCode+"_持买单量"), " ", "", -1)
-					item.SoldName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName3+"_"+p.ContractCode+"_持卖单量"), " ", "", -1)
+					item.DealName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName1+"_"+p.ContractCode+"_成交量(手)"), " ", "", -1)
+					item.BuyName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName2+"_"+p.ContractCode+"_持买单量(手)"), " ", "", -1)
+					item.SoldName = strings.Replace(fmt.Sprintf("%s", p.ParticipantName3+"_"+p.ContractCode+"_持卖单量(手)"), " ", "", -1)
 					item.DealCode = shIndexCodeGenerator(item.DealShortName, item.DealName, p.ContractCode, "deal")
 					item.BuyCode = shIndexCodeGenerator(item.BuyShortName, item.BuyName, p.ContractCode, "buy")
 					item.SoldCode = shIndexCodeGenerator(item.SoldShortName, item.SoldName, p.ContractCode, "sold")

+ 340 - 90
services/sso_eic.go

@@ -94,36 +94,38 @@ func SyncStorageFromEic() {
 			injectionCapacity, _ := strconv.ParseFloat(storageItem.InjectionCapacity, 64)
 			withdrawalCapacity, _ := strconv.ParseFloat(storageItem.WithdrawalCapacity, 64)
 			ssoItem := models.BaseFromTradeEicIndex{
-				BaseFromEicIndexId: 0,
-				Country:            sso.Country,
-				Type:               sso.Type,
-				EicCode:            sso.Eic + sso.Country,
-				ShortName:          sso.ShortName,
-				Name:               sso.Name,
-				Status:             storageItem.Status,
-				GasDayStartedOn:    storageItem.GasDayStartedOn,
-				GasInStorage:       gasInStorage,
-				Full:               full,
-				Trend:              trend,
-				Injection:          injection,
-				Withdrawal:         withdrawal,
-				WorkingGasVolume:   workingGasVolume,
-				InjectionCapacity:  injectionCapacity,
-				WithdrawalCapacity: withdrawalCapacity,
-				Info:               storageItem.Info,
-				CreateTime:         time.Now(),
-				ModifyTime:         time.Now(),
+				BaseFromEicIndexId:     0,
+				Country:                sso.Country,
+				Type:                   sso.Type,
+				EicCode:                sso.Country + sso.Eic,
+				ShortName:              sso.ShortName,
+				Name:                   sso.Name,
+				Status:                 storageItem.Status,
+				GasDayStartedOn:        storageItem.GasDayStartedOn,
+				GasInStorage:           gasInStorage,
+				GasInStorageCode:       sso.Country + sso.Eic + "GS",
+				Full:                   full,
+				FullCode:               sso.Country + sso.Eic + "F",
+				Trend:                  trend,
+				TrendCode:              sso.Country + sso.Eic + "T",
+				Injection:              injection,
+				InjectionCode:          sso.Country + sso.Eic + "In",
+				Withdrawal:             withdrawal,
+				WithdrawalCode:         sso.Country + sso.Eic + "Out",
+				WorkingGasVolume:       workingGasVolume,
+				WorkingGasVolumeCode:   sso.Country + sso.Eic + "WGV",
+				InjectionCapacity:      injectionCapacity,
+				InjectionCapacityCode:  sso.Country + sso.Eic + "IC",
+				WithdrawalCapacity:     withdrawalCapacity,
+				WithdrawalCapacityCode: sso.Country + sso.Eic + "WC",
+				Info:                   storageItem.Info,
+				CreateTime:             time.Now(),
+				ModifyTime:             time.Now(),
 			}
 			itemVerifyCode := ssoItem.GasInStorage + ssoItem.Full + ssoItem.Trend + ssoItem.Injection + ssoItem.Withdrawal
 
 			if existIndex, ok := existIndexMap[ssoItem.GasDayStartedOn+ssoItem.Name]; !ok {
 				ssoItems = append(ssoItems, &ssoItem)
-
-				//newID, err := models.AddBaseFromEicIndex(&ssoItem)
-				//if err != nil {
-				//	fmt.Println("insert error:", err)
-				//}
-				//fmt.Println("insert new indexID:", newID)
 				existIndexMap[ssoItem.GasDayStartedOn+ssoItem.Name] = &ssoItem
 			} else if existIndex != nil && itemVerifyCode != (existIndex.GasInStorage+existIndex.Full+existIndex.Trend+existIndex.Injection+existIndex.Withdrawal) {
 				//更新
@@ -133,15 +135,95 @@ func SyncStorageFromEic() {
 				}
 			}
 		}
-		if _, ok := eicIndexCodeMap[sso.Country+sso.Name]; !ok {
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name]; !ok {
 			codeMappingItem := models.BaseFromTradeMapping{
 				BaseFromTradeMappingId: 0,
-				IndexName:              sso.Country+sso.Name,
+				IndexName:              sso.Country + "_" + sso.Name,
 				IndexCode:              sso.Country + sso.Eic,
 				Exchange:               "EIC",
 			}
 			codeMapList = append(codeMapList, &codeMappingItem)
-			eicIndexCodeMap[sso.Country+sso.Name] = sso.Country + sso.Eic
+			eicIndexCodeMap[sso.Country+"_"+sso.Name] = sso.Country + sso.Eic
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"GS"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "GS",
+				IndexCode:              sso.Country + sso.Eic + "GS",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"GS"] = sso.Country + sso.Eic + "GS"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"F"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "F",
+				IndexCode:              sso.Country + sso.Eic + "F",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"F"] = sso.Country + sso.Eic + "F"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"T"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "T",
+				IndexCode:              sso.Country + sso.Eic + "T",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"T"] = sso.Country + sso.Eic + "T"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"In"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "In",
+				IndexCode:              sso.Country + sso.Eic + "In",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"In"] = sso.Country + sso.Eic + "In"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"Out"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "Out",
+				IndexCode:              sso.Country + sso.Eic + "Out",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"Out"] = sso.Country + sso.Eic + "Out"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"WGV"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "WGV",
+				IndexCode:              sso.Country + sso.Eic + "WGV",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"WGV"] = sso.Country + sso.Eic + "WGV"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"IC"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "IC",
+				IndexCode:              sso.Country + sso.Eic + "IC",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"IC"] = sso.Country + sso.Eic + "IC"
+		}
+		if _, ok := eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"WC"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              sso.Country + "_" + sso.Name + "_" + "WC",
+				IndexCode:              sso.Country + sso.Eic + "WC",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[sso.Country+"_"+sso.Name+"_"+"WC"] = sso.Country + sso.Eic + "WC"
 		}
 
 		if len(ssoItems) != 0 {
@@ -184,36 +266,38 @@ func SyncStorageFromEic() {
 				injectionCapacity, _ := strconv.ParseFloat(storageItem.InjectionCapacity, 64)
 				withdrawalCapacity, _ := strconv.ParseFloat(storageItem.WithdrawalCapacity, 64)
 				facItem := models.BaseFromTradeEicIndex{
-					BaseFromEicIndexId: 0,
-					Country:            facility.Country,
-					Type:               facility.Type,
-					EicCode:            facility.Eic + facility.Country,
-					ShortName:          sso.ShortName,
-					Name:               facility.Name,
-					Status:             storageItem.Status,
-					GasDayStartedOn:    storageItem.GasDayStartedOn,
-					GasInStorage:       gasInStorage,
-					Full:               full,
-					Trend:              trend,
-					Injection:          injection,
-					Withdrawal:         withdrawal,
-					WorkingGasVolume:   workingGasVolume,
-					InjectionCapacity:  injectionCapacity,
-					WithdrawalCapacity: withdrawalCapacity,
-					Info:               storageItem.Info,
-					CreateTime:         time.Now(),
-					ModifyTime:         time.Now(),
+					BaseFromEicIndexId:     0,
+					Country:                facility.Country,
+					Type:                   facility.Type,
+					EicCode:                facility.Country + facility.Eic,
+					ShortName:              sso.ShortName,
+					Name:                   facility.Name,
+					Status:                 storageItem.Status,
+					GasDayStartedOn:        storageItem.GasDayStartedOn,
+					GasInStorage:           gasInStorage,
+					GasInStorageCode:       facility.Eic + facility.Country + "GS",
+					Full:                   full,
+					FullCode:               facility.Eic + facility.Country + "F",
+					Trend:                  trend,
+					TrendCode:              facility.Eic + facility.Country + "T",
+					Injection:              injection,
+					InjectionCode:          facility.Eic + facility.Country + "In",
+					Withdrawal:             withdrawal,
+					WithdrawalCode:         facility.Eic + facility.Country + "Out",
+					WorkingGasVolume:       workingGasVolume,
+					WorkingGasVolumeCode:   facility.Eic + facility.Country + "WGV",
+					InjectionCapacity:      injectionCapacity,
+					InjectionCapacityCode:  facility.Eic + facility.Country + "IC",
+					WithdrawalCapacity:     withdrawalCapacity,
+					WithdrawalCapacityCode: facility.Eic + facility.Country + "WC",
+					Info:                   storageItem.Info,
+					CreateTime:             time.Now(),
+					ModifyTime:             time.Now(),
 				}
 				itemVerifyCode := facItem.GasInStorage + facItem.Full + facItem.Trend + facItem.Injection + facItem.Withdrawal
 
 				if existIndex, ok := existFacIndexMap[facItem.Name+facItem.GasDayStartedOn]; !ok {
 					facItems = append(facItems, &facItem)
-
-					//newID, err := models.AddBaseFromEicIndex(&facItem)
-					//if err != nil {
-					//	fmt.Println("insert error:", err)
-					//}
-					//fmt.Println("insert new indexID:", newID)
 					existFacIndexMap[facItem.Name+facItem.GasDayStartedOn] = &facItem
 				} else if existIndex != nil && itemVerifyCode != (existIndex.GasInStorage+existIndex.Full+existIndex.Trend+existIndex.Injection+existIndex.Withdrawal) {
 					//更新
@@ -223,15 +307,95 @@ func SyncStorageFromEic() {
 					}
 				}
 			}
-			if _, ok := eicIndexCodeMap[facility.Country+facility.Name]; !ok {
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name,
+					IndexCode:              facility.Country + facility.Eic,
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name] = facility.Country + facility.Eic
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"GS"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "GS",
+					IndexCode:              facility.Country + facility.Eic + "GS",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"GS"] = facility.Country + facility.Eic + "GS"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"F"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "F",
+					IndexCode:              facility.Country + facility.Eic + "F",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"F"] = facility.Country + facility.Eic + "F"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"T"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "T",
+					IndexCode:              facility.Country + facility.Eic + "T",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"T"] = facility.Country + facility.Eic + "T"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"In"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "In",
+					IndexCode:              facility.Country + facility.Eic + "In",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"In"] = facility.Country + facility.Eic + "In"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"Out"]; !ok {
 				codeMappingItem := models.BaseFromTradeMapping{
 					BaseFromTradeMappingId: 0,
-					IndexName:              facility.Country+facility.Name,
-					IndexCode:              facility.Country+facility.Eic,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "Out",
+					IndexCode:              facility.Country + facility.Eic + "Out",
 					Exchange:               "EIC",
 				}
 				codeMapList = append(codeMapList, &codeMappingItem)
-				eicIndexCodeMap[facility.Country+facility.Name] = facility.Country+facility.Eic
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"Out"] = facility.Country + facility.Eic + "Out"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"WGV"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "WGV",
+					IndexCode:              facility.Country + facility.Eic + "WGV",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"WGV"] = facility.Country + facility.Eic + "WGV"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"IC"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "IC",
+					IndexCode:              facility.Country + facility.Eic + "IC",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"IC"] = facility.Country + facility.Eic + "IC"
+			}
+			if _, ok := eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"WC"]; !ok {
+				codeMappingItem := models.BaseFromTradeMapping{
+					BaseFromTradeMappingId: 0,
+					IndexName:              facility.Country + "_" + facility.Name + "_" + "WC",
+					IndexCode:              facility.Country + facility.Eic + "WC",
+					Exchange:               "EIC",
+				}
+				codeMapList = append(codeMapList, &codeMappingItem)
+				eicIndexCodeMap[facility.Country+"_"+facility.Name+"_"+"WC"] = facility.Country + facility.Eic + "WC"
 			}
 		}
 		if len(facItems) != 0 {
@@ -241,10 +405,12 @@ func SyncStorageFromEic() {
 				fmt.Println("AddFacDataMulti err:", err)
 			}
 		}
-		successNums, err := models.AddEicCodeMulti(codeMapList)
-		fmt.Println("codeMapping successNums:", successNums)
-		if err != nil {
-			fmt.Println("AddEicCodeMulti err:", err)
+		if len(codeMapList) != 0 {
+			successNums, err := models.AddEicCodeMulti(codeMapList)
+			fmt.Println("codeMapping successNums:", successNums)
+			if err != nil {
+				fmt.Println("AddEicCodeMulti err:", err)
+			}
 		}
 	}
 	//国家级,洲际级统计
@@ -284,25 +450,33 @@ func SyncStorageFromEic() {
 			injectionCapacity, _ := strconv.ParseFloat(countryStorage.InjectionCapacity, 64)
 			withdrawalCapacity, _ := strconv.ParseFloat(countryStorage.WithdrawalCapacity, 64)
 			countryItem := models.BaseFromTradeEicIndex{
-				BaseFromEicIndexId: 0,
-				Country:            country,
-				Type:               "country",
-				EicCode:            country,
-				ShortName:          country,
-				Name:               country,
-				Status:             countryStorage.Status,
-				GasDayStartedOn:    countryStorage.GasDayStartedOn,
-				GasInStorage:       gasInStorage,
-				Full:               full,
-				Trend:              trend,
-				Injection:          injection,
-				Withdrawal:         withdrawal,
-				WorkingGasVolume:   workingGasVolume,
-				InjectionCapacity:  injectionCapacity,
-				WithdrawalCapacity: withdrawalCapacity,
-				Info:               countryStorage.Info,
-				CreateTime:         time.Now(),
-				ModifyTime:         time.Now(),
+				BaseFromEicIndexId:     0,
+				Country:                country,
+				Type:                   "country",
+				EicCode:                country,
+				ShortName:              country,
+				Name:                   country,
+				Status:                 countryStorage.Status,
+				GasDayStartedOn:        countryStorage.GasDayStartedOn,
+				GasInStorage:           gasInStorage,
+				GasInStorageCode:       country + "GS",
+				Full:                   full,
+				FullCode:               country + "F",
+				Trend:                  trend,
+				TrendCode:              country + "T",
+				Injection:              injection,
+				InjectionCode:          country + "In",
+				Withdrawal:             withdrawal,
+				WithdrawalCode:         country + "Out",
+				WorkingGasVolume:       workingGasVolume,
+				WorkingGasVolumeCode:   country + "WGV",
+				InjectionCapacity:      injectionCapacity,
+				InjectionCapacityCode:  country + "IC",
+				WithdrawalCapacity:     withdrawalCapacity,
+				WithdrawalCapacityCode: country + "WC",
+				Info:                   countryStorage.Info,
+				CreateTime:             time.Now(),
+				ModifyTime:             time.Now(),
 			}
 			if country == "eu" || country == "ne" {
 				countryItem.Type = "continent"
@@ -311,12 +485,6 @@ func SyncStorageFromEic() {
 
 			if existIndex, ok := existFacIndexMap[countryItem.Name+countryItem.GasDayStartedOn]; !ok {
 				countryItems = append(countryItems, &countryItem)
-
-				//newID, err := models.AddBaseFromEicIndex(&countryItem)
-				//if err != nil {
-				//	fmt.Println("insert error:", err)
-				//}
-				//fmt.Println("insert new indexID:", newID)
 				existFacIndexMap[countryItem.Name+countryItem.GasDayStartedOn] = &countryItem
 			} else if existIndex != nil && itemVerifyCode != (existIndex.GasInStorage+existIndex.Full+existIndex.Trend+existIndex.Injection+existIndex.Withdrawal) {
 				//更新
@@ -345,10 +513,92 @@ func SyncStorageFromEic() {
 			codeMapList = append(codeMapList, &codeMappingItem)
 			eicIndexCodeMap[country] = country
 		}
+		if _, ok := eicIndexCodeMap[country+"_"+"GS"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "GS",
+				IndexCode:              country + "GS",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"GS"] = country + "GS"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"F"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "F",
+				IndexCode:              country + "F",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"F"] = country + "F"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"T"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "T",
+				IndexCode:              country + "T",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"T"] = country + "T"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"In"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "In",
+				IndexCode:              country + "In",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"In"] = country + "In"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"Out"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "Out",
+				IndexCode:              country + "Out",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"Out"] = country + "Out"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"WGV"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "WGV",
+				IndexCode:              country + "WGV",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"WGV"] = country + "WGV"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"IC"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "IC",
+				IndexCode:              country + "IC",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"IC"] = country + "IC"
+		}
+		if _, ok := eicIndexCodeMap[country+"_"+"WC"]; !ok {
+			codeMappingItem := models.BaseFromTradeMapping{
+				BaseFromTradeMappingId: 0,
+				IndexName:              country + "_" + "WC",
+				IndexCode:              country + "WC",
+				Exchange:               "EIC",
+			}
+			codeMapList = append(codeMapList, &codeMappingItem)
+			eicIndexCodeMap[country+"_"+"WC"] = country + "WC"
+		}
 	}
-	successNums, err := models.AddEicCodeMulti(codeMapList)
-	fmt.Println("codeMapping successNums:", successNums)
-	if err != nil {
-		fmt.Println("AddEicCodeMulti err:", err)
+	if len(codeMapList) != 0 {
+		successNums, err := models.AddEicCodeMulti(codeMapList)
+		fmt.Println("codeMapping successNums:", successNums)
+		if err != nil {
+			fmt.Println("AddEicCodeMulti err:", err)
+		}
 	}
 }

+ 2 - 1
services/task.go

@@ -31,6 +31,7 @@ func RefreshData(cont context.Context) (err error) {
 	SyncRankingFromShangHai()
 	SyncRankingFromIne()
 	SyncRankingFromCffex()
-
+	SyncStorageFromEic()
+	
 	return
 }