|
@@ -30,10 +30,10 @@ var cffexIndexCode string
|
|
|
var cffexIndexCodeMap = make(map[string]string)
|
|
|
var cffexActionCodeMap = make(map[string]map[string]int)
|
|
|
|
|
|
-func cffexIndexCodeGenerator(indexName string) string {
|
|
|
- cffexIndexCode,_ := cffexIndexCodeMap[indexName]
|
|
|
+func cffexIndexCodeGenerator(indexName, suffix string) string {
|
|
|
+ cffexIndexCode, _ := cffexIndexCodeMap[indexName]
|
|
|
if cffexIndexCode == "" {
|
|
|
- cffexIndexCode = fmt.Sprintf("CFFEX%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100)))
|
|
|
+ cffexIndexCode = fmt.Sprintf("CFFEX%s", time.Now().Format(utils.FormatDateTimeUnSpace)+strconv.Itoa(utils.GetRandInt(1, 100))+suffix)
|
|
|
cffexIndexCodeMap[indexName] = cffexIndexCode
|
|
|
err := models.AddBaseFromTradeMapping(indexName, cffexIndexCode, "CFFEX")
|
|
|
if err != nil {
|
|
@@ -45,7 +45,7 @@ func cffexIndexCodeGenerator(indexName string) string {
|
|
|
|
|
|
// SyncRankingFromCffex 中国金融期货交易所
|
|
|
func SyncRankingFromCffex() {
|
|
|
- for i := 180; i > 0; i-- {
|
|
|
+ for i := 2; i > 0; i-- {
|
|
|
zzUrl := "http://www.cffex.com.cn/sj/ccpm/%s/%s/"
|
|
|
date := time.Now().AddDate(0, 0, -i)
|
|
|
dateStr := date.Format(utils.FormatDateUnSpace)
|
|
@@ -63,7 +63,6 @@ func SyncRankingFromCffex() {
|
|
|
xmlItems[5] = GetXmlItem(zzUrl, "T")
|
|
|
//获取新的指标信息
|
|
|
var sRank string
|
|
|
- existIndexMap := make(map[string]*models.BaseFromTradeCffexIndex)
|
|
|
|
|
|
//获取所有指标信息
|
|
|
allIndex, err := models.GetBaseFromTradeCffexIndexAll(dateStr)
|
|
@@ -71,11 +70,15 @@ func SyncRankingFromCffex() {
|
|
|
fmt.Println("select err:", err)
|
|
|
}
|
|
|
|
|
|
+ existDealMap := make(map[string]int)
|
|
|
+ existBuyMap := make(map[string]int)
|
|
|
+ existSoldMap := make(map[string]int)
|
|
|
for _, v := range allIndex {
|
|
|
- indexKey := v.DealName + v.BuyName + v.SoldName + v.DataTime
|
|
|
- existIndexMap[indexKey] = v
|
|
|
+ existDealMap[v.DealName] = v.BaseFromTradeCffexIndexId
|
|
|
+ existBuyMap[v.BuyName] = v.BaseFromTradeCffexIndexId
|
|
|
+ existSoldMap[v.SoldName] = v.BaseFromTradeCffexIndexId
|
|
|
sRank = fmt.Sprintf("%d", v.Rank)
|
|
|
- cffexActionCodeMap[sRank+v.ClassifyType+v.DataTime] = map[string]int{"0": v.DealValue, "1": v.BuyValue, "2": v.SoldValue, "id": v.BaseFromTradeCffexIndexId}
|
|
|
+ cffexActionCodeMap[sRank+v.ClassifyType] = map[string]int{"0": v.DealValue, "1": v.BuyValue, "2": v.SoldValue, "id": v.BaseFromTradeCffexIndexId}
|
|
|
}
|
|
|
shortNameColum := map[string]string{"0": "deal_short_name", "1": "buy_short_name", "2": "sold_short_name"}
|
|
|
nameColum := map[string]string{"0": "deal_name", "1": "buy_name", "2": "sold_name"}
|
|
@@ -94,7 +97,7 @@ func SyncRankingFromCffex() {
|
|
|
case "0":
|
|
|
item.DealShortName = i.ShortName
|
|
|
item.DealName = fmt.Sprintf("%s", i.ShortName+"_成交量_"+i.ContractCode)
|
|
|
- item.DealCode = cffexIndexCodeGenerator(item.DealName)
|
|
|
+ item.DealCode = cffexIndexCodeGenerator(item.DealName, "deal")
|
|
|
item.DealValue = i.Volume
|
|
|
item.DealChange = i.Varvolume
|
|
|
|
|
@@ -103,7 +106,7 @@ func SyncRankingFromCffex() {
|
|
|
case "1":
|
|
|
item.BuyShortName = i.ShortName
|
|
|
item.BuyName = fmt.Sprintf("%s", i.ShortName+"_持买单量_"+i.ContractCode)
|
|
|
- item.BuyCode = cffexIndexCodeGenerator(item.BuyName)
|
|
|
+ item.BuyCode = cffexIndexCodeGenerator(item.BuyName, "buy")
|
|
|
item.BuyValue = i.Volume
|
|
|
item.BuyChange = i.Varvolume
|
|
|
|
|
@@ -112,7 +115,7 @@ func SyncRankingFromCffex() {
|
|
|
case "2":
|
|
|
item.SoldShortName = i.ShortName
|
|
|
item.SoldName = fmt.Sprintf("%s", i.ShortName+"_持卖单量_"+i.ContractCode)
|
|
|
- item.SoldCode = cffexIndexCodeGenerator(item.SoldName)
|
|
|
+ item.SoldCode = cffexIndexCodeGenerator(item.SoldName, "sold")
|
|
|
item.SoldValue = i.Volume
|
|
|
item.SoldChange = i.Varvolume
|
|
|
|
|
@@ -130,18 +133,24 @@ func SyncRankingFromCffex() {
|
|
|
|
|
|
valueMap := map[string]int{"0": item.DealValue, "1": item.BuyValue, "2": item.SoldValue}
|
|
|
//检查在actionCodeMap中是否已经有了
|
|
|
- indexKey = fmt.Sprintf("%d", item.Rank) + item.ClassifyType + item.DataTime
|
|
|
+ indexKey = fmt.Sprintf("%d", item.Rank) + item.ClassifyType
|
|
|
if existMap, ok := cffexActionCodeMap[indexKey]; !ok {
|
|
|
- //没有,新增
|
|
|
- newID, err := models.AddBaseFromTradeCffexIndex(item)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("insert error:", err)
|
|
|
+ if _, ok := existDealMap[item.DealName]; !ok {
|
|
|
+ if _, ok := existBuyMap[item.BuyName]; !ok {
|
|
|
+ if _, ok := existSoldMap[item.SoldName]; !ok {
|
|
|
+ //没有,新增
|
|
|
+ newID, err := models.AddBaseFromTradeCffexIndex(item)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("insert error:", err)
|
|
|
+ }
|
|
|
+ fmt.Println("insert new indexID:", newID)
|
|
|
+ existMap = make(map[string]int)
|
|
|
+ existMap[i.Value] = i.Volume
|
|
|
+ existMap["id"] = int(newID)
|
|
|
+ cffexActionCodeMap[indexKey] = existMap
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- fmt.Println("insert new indexID:", newID)
|
|
|
- existMap = make(map[string]int)
|
|
|
- existMap[i.Value] = i.Volume
|
|
|
- existMap["id"] = int(newID)
|
|
|
- cffexActionCodeMap[indexKey] = existMap
|
|
|
} else if existMap != nil && existMap[i.Value] != i.Volume {
|
|
|
//更新
|
|
|
var columnList = [5]string{
|