Browse Source

Merge branch 'hotfix/dalian_top_1112' into debug

hsun 3 months ago
parent
commit
4c27a63148

+ 9 - 8
models/trade_analysis/trade_analysis.go

@@ -210,14 +210,15 @@ func GetTradeDataByClassifyAndCompany(exchange, classifyName string, contracts,
 		condSold += fmt.Sprintf(` AND sold_short_name IN (%s)`, utils.GetOrmInReplace(len(condCompanies)))
 		parsSold = append(parsSold, condCompanies)
 	} else {
+		// 这里rank=0或者999是因为大商所的数据并不只有999
 		if len(condCompanies) > 0 {
-			condBuy += fmt.Sprintf(` AND (rank = 999 OR buy_short_name IN (%s))`, utils.GetOrmInReplace(len(condCompanies)))
-			condSold += fmt.Sprintf(` AND (rank = 999 OR sold_short_name IN (%s))`, utils.GetOrmInReplace(len(condCompanies)))
+			condBuy += fmt.Sprintf(` AND (rank = 999 OR rank = 0 OR buy_short_name IN (%s))`, utils.GetOrmInReplace(len(condCompanies)))
+			condSold += fmt.Sprintf(` AND (rank = 999 OR rank = 0 OR sold_short_name IN (%s))`, utils.GetOrmInReplace(len(condCompanies)))
 			parsBuy = append(parsBuy, condCompanies)
 			parsSold = append(parsSold, condCompanies)
 		} else {
-			condBuy += ` AND rank = 999`
-			condSold += ` AND rank = 999`
+			condBuy += ` AND (rank = 999 OR rank = 0)`
+			condSold += ` AND (rank = 999 OR rank = 0)`
 		}
 	}
 
@@ -361,10 +362,10 @@ const (
 	WarehouseDefaultFrequency = "日度"
 
 	GuangZhouTopCompanyAliasName = "日成交持仓排名" // 广期所TOP20对应的公司名称
-	GuangZhouSeatNameBuy         = "持买单量"    // 广期所指标名称中的多单名称
-	GuangZhouSeatNameSold        = "持卖单量"    // 广期所指标名称中的空单名称
-	GuangZhouTopSeatNameBuy      = "持买单量总计"  // 广期所指标名称中的TOP20多单名称
-	GuangZhouTopSeatNameSold     = "持卖单量总计"  // 广期所指标名称中的TOP20空单名称
+	GuangZhouSeatNameBuy         = "持买单量"       // 广期所指标名称中的多单名称
+	GuangZhouSeatNameSold        = "持卖单量"       // 广期所指标名称中的空单名称
+	GuangZhouTopSeatNameBuy      = "持买单量总计"   // 广期所指标名称中的TOP20多单名称
+	GuangZhouTopSeatNameSold     = "持卖单量总计"   // 广期所指标名称中的TOP20空单名称
 )
 
 const (

+ 18 - 6
services/trade_analysis/trade_analysis_data.go

@@ -59,7 +59,6 @@ func FormatCompanyTradeData2EdbData(companyTradeData *tradeAnalysisModel.Contrac
 	return
 }
 
-// GetOriginTradeData 获取原始持仓数据
 func GetOriginTradeData(exchange, classifyName string, contracts, companies []string, predictRatio float64) (companyTradeData []*tradeAnalysisModel.ContractCompanyTradeData, err error) {
 	// 各原始数据表期货公司名称不一致
 	companyMap := make(map[string]string)
@@ -99,7 +98,6 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
 	}
 	var queryCompanies []string
 	for _, v := range companies {
-		// TOP20用空名称去查询
 		if v == tradeAnalysisModel.TradeFuturesCompanyTop20 {
 			queryCompanies = append(queryCompanies, tradeAnalysisModel.TradeFuturesCompanyTop20)
 			continue
@@ -134,9 +132,9 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
 	keyDateData := make(map[string]*tradeAnalysisModel.ContractCompanyTradeDataList)
 	keyDateDataExist := make(map[string]bool)
 	for _, v := range originList {
-		// Rank999-对应的是TOP20
+		// Rank999和0对应的是TOP20
 		companyName := v.CompanyName
-		if v.Rank == 999 {
+		if v.Rank == 999 || v.Rank == 0 {
 			companyName = tradeAnalysisModel.TradeFuturesCompanyTop20
 		}
 
@@ -214,7 +212,7 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
 	}
 
 	// 以[公司]为组, 计算合约加总
-	companyTradeData = make([]*tradeAnalysisModel.ContractCompanyTradeData, 0)
+	mussyTradeData := make(map[string]*tradeAnalysisModel.ContractCompanyTradeData)
 	for k, v := range companyContracts {
 		companyData := new(tradeAnalysisModel.ContractCompanyTradeData)
 		companyData.CompanyName = k
@@ -283,7 +281,21 @@ func GetOriginTradeData(exchange, classifyName string, contracts, companies []st
 			return companyData.DataList[i].Date.Before(companyData.DataList[j].Date)
 		})
 		companyData.ClassifyType = strings.Join(contractArr, ",")
-		companyTradeData = append(companyTradeData, companyData)
+		mussyTradeData[k] = companyData
+	}
+
+	// 数据根据公司排序, 不然会随机乱
+	companyTradeData = make([]*tradeAnalysisModel.ContractCompanyTradeData, 0)
+	for _, v := range companies {
+		// 没数据也需要加进去, 不然edbList会少
+		if mussyTradeData[v] == nil {
+			companyData := new(tradeAnalysisModel.ContractCompanyTradeData)
+			companyData.CompanyName = v
+			companyData.DataList = make([]*tradeAnalysisModel.ContractCompanyTradeDataList, 0)
+			companyTradeData = append(companyTradeData, companyData)
+			continue
+		}
+		companyTradeData = append(companyTradeData, mussyTradeData[v])
 	}
 	return
 }