69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package tradsetservice
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"go-admin/common/global"
 | |
| 	"go-admin/common/helper"
 | |
| 	"go-admin/models"
 | |
| 
 | |
| 	"github.com/bytedance/sonic"
 | |
| 	"github.com/go-admin-team/go-admin-core/logger"
 | |
| )
 | |
| 
 | |
| // 获取交易所交易对
 | |
| // symbolType 1:spot 2:future
 | |
| func GetExchangeTradeSets(exchange string, symbolType int) (*[]models.TradeSet, error) {
 | |
| 	var tradeSets []models.TradeSet
 | |
| 	var scanKey string
 | |
| 
 | |
| 	if symbolType == 1 {
 | |
| 		scanKey = fmt.Sprintf(global.TICKER_SPOT, exchange, "*")
 | |
| 	} else if symbolType == 2 {
 | |
| 		scanKey = fmt.Sprintf(global.TICKER_FUTURES, exchange, "*")
 | |
| 	} else {
 | |
| 		return nil, fmt.Errorf("symbolType error")
 | |
| 	}
 | |
| 
 | |
| 	vals, err := helper.DefaultRedis.GetAllKeysAndValues(scanKey)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	for _, val := range vals {
 | |
| 		var tradeSet models.TradeSet
 | |
| 		if err := sonic.Unmarshal([]byte(val), &tradeSet); err != nil {
 | |
| 			logger.Errorf("unmarshal tradeSet err:%v", err)
 | |
| 			continue
 | |
| 		}
 | |
| 		tradeSets = append(tradeSets, tradeSet)
 | |
| 	}
 | |
| 
 | |
| 	return &tradeSets, nil
 | |
| }
 | |
| 
 | |
| // 获取单个交易对
 | |
| func GetExchangeTradeSet(exchange string, symbolType int, symbol string) (*models.TradeSet, error) {
 | |
| 	var tradeSet models.TradeSet
 | |
| 	var scanKey string
 | |
| 
 | |
| 	if symbolType == 1 {
 | |
| 		scanKey = fmt.Sprintf(global.TICKER_SPOT, exchange, symbol)
 | |
| 	} else if symbolType == 2 {
 | |
| 		scanKey = fmt.Sprintf(global.TICKER_FUTURES, exchange, symbol)
 | |
| 	} else {
 | |
| 		return nil, fmt.Errorf("symbolType error")
 | |
| 	}
 | |
| 
 | |
| 	val, err := helper.DefaultRedis.GetString(scanKey)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	if err := sonic.Unmarshal([]byte(val), &tradeSet); err != nil {
 | |
| 		logger.Errorf("unmarshal tradeSet err:%v", err)
 | |
| 		return nil, err
 | |
| 	}
 | |
| 
 | |
| 	return &tradeSet, nil
 | |
| }
 |