v1.7.0: 每日定时报告(工作日9:00盘前分析/15:30盘后总结) - 全球市场数据+报告引擎(简版邮件正文+详细版HTML附件)+cron定时+手动触发+发送日志; 修复模拟数据换手率失真
This commit is contained in:
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user