v1.7.0: 每日定时报告(工作日9:00盘前分析/15:30盘后总结) - 全球市场数据+报告引擎(简版邮件正文+详细版HTML附件)+cron定时+手动触发+发送日志; 修复模拟数据换手率失真

This commit is contained in:
2026-08-20 00:08:39 +08:00
parent 7d8ed3d7de
commit adc54d509f
8 changed files with 631 additions and 6 deletions
+26
View File
@@ -741,6 +741,32 @@ def api_targets_delete(tid):
return jsonify(delete_target(tid))
# ------------------------------------------------------------------ 定时报告
@app.route("/api/report/send", methods=["POST"])
def api_report_send():
"""手动触发定时报告(后台生成 + 邮件)"""
from engine.report import send_daily_report
import threading
body = request.get_json(silent=True) or {}
kind = body.get("kind", "premarket")
def run():
try:
r = send_daily_report(kind)
log.info("report send: %s", r)
except Exception as e:
log.error("report send fail: %s", e)
threading.Thread(target=run, daemon=True).start()
return jsonify({"ok": True, "msg": f"{'盘前分析' if kind == 'premarket' else '盘后总结'}生成已启动,约需 1-2 分钟"})
@app.route("/api/report/log")
def api_report_log():
from engine.report import report_log
return jsonify({"items": report_log()})
# ------------------------------------------------------------------ 数据管理
@app.route("/api/admin/stats")
def api_admin_stats():