瀏覽代碼

持仓分析类名排序

xiexiaoyuan 2 年之前
父節點
當前提交
d8a9f3f60f
共有 2 個文件被更改,包括 27 次插入7 次删除
  1. 12 1
      models/tables/trade_analysis/trade_analysis.go
  2. 15 6
      services/trade_analysis/trade_analysis.go

+ 12 - 1
models/tables/trade_analysis/trade_analysis.go

@@ -23,11 +23,23 @@ type TradePositionTop struct {
 
 type TradeClassifyNameList struct {
 	Exchange string                      `description:"交易所" json:"exchange"`
+	Sort     int                         `description:"排序字段" json:"sort"`
 	Num      int                         `description:"品种数量" json:"num"`
 	DataTime string                      `description:"最新更新时间" json:"data_time"`
 	Items    []TradeClassifyNameListItem `description:"子类" json:"items"`
 }
+type TradeClassifyNameListSort []TradeClassifyNameList
+func (v TradeClassifyNameListSort) Len() int {
+	return len(v)
+}
+
+func (v TradeClassifyNameListSort) Swap(i, j int) {
+	v[i], v[j] = v[j], v[i]
+}
 
+func (v TradeClassifyNameListSort) Less(i, j int) bool {
+	return v[i].Sort < v[j].Sort
+}
 type TradeClassifyNameListItem struct {
 	ClassifyName string                          `description:"交易分类" json:"classify_name"`
 	Items        []TradeClassifyNameListItemItem `description:"合约代码" json:"items"`
@@ -35,7 +47,6 @@ type TradeClassifyNameListItem struct {
 
 type TradeClassifyNameListItemItem struct {
 	ClassifyType string `json:"classify_type"` //分类名称下的类型
-	Sort         int    `json:"sort"`
 }
 
 type TradeClassifyName struct {

+ 15 - 6
services/trade_analysis/trade_analysis.go

@@ -4,12 +4,13 @@ import (
 	"fmt"
 	"hongze/hongze_yb/models/tables/trade_analysis"
 	"hongze/hongze_yb/utils"
+	"sort"
 	"strings"
 	"sync"
 	"time"
 )
 
-func GetClassifyName() (list []trade_analysis.TradeClassifyNameList, err error, errMsg string) {
+func GetClassifyName() (list trade_analysis.TradeClassifyNameListSort, err error, errMsg string) {
 	//定义交易所
 	exchanges := map[string]string{
 		"zhengzhou": "郑商所",
@@ -18,9 +19,15 @@ func GetClassifyName() (list []trade_analysis.TradeClassifyNameList, err error,
 		"cffex":     "中金所",
 		"ine":       "上期能源",
 	}
+	exchangesSortMap := map[string]int{
+		"zhengzhou": 1,
+		"dalian":    2,
+		"shanghai":  3,
+		"cffex":     4,
+		"ine":       5,
+	}
 	//查询每个交易所的最新更新时间
 	//查询每个交易所下的classifyNameList
-	list = make([]trade_analysis.TradeClassifyNameList, 0)
 	classifyExchangeMap := make(map[string][]trade_analysis.TradeClassifyName)
 	timeMap := make(map[string]string)
 	i := 0
@@ -53,6 +60,7 @@ func GetClassifyName() (list []trade_analysis.TradeClassifyNameList, err error,
 		tmp := trade_analysis.TradeClassifyNameList{
 			Exchange: v,
 			Items:    nil,
+			Sort: exchangesSortMap[k],
 		}
 		nameList, ok := classifyExchangeMap[k]
 		if !ok {
@@ -69,19 +77,17 @@ func GetClassifyName() (list []trade_analysis.TradeClassifyNameList, err error,
 		classifyMap := make(map[string][]trade_analysis.TradeClassifyNameListItemItem)
 		if len(nameList) > 0 {
 			if k == "zhengzhou" {
-				for j, item := range nameList {
+				for _, item := range nameList {
 					classifyName := getZhengzhouClassifyName(item.ClassifyName)
 					tmpItemItem := trade_analysis.TradeClassifyNameListItemItem{
 						ClassifyType: item.ClassifyName,
-						Sort: j+1000*i,
 					}
 					classifyMap[classifyName] = append(classifyMap[classifyName], tmpItemItem)
 				}
 			}else{
-				for j, item := range nameList {
+				for _, item := range nameList {
 					tmpItemItem := trade_analysis.TradeClassifyNameListItemItem{
 						ClassifyType: item.ClassifyType,
-						Sort: j+1000*i,
 					}
 					classifyMap[item.ClassifyName] = append(classifyMap[item.ClassifyName], tmpItemItem)
 				}
@@ -98,6 +104,9 @@ func GetClassifyName() (list []trade_analysis.TradeClassifyNameList, err error,
 		list = append(list, tmp)
 		i ++
 	}
+	if len(list) > 0 {
+		sort.Sort(list)
+	}
 	return
 }