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
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
|
|
}
|