From 2a3433feffbb080419d66667c4979b4d2cb9854036d39d35b7413f79c4e092de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E5=BF=97=E5=A8=81?= Date: Wed, 13 May 2026 20:23:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E6=95=B0=E6=8D=AE=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/repository/stock_repo.go | 9 ++++++++- web/src/pages/Dashboard.tsx | 18 +++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/server/repository/stock_repo.go b/server/repository/stock_repo.go index 0edd9f9..cd31383 100644 --- a/server/repository/stock_repo.go +++ b/server/repository/stock_repo.go @@ -58,7 +58,11 @@ func (r *StockRepo) GetLatestTradeDate() (string, error) { // 包括: 涨跌统计、涨停跌停列表、百日新高列表 // 使用单条聚合查询替代多次 COUNT 查询,提升性能 func (r *StockRepo) GetSummaryByDate(date string) (*model.DashboardSummary, error) { - summary := &model.DashboardSummary{} + summary := &model.DashboardSummary{ + LimitUpList: []model.StockRank{}, + LimitDownList: []model.StockRank{}, + High100List: []model.StockRank{}, + } // 聚合统计: 总数、上涨、下跌、平盘、总成交额、平均涨跌幅 var agg struct { @@ -157,6 +161,9 @@ func (r *StockRepo) GetHigh100ByDate(date string) ([]model.StockRank, error) { LEFT JOIN stock_info si ON t.code = si.code ORDER BY t.pct_change DESC `, date, date, date).Scan(&list) + if list == nil { + list = []model.StockRank{} + } return list, nil } diff --git a/web/src/pages/Dashboard.tsx b/web/src/pages/Dashboard.tsx index 7cc25fb..82e5848 100644 --- a/web/src/pages/Dashboard.tsx +++ b/web/src/pages/Dashboard.tsx @@ -53,7 +53,11 @@ export default function Dashboard() { ); } - if (!summary) return
加载失败
; + if (!summary) return
无数据
; + + const upList = summary.limit_up_list || []; + const downList = summary.limit_down_list || []; + const highList = summary.high_100_list || []; return (
@@ -65,20 +69,20 @@ export default function Dashboard() {
- + - +
- +