You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.4 KiB

package api
import (
"WechatGateWay/global"
"github.com/jinzhu/gorm"
"log"
)
/*
*
@author: sre
@date: 2022/9/12 0012
@desc: todo
*
*/
type BinancePrice struct {
gorm.Model
Symbol string
Price float64
}
// TableName 自定义表名
func (BinancePrice) TableName() string {
return "BinancePrice"
}
func GetBinanceLatestPrice(symbol string) float64 {
var binancePrice BinancePrice
global.DB.Where("symbol = ?", symbol).Last(&binancePrice)
return binancePrice.Price
}
func GetBinanceLatestPrices(symbol string) []BinancePrice {
var binancePrices []BinancePrice
//global.DB.Where("symbol = ? ", symbol).Find(&binancePrices)
global.DB.Where("symbol = ? ", symbol).Order("id desc").Limit(1000).Find(&binancePrices)
//global.DB.Where("symbol = ? order by id desc", symbol).Limit(30).Find(&binancePrices)
reverseSlice := func(in []BinancePrice) []BinancePrice {
out := make([]BinancePrice, len(in))
for i := range in {
out[i] = in[len(in)-1-i]
}
return out
}
return reverseSlice(binancePrices)
}
func GetSerivers(symbol string) (timeUpdate []string, symbolPrice []float64) {
binancePrices := GetBinanceLatestPrices(symbol)
log.Println("binancePrices: ", len(binancePrices))
for _, binancePrice := range binancePrices {
timeUpdate = append(timeUpdate, binancePrice.UpdatedAt.Format("2006-01-02 15:04:05"))
symbolPrice = append(symbolPrice, binancePrice.Price)
}
return
}