From 975a27a95b8943e3fa7493bf307f4aec98cd96fb Mon Sep 17 00:00:00 2001 From: Anton Micke Date: Wed, 2 Apr 2025 14:28:25 +0200 Subject: [PATCH] In the graphs, show only players with actual games in the category --- .../kickerelo/repository/SpielerRepository.java | 9 +++++++++ .../org/kickerelo/kickerelo/views/Graph1vs1View.java | 7 +++---- .../org/kickerelo/kickerelo/views/Graph2vs2View.java | 6 +++--- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/kickerelo/kickerelo/repository/SpielerRepository.java b/src/main/java/org/kickerelo/kickerelo/repository/SpielerRepository.java index 833de58..5b8dbb3 100644 --- a/src/main/java/org/kickerelo/kickerelo/repository/SpielerRepository.java +++ b/src/main/java/org/kickerelo/kickerelo/repository/SpielerRepository.java @@ -2,11 +2,20 @@ package org.kickerelo.kickerelo.repository; import org.kickerelo.kickerelo.data.Spieler; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; @Repository public interface SpielerRepository extends JpaRepository { Optional findByName(String name); + + @Query("SELECT s FROM Spieler s WHERE EXISTS (SELECT 1 FROM Ergebnis1vs1 e WHERE e.gewinner=s OR e.verlierer=s)") + List getSpielerWith1vs1Games(); + + @Query("SELECT s FROM Spieler s WHERE EXISTS (SELECT 1 FROM Ergebnis2vs2 e " + + "WHERE e.gewinnerVorn=s OR e.verliererVorn=s OR e.gewinnerHinten=s OR e.verliererHinten=s)") + List getSpielerWith2vs2Games(); } diff --git a/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java b/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java index 929e96f..6d86fc6 100644 --- a/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java +++ b/src/main/java/org/kickerelo/kickerelo/views/Graph1vs1View.java @@ -5,20 +5,19 @@ import com.vaadin.flow.component.Unit; import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.router.Route; -import org.kickerelo.kickerelo.service.KickerEloService; +import org.kickerelo.kickerelo.repository.SpielerRepository; @Route("graph1vs1") public class Graph1vs1View extends VerticalLayout { ApexCharts chart1vs1; - public Graph1vs1View(KickerEloService service) { + public Graph1vs1View(SpielerRepository repo) { setSizeFull(); H2 subheading = new H2("1 vs 1 Elo"); - chart1vs1 = new Chart1vs1(service.getSpielerEntities()).build(); + chart1vs1 = new Chart1vs1(repo.getSpielerWith1vs1Games()).build(); chart1vs1.setWidth(100, Unit.PERCENTAGE); chart1vs1.setHeight(100, Unit.PERCENTAGE); add(subheading, chart1vs1); } - } diff --git a/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java b/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java index a03872d..26ad677 100644 --- a/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java +++ b/src/main/java/org/kickerelo/kickerelo/views/Graph2vs2View.java @@ -5,15 +5,15 @@ import com.vaadin.flow.component.Unit; import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.router.Route; -import org.kickerelo.kickerelo.service.KickerEloService; +import org.kickerelo.kickerelo.repository.SpielerRepository; @Route("graph2vs2") public class Graph2vs2View extends VerticalLayout { ApexCharts chart2vs2; - public Graph2vs2View(KickerEloService service) { + public Graph2vs2View(SpielerRepository repo) { setSizeFull(); H2 subheading = new H2("2 vs 2 Elo"); - chart2vs2 = new Chart2vs2(service.getSpielerEntities()).build(); + chart2vs2 = new Chart2vs2(repo.getSpielerWith2vs2Games()).build(); chart2vs2.setWidth(100, Unit.PERCENTAGE); chart2vs2.setHeight(100, Unit.PERCENTAGE);