fix(stock):优化股票关注功能

- 增加股票代码有效性验证
- 改进关注失败时的错误处理和用户提示
- 修复可能的 nil pointer dereference 问题
This commit is contained in:
spark 2025-02-09 15:29:04 +08:00
parent 1dc731de1e
commit bcfcbfeef0
2 changed files with 17 additions and 5 deletions

View File

@ -8,6 +8,7 @@ import (
"bytes" "bytes"
"context" "context"
"encoding/json" "encoding/json"
"errors"
"fmt" "fmt"
"github.com/PuerkitoBio/goquery" "github.com/PuerkitoBio/goquery"
"github.com/chromedp/chromedp" "github.com/chromedp/chromedp"
@ -291,6 +292,9 @@ func (receiver StockDataApi) GetStockCodeRealTimeData(StockCodes ...string) (*[]
stockInfos := make([]StockInfo, 0) stockInfos := make([]StockInfo, 0)
str := GB18030ToUTF8(resp.Body()) str := GB18030ToUTF8(resp.Body())
dataStr := strutil.SplitEx(str, "\n", true) dataStr := strutil.SplitEx(str, "\n", true)
if len(dataStr) == 0 {
return &[]StockInfo{}, errors.New("获取股票信息失败,请检查股票代码是否正确")
}
for _, data := range dataStr { for _, data := range dataStr {
//logger.SugaredLogger.Info(data) //logger.SugaredLogger.Info(data)
stockData, err := ParseFullSingleStockData(data) stockData, err := ParseFullSingleStockData(data)
@ -318,8 +322,8 @@ func (receiver StockDataApi) GetStockCodeRealTimeData(StockCodes ...string) (*[]
func (receiver StockDataApi) Follow(stockCode string) string { func (receiver StockDataApi) Follow(stockCode string) string {
logger.SugaredLogger.Infof("Follow %s", stockCode) logger.SugaredLogger.Infof("Follow %s", stockCode)
stockInfos, err := receiver.GetStockCodeRealTimeData(stockCode) stockInfos, err := receiver.GetStockCodeRealTimeData(stockCode)
if err != nil { if err != nil || len(*stockInfos) == 0 {
logger.SugaredLogger.Error(err.Error()) logger.SugaredLogger.Error(err)
return "关注失败" return "关注失败"
} }
stockInfo := (*stockInfos)[0] stockInfo := (*stockInfos)[0]

View File

@ -231,12 +231,20 @@ function isTradingTime() {
} }
function AddStock(){ function AddStock(){
if (!data?.code) {
message.error("请输入有效股票代码");
return;
}
if (!stocks.value.includes(data.code)) { if (!stocks.value.includes(data.code)) {
stocks.value.push(data.code)
Follow(data.code).then(result => { 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{ }else{
message.error("已经关注了") message.error("已经关注了")
} }