feat: add real detail views for stats pages

This commit is contained in:
liuwei
2026-04-13 17:09:21 +08:00
parent 29dc59c3f1
commit 299a32fa16
4 changed files with 182 additions and 5 deletions

View File

@@ -76,6 +76,37 @@ def api_group_stats():
return jsonify({"success": False, "error": str(e)}), 500
@stats_bp.route('/api/user_stats/<path:user_id>')
@login_required
def api_user_stats_detail(user_id):
try:
server = current_app.dashboard_server
days = request.args.get('days', 30, type=int)
summary = server.stats_db.get_user_plugin_summary(user_id, days)
plugin_stats = server.stats_db.get_user_plugin_stats(user_id, days, limit=10)
success_rate = round(
(summary["success_calls"] / summary["total_calls"] * 100),
2
) if summary["total_calls"] else 0.0
return jsonify({
"success": True,
"data": {
"user_id": user_id,
"user_name": server.contact_manager.get_nickname(user_id) or user_id,
"days": days,
"summary": {
**summary,
"success_rate": success_rate,
},
"plugin_stats": plugin_stats,
}
})
except Exception as e:
logger.error(f"获取用户统计详情失败: {e}")
return jsonify({"success": False, "error": str(e)}), 500
@stats_bp.route('/api/plugin_stats')
@login_required
def api_plugin_stats():