Ver Fonte

fix: 郑商所品种

hsun há 6 meses atrás
pai
commit
773bb57d52

+ 25 - 6
controllers/trade_analysis/trade_analysis.go

@@ -201,8 +201,6 @@ func (this *TradeAnalysisController) GetTradeClassifyList() {
 		}
 	}
 
-	// TODO:郑商所的单独处理
-
 	// 搜索品种
 	var cond string
 	var pars []interface{}
@@ -224,7 +222,22 @@ func (this *TradeAnalysisController) GetTradeClassifyList() {
 	}
 
 	resp := make([]*tradeAnalysisModel.BaseFromTradeClassifyItem, 0)
+	classifyExist := make(map[string]bool)
 	for _, v := range list {
+		// 郑商所
+		if v.Exchange == tradeAnalysisModel.TradeExchangeZhengzhou {
+			name := trade_analysis.GetZhengzhouClassifyName(v.ClassifyName)
+			if classifyExist[name] {
+				continue
+			}
+			classifyExist[name] = true
+			resp = append(resp, &tradeAnalysisModel.BaseFromTradeClassifyItem{
+				ClassifyName: name,
+				Exchange:     v.Exchange,
+				ExchangeName: exchangeName[v.Exchange],
+			})
+			continue
+		}
 		resp = append(resp, &tradeAnalysisModel.BaseFromTradeClassifyItem{
 			ClassifyName: v.ClassifyName,
 			Exchange:     v.Exchange,
@@ -300,8 +313,6 @@ func (this *TradeAnalysisController) GetTradeContractList() {
 		}
 	}
 
-	// TODO:郑商所的单独处理
-
 	// 搜索合约
 	var cond string
 	var pars []interface{}
@@ -310,9 +321,10 @@ func (this *TradeAnalysisController) GetTradeContractList() {
 		cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().Exchange)
 		pars = append(pars, exchange)
 	}
+	// 郑商所品种名称在列表中过滤
 	if classifyName != "" {
-		cond += fmt.Sprintf(` AND %s = ?`, classifyOb.Cols().ClassifyName)
-		pars = append(pars, classifyName)
+		cond += fmt.Sprintf(` AND ((%s = ? AND %s <> ?) OR %s = ?)`, classifyOb.Cols().ClassifyName, classifyOb.Cols().Exchange, classifyOb.Cols().Exchange)
+		pars = append(pars, classifyName, tradeAnalysisModel.TradeExchangeZhengzhou, tradeAnalysisModel.TradeExchangeZhengzhou)
 	}
 	if contractName != "" {
 		cond += fmt.Sprintf(` AND %s LIKE ?`, classifyOb.Cols().ClassifyType)
@@ -332,6 +344,13 @@ func (this *TradeAnalysisController) GetTradeContractList() {
 		})
 	}
 	for _, v := range list {
+		// 郑商所
+		if classifyName != "" && v.Exchange == tradeAnalysisModel.TradeExchangeZhengzhou {
+			name := trade_analysis.GetZhengzhouClassifyName(v.ClassifyName)
+			if classifyName != name {
+				continue
+			}
+		}
 		resp = append(resp, &tradeAnalysisModel.BaseFromTradeContractItem{
 			ClassifyName: v.ClassifyName,
 			ClassifyType: v.ClassifyType,

+ 4 - 0
models/data_manage/trade_analysis/trade_classify.go

@@ -129,3 +129,7 @@ type BaseFromTradeContractItem struct {
 	LatestDate   string `description:"最近数据的日期"`
 	CreateTime   string `description:"创建时间"`
 }
+
+const (
+	TradeExchangeZhengzhou = "zhengzhou"
+)

+ 6 - 6
services/data/trade_analysis/trade_analysis.go

@@ -75,11 +75,11 @@ func GetClassifyName(lang string) (list trade_analysis.TradeClassifyNameListSort
 	currDate := time.Now().Format(utils.FormatDate)
 	for k, v := range exchanges {
 		tmp := trade_analysis.TradeClassifyNameList{
-			Exchange: v,
+			Exchange:   v,
 			ExchangeEn: exchangesEn[v],
-			Items:    nil,
-			Sort:     exchangesSortMap[k],
-			CurrDate: currDate,
+			Items:      nil,
+			Sort:       exchangesSortMap[k],
+			CurrDate:   currDate,
 		}
 		nameList, ok := classifyExchangeMap[k]
 		if !ok {
@@ -101,7 +101,7 @@ func GetClassifyName(lang string) (list trade_analysis.TradeClassifyNameListSort
 		if len(nameList) > 0 {
 			if k == "zhengzhou" {
 				for _, item := range nameList {
-					classifyName := getZhengzhouClassifyName(item.ClassifyName)
+					classifyName := GetZhengzhouClassifyName(item.ClassifyName)
 					tmpItemItem := trade_analysis.TradeClassifyNameListItemItem{
 						ClassifyType: item.ClassifyName,
 					}
@@ -135,7 +135,7 @@ func GetClassifyName(lang string) (list trade_analysis.TradeClassifyNameListSort
 	return
 }
 
-func getZhengzhouClassifyName(code string) (name string) {
+func GetZhengzhouClassifyName(code string) (name string) {
 	if strings.HasPrefix(code, "PTA") {
 		name = "PTA"
 		return