From d9ce3ce33e67e127cb92edd5cd0eff03adf23e18 Mon Sep 17 00:00:00 2001 From: liuwei Date: Wed, 15 Apr 2026 17:28:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=AA=E8=A1=A8=E7=9B=98?= =?UTF-8?q?=E6=91=98=E8=A6=81=E6=8E=A5=E5=8F=A3Decimal=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 变更项: 1. 修复 /api/dashboard_summary 中 success_rate 为 Decimal 与 float 混算导致的异常。 2. 将 success_rate 与 avg_response_time 统一转换为 float,避免后续健康分计算类型冲突。 3. 恢复首页热门信息接口返回,避免因接口失败导致榜单空白。 --- db/stats_db.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/db/stats_db.py b/db/stats_db.py index 49efba7..dd82e28 100644 --- a/db/stats_db.py +++ b/db/stats_db.py @@ -442,9 +442,9 @@ class StatsDBOperator(BaseDBOperator): WHERE stat_date >= %s """ 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']: - 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. 活跃用户数 active_users_sql = """ @@ -489,7 +489,9 @@ class StatsDBOperator(BaseDBOperator): WHERE stat_date >= %s """ 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 群渗透率(活跃群内,触发人数 / 群成员数 的均值) group_penetration_sql = """