Amélioration du code et des menus
This commit is contained in:
@@ -133,14 +133,19 @@ public class Database {
|
||||
}
|
||||
|
||||
// New method to count series within a date range
|
||||
public int countSeriesByDateRange(Date startDate, Date endDate) {
|
||||
public int countSeriesByDateRange(Date startDate, Date endDate, boolean onlyDeveloperCreated) {
|
||||
int count = 0;
|
||||
try {
|
||||
String query = "SELECT COUNT(*) as series_count FROM Series WHERE creation_date BETWEEN ? AND ?";
|
||||
// Construire la requête SQL en fonction du filtre "created_by_developer"
|
||||
String query = "SELECT COUNT(*) as series_count FROM Series WHERE creation_date BETWEEN ? AND ? " +
|
||||
(onlyDeveloperCreated ? "AND created_by_developer = TRUE " : "");
|
||||
|
||||
// Préparer l'instruction
|
||||
PreparedStatement statement = this.database.prepareStatement(query);
|
||||
statement.setDate(1, new java.sql.Date(startDate.getTime()));
|
||||
statement.setDate(2, new java.sql.Date(endDate.getTime()));
|
||||
|
||||
|
||||
// Exécuter la requête et récupérer le résultat
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
if (resultSet.next()) {
|
||||
count = resultSet.getInt("series_count");
|
||||
@@ -150,38 +155,42 @@ public class Database {
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
// New method to get paginated series within a date range
|
||||
public List<String> getSeriesByDateRangePaginated(Date startDate, Date endDate,
|
||||
int page, int itemsPerPage) {
|
||||
List<String> series = new ArrayList<>();
|
||||
try {
|
||||
String query = "SELECT name FROM Series " +
|
||||
int page, int itemsPerPage,
|
||||
boolean onlyDeveloperCreated) {
|
||||
List<String> series = new ArrayList<>();
|
||||
try {
|
||||
String query = "SELECT name FROM Series " +
|
||||
"WHERE creation_date BETWEEN ? AND ? " +
|
||||
(onlyDeveloperCreated ? "AND created_by_developer = TRUE " : "") +
|
||||
"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'
|
||||
" WHEN name LIKE 'Série custom%' THEN CAST(REGEXP_SUBSTR(name, '[0-9]+') AS UNSIGNED) " +
|
||||
" 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
|
||||
" END ASC, " +
|
||||
" created_by_developer DESC, " +
|
||||
" name ASC " +
|
||||
"LIMIT ? OFFSET ?";
|
||||
|
||||
PreparedStatement statement = this.database.prepareStatement(query);
|
||||
statement.setDate(1, new java.sql.Date(startDate.getTime()));
|
||||
statement.setDate(2, new java.sql.Date(endDate.getTime()));
|
||||
statement.setInt(3, itemsPerPage);
|
||||
statement.setInt(4, (page - 1) * itemsPerPage);
|
||||
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
while (resultSet.next()) {
|
||||
series.add(resultSet.getString("name"));
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
PreparedStatement statement = this.database.prepareStatement(query);
|
||||
statement.setDate(1, new java.sql.Date(startDate.getTime()));
|
||||
statement.setDate(2, new java.sql.Date(endDate.getTime()));
|
||||
statement.setInt(3, itemsPerPage);
|
||||
statement.setInt(4, (page - 1) * itemsPerPage);
|
||||
|
||||
ResultSet resultSet = statement.executeQuery();
|
||||
while (resultSet.next()) {
|
||||
series.add(resultSet.getString("name"));
|
||||
}
|
||||
return series;
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return series;
|
||||
}
|
||||
|
||||
|
||||
// Optional: Method to get series within a specific number of days
|
||||
public List<String> getRecentSeries(int days) {
|
||||
|
Reference in New Issue
Block a user