feat: add real detail views for stats pages
This commit is contained in:
@@ -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():
|
||||
|
||||
Reference in New Issue
Block a user