From ad9bea4c24a282a482aa38aec7a9b0bca8e1582a Mon Sep 17 00:00:00 2001 From: ArvinLovegood Date: Mon, 16 Jun 2025 14:45:59 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=A0=94=E6=8A=A5):=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=AA=E8=82=A1=E7=A0=94=E6=8A=A5=E6=90=9C=E7=B4=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 App.d.ts 和 App.js,为 StockResearchReport 函数添加股票代码参数 - 更新 app_common.go,将 StockResearchReport 方法改为接收股票代码参数 - 修改 market_news_api.go,实现根据股票代码查询研报的逻辑 - 更新 market_news_api_test.go,添加针对具体股票代码的测试用例 - 在前端 StockResearchReportList 组件中增加股票代码搜索功能 --- app_common.go | 4 +-- backend/data/market_news_api.go | 29 ++++++++++------ backend/data/market_news_api_test.go | 2 +- .../components/StockResearchReportList.vue | 34 ++++++++++++++++--- frontend/wailsjs/go/main/App.d.ts | 2 +- frontend/wailsjs/go/main/App.js | 4 +-- 6 files changed, 54 insertions(+), 21 deletions(-) diff --git a/app_common.go b/app_common.go index 14351ec..c557435 100644 --- a/app_common.go +++ b/app_common.go @@ -14,6 +14,6 @@ func (a *App) LongTigerRank(date string) *[]models.LongTigerRankData { return data.NewMarketNewsApi().LongTiger(date) } -func (a *App) StockResearchReport() []any { - return data.NewMarketNewsApi().StockResearchReport(7) +func (a *App) StockResearchReport(stockCode string) []any { + return data.NewMarketNewsApi().StockResearchReport(stockCode, 7) } diff --git a/backend/data/market_news_api.go b/backend/data/market_news_api.go index 4a47212..b90fd6f 100644 --- a/backend/data/market_news_api.go +++ b/backend/data/market_news_api.go @@ -378,7 +378,15 @@ func (m MarketNewsApi) LongTiger(date string) *[]models.LongTigerRankData { return ranks } -func (m MarketNewsApi) StockResearchReport(days int) []any { +func (m MarketNewsApi) StockResearchReport(stockCode string, days int) []any { + beginDate := time.Now().Add(-time.Duration(days) * 24 * time.Hour).Format("2006-01-02") + endDate := time.Now().Format("2006-01-02") + if strutil.ContainsAny(stockCode, []string{"."}) { + stockCode = strings.Split(stockCode, ".")[0] + beginDate = time.Now().Add(-time.Duration(days) * 365 * time.Hour).Format("2006-01-02") + } + + logger.SugaredLogger.Infof("StockResearchReport-stockCode:%s", stockCode) type Req struct { BeginTime string `json:"beginTime"` @@ -397,8 +405,7 @@ func (m MarketNewsApi) StockResearchReport(days int) []any { } url := "https://reportapi.eastmoney.com/report/list2" - beginDate := time.Now().Add(-time.Duration(days) * 24 * time.Hour).Format("2006-01-02") - endDate := time.Now().Format("2006-01-02") + logger.SugaredLogger.Infof("beginDate:%s endDate:%s", beginDate, endDate) resp, err := resty.New().SetTimeout(time.Duration(15)*time.Second).R(). SetHeader("Host", "reportapi.eastmoney.com"). @@ -407,13 +414,15 @@ func (m MarketNewsApi) StockResearchReport(days int) []any { SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0"). SetHeader("Content-Type", "application/json"). SetBody(&Req{ - BeginTime: beginDate, - EndTime: endDate, - PageNo: 1, - PageSize: 50, - P: 1, - PageNum: 1, - PageNumber: 1, + Code: stockCode, + IndustryCode: "*", + BeginTime: beginDate, + EndTime: endDate, + PageNo: 1, + PageSize: 50, + P: 1, + PageNum: 1, + PageNumber: 1, }).Post(url) respMap := map[string]any{} diff --git a/backend/data/market_news_api_test.go b/backend/data/market_news_api_test.go index bfa0069..032aa6e 100644 --- a/backend/data/market_news_api_test.go +++ b/backend/data/market_news_api_test.go @@ -67,7 +67,7 @@ func TestLongTiger(t *testing.T) { func TestStockResearchReport(t *testing.T) { db.Init("../../data/stock.db") - resp := NewMarketNewsApi().StockResearchReport(7) + resp := NewMarketNewsApi().StockResearchReport("600584.sh", 7) for _, a := range resp { logger.SugaredLogger.Debugf("value: %+v", a) } diff --git a/frontend/src/components/StockResearchReportList.vue b/frontend/src/components/StockResearchReportList.vue index 4645ed4..2365483 100644 --- a/frontend/src/components/StockResearchReportList.vue +++ b/frontend/src/components/StockResearchReportList.vue @@ -1,24 +1,27 @@