diff --git a/services/vmix_json_service.py b/services/vmix_json_service.py index fdc79a5..e6ad9de 100644 --- a/services/vmix_json_service.py +++ b/services/vmix_json_service.py @@ -333,10 +333,7 @@ WHERE m.match_id = %s; conn.close() -def get_vmix_players_goal2(match_id: int): - """запрос для получения игроков, забивших голы, с указанием минут и типа гола (основной, пенальти, автогол) - Иванов 23', 25' (дубли пишуться вместе) - """ +def get_vmix_players_goal(match_id: int): query = """ WITH goal_events AS ( SELECT @@ -426,96 +423,3 @@ ORDER BY COALESCE(h.rn, a.rn); return cur.fetchall() finally: conn.close() - - -def get_vmix_players_goal(match_id: int): - """запрос для получения игроков, забивших голы, с указанием минут и типа гола (основной, пенальти, автогол) - Каждый гол в отдельной строке, дубли по игроку не объединяются - """ - query = """ - WITH goal_events AS ( - SELECT - meu.side, - COALESCE(p.last_name, meu.player_name) AS last_name, - meu.seconds, - meu.id, - meu.type, - CASE - WHEN EXISTS ( - SELECT 1 - FROM match_events_ui m2 - WHERE m2.match_id = meu.match_id - AND m2.type = 'period_start_2h' - AND m2.seconds <= meu.seconds - ) THEN 2 - WHEN EXISTS ( - SELECT 1 - FROM match_events_ui m2 - WHERE m2.match_id = meu.match_id - AND m2.type = 'period_start_1h' - AND m2.seconds <= meu.seconds - ) THEN 1 - ELSE NULL - END AS period_no - FROM match_events_ui meu - LEFT JOIN players p ON p.id = meu.player_id - WHERE meu.match_id = %s - AND meu.type IN ('goal', 'penalty', 'own_goal') - ), - goal_rows AS ( - SELECT - side, - last_name, - seconds, - id, - last_name || ' ' || - ( - CASE - WHEN period_no = 1 AND seconds > 2700 - THEN '45''' || '+' || ((seconds - 2700) / 60)::int::text - - WHEN period_no = 2 AND seconds > 5400 - THEN '90''' || '+' || ((seconds - 5400) / 60)::int::text - - WHEN period_no = 2 - THEN (46 + ((seconds - 2700) / 60)::int)::text || '''' - - ELSE (1 + (seconds / 60)::int)::text || '''' - END - ) || - CASE - WHEN type = 'own_goal' THEN ' (АГ)' - WHEN type = 'penalty' THEN ' (П)' - ELSE '' - END AS player_goal - FROM goal_events - ), - home_rows AS ( - SELECT - ROW_NUMBER() OVER (ORDER BY seconds, id, last_name) AS rn, - player_goal AS player_name1 - FROM goal_rows - WHERE side = 'home' - ), - away_rows AS ( - SELECT - ROW_NUMBER() OVER (ORDER BY seconds, id, last_name) AS rn, - player_goal AS player_name2 - FROM goal_rows - WHERE side = 'away' - ) - SELECT - COALESCE(h.player_name1, '') AS player_name1, - COALESCE(a.player_name2, '') AS player_name2 - FROM home_rows h - FULL OUTER JOIN away_rows a ON a.rn = h.rn - ORDER BY COALESCE(h.rn, a.rn); - """ - - conn = get_connection() - try: - with conn.cursor() as cur: - cur.execute(query, (match_id,)) - return cur.fetchall() - finally: - conn.close()