mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
- 重构市场新闻和事件日历的处理逻辑,使用 gjson 解析 JSON 数据 - 优化股票筛选工具的结果展示,生成 Markdown 表格 - 改进 K 线数据的处理和展示方式 - 调整 OpenAI API 调用逻辑,增加工具函数验证
60 lines
2.8 KiB
Go
60 lines
2.8 KiB
Go
package data
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/duke-git/lancet/v2/convertor"
|
|
"go-stock/backend/db"
|
|
"go-stock/backend/logger"
|
|
"testing"
|
|
)
|
|
|
|
func TestSearchStock(t *testing.T) {
|
|
db.Init("../../data/stock.db")
|
|
|
|
res := NewSearchStockApi("算力股;净利润连续3年增长").SearchStock(10)
|
|
data := res["data"].(map[string]any)
|
|
result := data["result"].(map[string]any)
|
|
dataList := result["dataList"].([]any)
|
|
columns := result["columns"].([]any)
|
|
headers := map[string]string{}
|
|
for _, v := range columns {
|
|
//logger.SugaredLogger.Infof("v:%+v", v)
|
|
d := v.(map[string]any)
|
|
//logger.SugaredLogger.Infof("key:%s title:%s dateMsg:%s unit:%s", d["key"], d["title"], d["dateMsg"], d["unit"])
|
|
title := convertor.ToString(d["title"])
|
|
if convertor.ToString(d["dateMsg"]) != "" {
|
|
title = title + "[" + convertor.ToString(d["dateMsg"]) + "]"
|
|
}
|
|
if convertor.ToString(d["unit"]) != "" {
|
|
title = title + "(" + convertor.ToString(d["unit"]) + ")"
|
|
}
|
|
headers[d["key"].(string)] = title
|
|
}
|
|
table := &[]map[string]any{}
|
|
for _, v := range dataList {
|
|
//logger.SugaredLogger.Infof("v:%+v", v)
|
|
d := v.(map[string]any)
|
|
tmp := map[string]any{}
|
|
for key, title := range headers {
|
|
//logger.SugaredLogger.Infof("%s:%s", title, convertor.ToString(d[key]))
|
|
tmp[title] = convertor.ToString(d[key])
|
|
}
|
|
*table = append(*table, tmp)
|
|
//logger.SugaredLogger.Infof("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------")
|
|
}
|
|
jsonData, _ := json.Marshal(*table)
|
|
markdownTable, _ := JSONToMarkdownTable(jsonData)
|
|
logger.SugaredLogger.Infof("markdownTable=\n%s", markdownTable)
|
|
}
|
|
|
|
func TestSearchStockApi_HotStrategy(t *testing.T) {
|
|
db.Init("../../data/stock.db")
|
|
res := NewSearchStockApi("").HotStrategy()
|
|
logger.SugaredLogger.Infof("res:%+v", res)
|
|
dataList := res["data"].([]any)
|
|
for _, v := range dataList {
|
|
d := v.(map[string]any)
|
|
logger.SugaredLogger.Infof("v:%+v", d)
|
|
}
|
|
}
|