From b43b85a5b5ad1ecff8c84baf21dd808443e05ed8 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 27 Jul 2023 09:21:36 +0200 Subject: Issue #37: Methoden um nur aktive Studien zu erhalten --- .../java/DNPM/services/DefaultStudienService.java | 21 +++++++++++++++++---- src/main/java/DNPM/services/StudienService.java | 15 +++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) (limited to 'src/main/java/DNPM/services') diff --git a/src/main/java/DNPM/services/DefaultStudienService.java b/src/main/java/DNPM/services/DefaultStudienService.java index 82be5e7..e172cc8 100644 --- a/src/main/java/DNPM/services/DefaultStudienService.java +++ b/src/main/java/DNPM/services/DefaultStudienService.java @@ -5,6 +5,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; import java.util.List; +import java.util.stream.Collectors; /** * Standardimplementierung zum Ermitteln von Studien @@ -21,7 +22,7 @@ public class DefaultStudienService implements StudienService { @Override public List findAll() { - var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description FROM studie " + var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description, studie.aktiv FROM studie " + "LEFT JOIN category_entry ce ON ce.version_entry_id = studie.property_version_entry " + "LEFT JOIN property_catalogue_category pcc ON pcc.id = ce.category_id " + "JOIN property_catalogue_version_entry pcve ON pcve.id = studie.property_version_entry " @@ -36,13 +37,14 @@ public class DefaultStudienService implements StudienService { resultSet.getString("code"), resultSet.getString("studien_nummer"), resultSet.getString("shortdesc"), - resultSet.getString("description") + resultSet.getString("description"), + resultSet.getBoolean("aktiv") )); } @Override public List findByQuery(String query) { - var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description FROM studie " + var sql = "SELECT pcc.name, pcv.version_number, TRIM(studie.studien_nummer) AS studien_nummer, studie.startdatum, studie.endedatum, pcve.code, pcve.shortdesc, pcve.description, studie.aktiv FROM studie " + "LEFT JOIN category_entry ce ON ce.version_entry_id = studie.property_version_entry " + "LEFT JOIN property_catalogue_category pcc ON pcc.id = ce.category_id " + "JOIN property_catalogue_version_entry pcve ON pcve.id = studie.property_version_entry " @@ -59,7 +61,18 @@ public class DefaultStudienService implements StudienService { resultSet.getString("code"), resultSet.getString("studien_nummer"), resultSet.getString("shortdesc"), - resultSet.getString("description") + resultSet.getString("description"), + resultSet.getBoolean("aktiv") )); } + + @Override + public List findActive() { + return findAll().stream().filter(Studie::isActive).collect(Collectors.toList()); + } + + @Override + public List findActiveByQuery(String query) { + return findByQuery(query).stream().filter(Studie::isActive).collect(Collectors.toList()); + } } diff --git a/src/main/java/DNPM/services/StudienService.java b/src/main/java/DNPM/services/StudienService.java index dc0187e..c82947d 100644 --- a/src/main/java/DNPM/services/StudienService.java +++ b/src/main/java/DNPM/services/StudienService.java @@ -21,4 +21,19 @@ public interface StudienService { */ List findByQuery(String query); + /** + * Übergibt eine Liste mit aktiven Studien + * + * @return Liste mit aktiven Studien + */ + List findActive(); + + /** + * Übergibt eine Liste mit aktiven Studien, deren (Kurz-)Beschreibung oder Studiennummer den übergebenen Wert enthalten + * + * @param query Wert der enthalten sein muss + * @return Gefilterte Liste mit aktiven Studien + */ + List findActiveByQuery(String query); + } -- cgit v1.2.3