From bcfcbfeef05c89c1f697946518dab85074d1380a Mon Sep 17 00:00:00 2001 From: spark Date: Sun, 9 Feb 2025 15:29:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(stock):=E4=BC=98=E5=8C=96=E8=82=A1=E7=A5=A8?= =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加股票代码有效性验证 - 改进关注失败时的错误处理和用户提示 - 修复可能的 nil pointer dereference 问题 --- backend/data/stock_data_api.go | 8 ++++++-- frontend/src/components/stock.vue | 14 +++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go index cc05ce9..ada06e3 100644 --- a/backend/data/stock_data_api.go +++ b/backend/data/stock_data_api.go @@ -8,6 +8,7 @@ import ( "bytes" "context" "encoding/json" + "errors" "fmt" "github.com/PuerkitoBio/goquery" "github.com/chromedp/chromedp" @@ -291,6 +292,9 @@ func (receiver StockDataApi) GetStockCodeRealTimeData(StockCodes ...string) (*[] stockInfos := make([]StockInfo, 0) str := GB18030ToUTF8(resp.Body()) dataStr := strutil.SplitEx(str, "\n", true) + if len(dataStr) == 0 { + return &[]StockInfo{}, errors.New("获取股票信息失败,请检查股票代码是否正确") + } for _, data := range dataStr { //logger.SugaredLogger.Info(data) stockData, err := ParseFullSingleStockData(data) @@ -318,8 +322,8 @@ func (receiver StockDataApi) GetStockCodeRealTimeData(StockCodes ...string) (*[] func (receiver StockDataApi) Follow(stockCode string) string { logger.SugaredLogger.Infof("Follow %s", stockCode) stockInfos, err := receiver.GetStockCodeRealTimeData(stockCode) - if err != nil { - logger.SugaredLogger.Error(err.Error()) + if err != nil || len(*stockInfos) == 0 { + logger.SugaredLogger.Error(err) return "关注失败" } stockInfo := (*stockInfos)[0] diff --git a/frontend/src/components/stock.vue b/frontend/src/components/stock.vue index 896a02e..03b2051 100644 --- a/frontend/src/components/stock.vue +++ b/frontend/src/components/stock.vue @@ -231,12 +231,20 @@ function isTradingTime() { } function AddStock(){ + if (!data?.code) { + message.error("请输入有效股票代码"); + return; + } if (!stocks.value.includes(data.code)) { - stocks.value.push(data.code) Follow(data.code).then(result => { - message.success(result) + if(result==="关注成功"){ + stocks.value.push(data.code) + message.success(result) + monitor(); + }else{ + message.error(result) + } }) - monitor() }else{ message.error("已经关注了") }