crypto.ai/cryptoai/routes/adata.py
2025-05-13 23:58:30 +08:00

106 lines
3.1 KiB
Python

import json
import logging
from fastapi import APIRouter, Depends, HTTPException, status, Body, Query, Path
from cryptoai.api.adata_api import AStockAPI
from cryptoai.utils.db_manager import get_db_manager
# 创建路由
router = APIRouter()
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
@router.get("/stock/search")
async def search_stock(key: str, limit: int = 10):
manager = get_db_manager()
result = manager.search_stock(key, limit)
return result
@router.get("/stock/base", summary="获取股票基础信息")
async def get_stock_base(stock_code: str):
api = AStockAPI()
result = {}
try:
# 获取股本信息
stock_shares = api.get_stock_shares(stock_code)
result["stock_shares"] = json.loads(stock_shares.to_json(orient="records"))
# 获取概念板块
concept_east = api.get_concept_east(stock_code)
result["concept_east"] = json.loads(concept_east.to_json(orient="records"))
# 获取板块
plate_east = api.get_plate_east(stock_code)
result["plate_east"] = json.loads(plate_east.to_json(orient="records"))
except Exception as e:
logger.error(f"获取股票基础信息失败: {e}")
return {}
return result
@router.get("/stock/data", summary="获取股票数据")
async def get_stock_data(stock_code: str):
api = AStockAPI()
result = {}
try:
# 获取市场数据
market_data = api.get_market_data(stock_code)
result["market_data"] = json.loads(market_data.to_json(orient="records"))
# 获取资金流向数据
flow_data = api.get_capital_flow(stock_code)
result["flow_data"] = json.loads(flow_data.to_json(orient="records"))
except Exception as e:
logger.error(f"获取股票数据失败: {e}")
return {}
return result
@router.get("/stock/data/all", summary="获取所有股票数据")
async def get_stock_data_all(stock_code: str):
result = {}
try:
api = AStockAPI()
#获取股本信息
stock_shares = api.get_stock_shares(stock_code)
result["stock_shares"] = json.loads(stock_shares.to_json(orient="records"))
# 获取概念板块
concept_east = api.get_concept_east(stock_code)
result["concept_east"] = json.loads(concept_east.to_json(orient="records"))
# 获取板块
plate_east = api.get_plate_east(stock_code)
result["plate_east"] = json.loads(plate_east.to_json(orient="records"))
# 获取市场数据
market_data = api.get_market_data(stock_code)
result["market_data"] = json.loads(market_data.to_json(orient="records"))
# 获取分钟线数据
min_data = api.get_market_min_data(stock_code)
result["min_data"] = json.loads(min_data.to_json(orient="records"))
# 获取资金流向数据
flow_data = api.get_capital_flow(stock_code)
result["flow_data"] = json.loads(flow_data.to_json(orient="records"))
except Exception as e:
logger.error(f"获取股票数据失败: {e}")
return {}
return result