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"
"fmt"
"log"
"math"
"sync"
"time"
@@ -95,18 +96,27 @@ func (s *StockSyncService) doSync(ctx context.Context) (int, error) {
records := make([]models.StockDailyQuote, 0, len(quotes))
for _, q := range quotes {
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{
Symbol: q.Symbol,
Name: q.DisplayName(),
TradeDate: tradeDate,
Open: q.Open,
High: q.High,
Low: q.Low,
Close: q.Close,
PrevClose: q.PrevClose,
Open: open,
High: high,
Low: low,
Close: close,
PrevClose: prevClose,
Volume: q.Volume,
Amount: q.Amount,
ChangePct: q.ChangePct(),
ChangePct: changePct,
TurnoverRate: q.TurnoverRate(),
Region: q.Region,
})
@@ -140,3 +150,7 @@ func today() time.Time {
func msToDate(ms int64) time.Time {
return time.UnixMilli(ms).In(chinaLoc).Truncate(24 * time.Hour)
}
func round2(v float64) float64 {
return math.Round(v*100) / 100
}