修复首页热门信息为空问题并增加历史兜底
变更项: 1. 保留热门用户/热门群组/热门插件逻辑,未移除任何热门模块。 2. 为热门数据增加兜底策略:最近N天无数据时自动回退到全量历史Top5。 3. 覆盖插件、用户、群组三类热门榜单,避免首页出现整块空表。
This commit is contained in:
@@ -533,7 +533,7 @@ class StatsDBOperator(BaseDBOperator):
|
||||
latency_score = max(0, min(100, ((5000 - avg_response_time) / 4500) * 100))
|
||||
group_health_score = (success_rate * 0.7) + (latency_score * 0.3)
|
||||
|
||||
# 7. 最常用的插件
|
||||
# 7. 最常用的插件(优先统计窗口,无数据时回退全量)
|
||||
top_plugins_sql = """
|
||||
SELECT plugin_name, SUM(total_calls) as total_calls
|
||||
FROM t_plugin_stats
|
||||
@@ -543,8 +543,17 @@ class StatsDBOperator(BaseDBOperator):
|
||||
LIMIT 5
|
||||
"""
|
||||
top_plugins = self.execute_query(top_plugins_sql, (start_date_str,)) or []
|
||||
|
||||
# 8. 最活跃的用户
|
||||
if not top_plugins:
|
||||
top_plugins_all_sql = """
|
||||
SELECT plugin_name, SUM(total_calls) as total_calls
|
||||
FROM t_plugin_stats
|
||||
GROUP BY plugin_name
|
||||
ORDER BY total_calls DESC
|
||||
LIMIT 5
|
||||
"""
|
||||
top_plugins = self.execute_query(top_plugins_all_sql) or []
|
||||
|
||||
# 8. 最活跃的用户(优先统计窗口,无数据时回退全量)
|
||||
top_users_sql = """
|
||||
SELECT user_id, SUM(total_calls) as total_calls
|
||||
FROM t_user_stats
|
||||
@@ -554,8 +563,17 @@ class StatsDBOperator(BaseDBOperator):
|
||||
LIMIT 5
|
||||
"""
|
||||
top_users = self.execute_query(top_users_sql, (start_date_str,)) or []
|
||||
|
||||
# 9. 最活跃的群组
|
||||
if not top_users:
|
||||
top_users_all_sql = """
|
||||
SELECT user_id, SUM(total_calls) as total_calls
|
||||
FROM t_user_stats
|
||||
GROUP BY user_id
|
||||
ORDER BY total_calls DESC
|
||||
LIMIT 5
|
||||
"""
|
||||
top_users = self.execute_query(top_users_all_sql) or []
|
||||
|
||||
# 9. 最活跃的群组(优先统计窗口,无数据时回退全量)
|
||||
top_groups_sql = """
|
||||
SELECT group_id, SUM(total_calls) as total_calls
|
||||
FROM t_group_stats
|
||||
@@ -565,6 +583,15 @@ class StatsDBOperator(BaseDBOperator):
|
||||
LIMIT 5
|
||||
"""
|
||||
top_groups = self.execute_query(top_groups_sql, (start_date_str,)) or []
|
||||
if not top_groups:
|
||||
top_groups_all_sql = """
|
||||
SELECT group_id, SUM(total_calls) as total_calls
|
||||
FROM t_group_stats
|
||||
GROUP BY group_id
|
||||
ORDER BY total_calls DESC
|
||||
LIMIT 5
|
||||
"""
|
||||
top_groups = self.execute_query(top_groups_all_sql) or []
|
||||
|
||||
# 返回汇总数据
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user