summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/services
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-07-27 09:21:36 +0200
committerPaul-Christian Volkmer2023-07-27 09:21:36 +0200
commitb43b85a5b5ad1ecff8c84baf21dd808443e05ed8 (patch)
tree59354ce798f18d33667af45c09b6a97df7be180f /src/main/java/DNPM/services
parente31592dae985d3ecbda30fe0e5ba5861b43866b3 (diff)
Issue #37: Methoden um nur aktive Studien zu erhalten
Diffstat (limited to 'src/main/java/DNPM/services')
-rw-r--r--src/main/java/DNPM/services/DefaultStudienService.java21
-rw-r--r--src/main/java/DNPM/services/StudienService.java15
2 files changed, 32 insertions, 4 deletions
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<Studie> 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<Studie> 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<Studie> findActive() {
+ return findAll().stream().filter(Studie::isActive).collect(Collectors.toList());
+ }
+
+ @Override
+ public List<Studie> 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<Studie> findByQuery(String query);
+ /**
+ * Übergibt eine Liste mit aktiven Studien
+ *
+ * @return Liste mit aktiven Studien
+ */
+ List<Studie> 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<Studie> findActiveByQuery(String query);
+
}