feat: 同一交易日内可随时重新生成报告

This commit is contained in:
Sakurasan
2026-09-01 16:16:45 +08:00
parent 35ea82863f
commit 8b43b57bb2
+2 -26
View File
@@ -35,21 +35,8 @@ def _has_ai_report(trade_date: str) -> bool:
def _can_trigger(trade_date: str) -> tuple[bool, str]:
"""检查是否可以触发分析(12小时频率限制)"""
conn = get_connection()
try:
row = conn.execute(
"SELECT created_at FROM ai_reports WHERE trade_date = ? ORDER BY id DESC LIMIT 1",
(trade_date,)
).fetchone()
if row:
last_time = datetime.strptime(row["created_at"], "%Y-%m-%d %H:%M:%S")
now = datetime.now(_CST)
if (now - last_time).total_seconds() < 12 * 3600:
return False, "12小时内已触发过,请稍后再试"
return True, ""
finally:
conn.close()
"""检查是否可以触发分析(同一交易日内可随时重新生成)"""
return True, ""
@router.get("/ai-analysis/latest", summary="最新 AI 分析报告")
@@ -111,13 +98,6 @@ async def trigger_analysis():
now = datetime.now(_CST)
trade_date = now.strftime("%Y-%m-%d")
if _has_ai_report(trade_date):
raise HTTPException(status_code=400, detail="今日已有分析报告")
can, msg = _can_trigger(trade_date)
if not can:
raise HTTPException(status_code=429, detail=msg)
from services.ai_service import collect_ai_analysis
result = await collect_ai_analysis(trade_date)
return JSONResponse({"data": result})
@@ -134,10 +114,6 @@ async def regenerate_report(report_id: int):
finally:
conn.close()
can, msg = _can_trigger(trade_date)
if not can:
raise HTTPException(status_code=429, detail=msg)
from services.ai_service import collect_ai_analysis
result = await collect_ai_analysis(trade_date)
return JSONResponse({"data": result})