修复仪表盘摘要接口Decimal类型计算报错

变更项:

1. 修复 /api/dashboard_summary 中 success_rate 为 Decimal 与 float 混算导致的异常。

2. 将 success_rate 与 avg_response_time 统一转换为 float,避免后续健康分计算类型冲突。

3. 恢复首页热门信息接口返回,避免因接口失败导致榜单空白。
This commit is contained in:
liuwei
2026-04-15 17:28:55 +08:00
parent fd21ebf681
commit d9ce3ce33e

View File

@@ -442,9 +442,9 @@ class StatsDBOperator(BaseDBOperator):
WHERE stat_date >= %s WHERE stat_date >= %s
""" """
success_rate_result = self.execute_query(success_rate_sql, (start_date_str,), fetch_one=True) success_rate_result = self.execute_query(success_rate_sql, (start_date_str,), fetch_one=True)
success_rate = 0 success_rate = 0.0
if success_rate_result and success_rate_result['total_calls']: if success_rate_result and success_rate_result['total_calls']:
success_rate = (success_rate_result['success_calls'] / success_rate_result['total_calls']) * 100 success_rate = float((success_rate_result['success_calls'] / success_rate_result['total_calls']) * 100)
# 3. 活跃用户数 # 3. 活跃用户数
active_users_sql = """ active_users_sql = """
@@ -489,7 +489,9 @@ class StatsDBOperator(BaseDBOperator):
WHERE stat_date >= %s WHERE stat_date >= %s
""" """
avg_response_time_result = self.execute_query(avg_response_time_sql, (start_date_str,), fetch_one=True) avg_response_time_result = self.execute_query(avg_response_time_sql, (start_date_str,), fetch_one=True)
avg_response_time = avg_response_time_result['avg_response_time'] if avg_response_time_result and avg_response_time_result['avg_response_time'] else 0 avg_response_time = float(
avg_response_time_result['avg_response_time']
) if avg_response_time_result and avg_response_time_result['avg_response_time'] else 0.0
# 6.1 群渗透率(活跃群内,触发人数 / 群成员数 的均值) # 6.1 群渗透率(活跃群内,触发人数 / 群成员数 的均值)
group_penetration_sql = """ group_penetration_sql = """