From bc7c67be4affa623fbdc50b892aac7f76cdaba55 Mon Sep 17 00:00:00 2001 From: Moncef STITI Date: Thu, 5 Dec 2024 16:39:22 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liorations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dorfromantik/gui/GameModeSelectionPanel.java | 10 ++++++++-- src/fr/monkhanny/dorfromantik/utils/Database.java | 12 +++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/fr/monkhanny/dorfromantik/gui/GameModeSelectionPanel.java b/src/fr/monkhanny/dorfromantik/gui/GameModeSelectionPanel.java index ccf9988..e00b2ed 100644 --- a/src/fr/monkhanny/dorfromantik/gui/GameModeSelectionPanel.java +++ b/src/fr/monkhanny/dorfromantik/gui/GameModeSelectionPanel.java @@ -92,9 +92,15 @@ public class GameModeSelectionPanel extends JPanel { // Récupérer les dates des spinners Date startDate = (Date) startDateSpinner.getValue(); Date endDate = (Date) endDateSpinner.getValue(); + + // Calculer le lendemain de la date de fin + Calendar cal = Calendar.getInstance(); + cal.setTime(endDate); + cal.add(Calendar.DAY_OF_MONTH, 1); // Ajouter un jour pour obtenir le lendemain + Date nextDay = cal.getTime(); // Le lendemain de endDate // Get paginated series - List series = database.getSeriesByDateRangePaginated(startDate, endDate, + List series = database.getSeriesByDateRangePaginated(startDate, nextDay, currentPage, itemsPerPage); @@ -119,7 +125,7 @@ public class GameModeSelectionPanel extends JPanel { } // Update page label - int totalSeries = database.countSeriesByDateRange(startDate, endDate); + int totalSeries = database.countSeriesByDateRange(startDate, nextDay); int totalPages = (int) Math.ceil((double) totalSeries / itemsPerPage); pageLabel.setText("Page " + currentPage + " / " + totalPages); diff --git a/src/fr/monkhanny/dorfromantik/utils/Database.java b/src/fr/monkhanny/dorfromantik/utils/Database.java index 62cc349..ba86543 100644 --- a/src/fr/monkhanny/dorfromantik/utils/Database.java +++ b/src/fr/monkhanny/dorfromantik/utils/Database.java @@ -166,9 +166,15 @@ public class Database { List series = new ArrayList<>(); try { String query = "SELECT name FROM Series " + - "WHERE creation_date BETWEEN ? AND ? " + - "ORDER BY creation_date DESC " + - "LIMIT ? OFFSET ?"; + "WHERE creation_date BETWEEN ? AND ? " + + "ORDER BY " + + " CASE " + + " WHEN name LIKE 'Série custom%' THEN CAST(REGEXP_SUBSTR(name, '[0-9]+') AS UNSIGNED) " + // Extraction numérique pour 'Série custom' + " ELSE NULL " + + " END ASC, " + // Tri par numéro pour 'Série custom' + " created_by_developer DESC, " + // Tri par développeur ou joueur + " name ASC " + // Tri alphabétique + "LIMIT ? OFFSET ?"; PreparedStatement statement = this.database.prepareStatement(query); statement.setDate(1, new java.sql.Date(startDate.getTime()));