fix(stock): 同步时价格四舍五入到2位并自己计算 change_pct

This commit is contained in:
2026-07-04 11:35:49 +08:00
parent b8b88e11df
commit 01da4eb370
+20 -6
View File
@@ -4,6 +4,7 @@ import (
"context" "context"
"fmt" "fmt"
"log" "log"
"math"
"sync" "sync"
"time" "time"
@@ -95,18 +96,27 @@ func (s *StockSyncService) doSync(ctx context.Context) (int, error) {
records := make([]models.StockDailyQuote, 0, len(quotes)) records := make([]models.StockDailyQuote, 0, len(quotes))
for _, q := range quotes { for _, q := range quotes {
tradeDate := msToDate(q.Timestamp) tradeDate := msToDate(q.Timestamp)
open := round2(q.Open)
high := round2(q.High)
low := round2(q.Low)
close := round2(q.Close)
prevClose := round2(q.PrevClose)
var changePct float64
if prevClose != 0 {
changePct = (close - prevClose) / prevClose
}
records = append(records, models.StockDailyQuote{ records = append(records, models.StockDailyQuote{
Symbol: q.Symbol, Symbol: q.Symbol,
Name: q.DisplayName(), Name: q.DisplayName(),
TradeDate: tradeDate, TradeDate: tradeDate,
Open: q.Open, Open: open,
High: q.High, High: high,
Low: q.Low, Low: low,
Close: q.Close, Close: close,
PrevClose: q.PrevClose, PrevClose: prevClose,
Volume: q.Volume, Volume: q.Volume,
Amount: q.Amount, Amount: q.Amount,
ChangePct: q.ChangePct(), ChangePct: changePct,
TurnoverRate: q.TurnoverRate(), TurnoverRate: q.TurnoverRate(),
Region: q.Region, Region: q.Region,
}) })
@@ -140,3 +150,7 @@ func today() time.Time {
func msToDate(ms int64) time.Time { func msToDate(ms int64) time.Time {
return time.UnixMilli(ms).In(chinaLoc).Truncate(24 * time.Hour) return time.UnixMilli(ms).In(chinaLoc).Truncate(24 * time.Hour)
} }
func round2(v float64) float64 {
return math.Round(v*100) / 100
}