From 1acccc70dcdc054f19a134d3c4227ff247183e3b Mon Sep 17 00:00:00 2001 From: Anton Micke Date: Fri, 30 May 2025 15:10:27 +0200 Subject: [PATCH] Add average goal diffs to 2vs2 stats --- .../repository/Ergebnis2vs2Repository.java | 8 ++++++++ .../kickerelo/kickerelo/views/Stat2vs2View.java | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/kickerelo/kickerelo/repository/Ergebnis2vs2Repository.java b/src/main/java/org/kickerelo/kickerelo/repository/Ergebnis2vs2Repository.java index 2d5bee8..8e8f7e9 100644 --- a/src/main/java/org/kickerelo/kickerelo/repository/Ergebnis2vs2Repository.java +++ b/src/main/java/org/kickerelo/kickerelo/repository/Ergebnis2vs2Repository.java @@ -3,6 +3,8 @@ package org.kickerelo.kickerelo.repository; import org.kickerelo.kickerelo.data.Ergebnis2vs2; import org.kickerelo.kickerelo.data.Spieler; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @Repository @@ -16,4 +18,10 @@ public interface Ergebnis2vs2Repository extends JpaRepository("Spieler"); selector.setItems(kickerService.getSpielerEntities()); selector.addValueChangeListener(event -> updateData(selector.getValue())); - add(subheading, selector, generalInfo, frontRateText, frontRate, winRateFrontText, winRateFront, winRateBackText, winRateBack); + add(subheading, selector, generalInfo, frontRateText, frontRate, winRateFrontText, winRateFront, winRateBackText, winRateBack, goalDiffBack, goalDiffFront); } private void updateData(Spieler s) { @@ -45,6 +47,7 @@ public class Stat2vs2View extends VerticalLayout { updateFrontRate(s); updateFrontWinrate(s); updateBackWinrate(s); + updateGoalDiffs(s); } private void updateGeneralInfo(Spieler s) { @@ -78,4 +81,14 @@ public class Stat2vs2View extends VerticalLayout { winRateBack.addThemeVariants((winRate > 0.5f ? ProgressBarVariant.LUMO_SUCCESS : ProgressBarVariant.LUMO_ERROR)); winRateBackText.setText(winRate.isNaN() ? text + "-" : text + String.format("%.2f", winRate * 100) + "%"); } + + private void updateGoalDiffs(Spieler s) { + String text = "Mittlere Tordifferenz hinten: "; + Float backDiff = repo.avgGoalDiffBack(s); + goalDiffBack.setText(backDiff.isNaN() ? text + "-" : text + String.format("%.2f", backDiff)); + text = "Mittlere Tordifferenz vorne: "; + Float frontDiff = repo.avgGoalDiffFront(s); + goalDiffFront.setText(frontDiff.isNaN() ? text + "-" : text + String.format("%.2f", frontDiff)); + + } }