diff --git a/database/Web/Web_App.sqlite b/database/Web/Web_App.sqlite index 9daf785..28e7df1 100644 Binary files a/database/Web/Web_App.sqlite and b/database/Web/Web_App.sqlite differ diff --git a/web/routes/tactics.py b/web/routes/tactics.py index b56235c..dcf5d5c 100644 --- a/web/routes/tactics.py +++ b/web/routes/tactics.py @@ -52,11 +52,40 @@ def api_analyze(): 'kd': total_kd / count if count else 0, 'adr': total_adr / count if count else 0 } + + # 4. Map Stats Calculation + map_stats = {} # {map_name: {'count': 0, 'wins': 0}} + total_shared_matches = len(shared_matches) + + for m in shared_matches: + map_name = m['map_name'] + if map_name not in map_stats: + map_stats[map_name] = {'count': 0, 'wins': 0} + + map_stats[map_name]['count'] += 1 + if m['is_win']: + map_stats[map_name]['wins'] += 1 + + # Convert to list for frontend + map_stats_list = [] + for k, v in map_stats.items(): + win_rate = (v['wins'] / v['count'] * 100) if v['count'] > 0 else 0 + map_stats_list.append({ + 'map_name': k, + 'count': v['count'], + 'wins': v['wins'], + 'win_rate': win_rate + }) + + # Sort by count desc + map_stats_list.sort(key=lambda x: x['count'], reverse=True) return jsonify({ 'players': player_data, 'shared_matches': [dict(m) for m in shared_matches], - 'avg_stats': avg_stats + 'avg_stats': avg_stats, + 'map_stats': map_stats_list, + 'total_shared_matches': total_shared_matches }) # API: Save Board diff --git a/web/services/stats_service.py b/web/services/stats_service.py index aefa487..8a9fb3e 100644 --- a/web/services/stats_service.py +++ b/web/services/stats_service.py @@ -345,7 +345,6 @@ class StatsService: GROUP BY m.match_id HAVING COUNT(DISTINCT mp.steam_id_64) = ? ORDER BY m.start_time DESC - LIMIT 20 """ args = list(steam_ids) diff --git a/web/templates/tactics/index.html b/web/templates/tactics/index.html index 020ea0d..3f06454 100644 --- a/web/templates/tactics/index.html +++ b/web/templates/tactics/index.html @@ -91,101 +91,154 @@
| Map | -Score | -Result | +Map | +Score | +Result |
|---|---|---|---|---|---|
| - | - | + | |||
| + | + | + + |
无共同比赛记录
+| Map | +Matches | +Wins | +Win Rate | +
|---|---|---|---|
| + | + | + |
+
+
+
+
+
+
+ |
+