Skip to content
Snippets Groups Projects
Commit 70e4a3ed authored by Julian Horner's avatar Julian Horner
Browse files

Query donation sum with OGM session

parent 8b3508e2
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
package de.dpunkt.myaktion.services; package de.dpunkt.myaktion.services;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
...@@ -18,6 +17,8 @@ import javax.inject.Inject; ...@@ -18,6 +17,8 @@ import javax.inject.Inject;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
import org.hibernate.ogm.OgmSession;
import de.dpunkt.myaktion.model.Campaign; import de.dpunkt.myaktion.model.Campaign;
import de.dpunkt.myaktion.model.Organizer; import de.dpunkt.myaktion.model.Organizer;
import de.dpunkt.myaktion.util.Log.TecLog; import de.dpunkt.myaktion.util.Log.TecLog;
...@@ -25,7 +26,7 @@ import de.dpunkt.myaktion.util.Log.TecLog; ...@@ -25,7 +26,7 @@ import de.dpunkt.myaktion.util.Log.TecLog;
/** /**
* @author Julian * @author Julian
*/ */
//@RolesAllowed("Organizer") @RolesAllowed("Organizer")
@Stateless @Stateless
public class CampaignServiceBean implements CampaignService { public class CampaignServiceBean implements CampaignService {
// ---------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------
...@@ -47,12 +48,15 @@ public class CampaignServiceBean implements CampaignService { ...@@ -47,12 +48,15 @@ public class CampaignServiceBean implements CampaignService {
TypedQuery<Campaign> query = TypedQuery<Campaign> query =
entityManager.createNamedQuery(Campaign.findByOrganizer, Campaign.class); entityManager.createNamedQuery(Campaign.findByOrganizer, Campaign.class);
query.setParameter("organizer", getLoggedinOrganizer()); query.setParameter("organizer", getLoggedinOrganizer());
List<Campaign> campaigns = query.getResultList(); List<Campaign> campaigns = query.getResultList();
campaigns.forEach( for (Campaign campaign : campaigns) {
campaign -> campaign.setAmountDonatedSoFar(getAmountDonatedSoFar(campaign))); campaign.setAmountDonatedSoFar(getAmountDonatedSoFar(campaign));
}
logger.log(Level.INFO, "Loaded all campaign entities with query " + Campaign.findAll); logger.log(Level.INFO,
"Loaded all campaign entities with query " + Campaign.findByOrganizer);
return campaigns; return campaigns;
} }
...@@ -62,6 +66,7 @@ public class CampaignServiceBean implements CampaignService { ...@@ -62,6 +66,7 @@ public class CampaignServiceBean implements CampaignService {
@Override @Override
public Campaign addCampaign(Campaign campaign) { public Campaign addCampaign(Campaign campaign) {
Organizer organizer = getLoggedinOrganizer(); Organizer organizer = getLoggedinOrganizer();
campaign.setOrganizer(organizer); campaign.setOrganizer(organizer);
entityManager.persist(campaign); entityManager.persist(campaign);
...@@ -98,14 +103,13 @@ public class CampaignServiceBean implements CampaignService { ...@@ -98,14 +103,13 @@ public class CampaignServiceBean implements CampaignService {
// ---------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------
private BigDecimal getAmountDonatedSoFar(Campaign campaign) { private Double getAmountDonatedSoFar(Campaign campaign) {
TypedQuery<BigDecimal> query = OgmSession session = entityManager.unwrap(OgmSession.class);
entityManager.createNamedQuery(Campaign.getAmountDonatedSoFar, BigDecimal.class);
query.setParameter("campaign", campaign);
BigDecimal result = query.getSingleResult(); Double result = session.createNamedQuery(Campaign.getAmountDonatedSoFar, Double.class)
.setParameter("campaign", campaign).uniqueResult();
if (result == null) if (result == null)
result = BigDecimal.ZERO; result = 0d;
return result; return result;
} }
...@@ -113,9 +117,11 @@ public class CampaignServiceBean implements CampaignService { ...@@ -113,9 +117,11 @@ public class CampaignServiceBean implements CampaignService {
// ---------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------
private Organizer getLoggedinOrganizer() { private Organizer getLoggedinOrganizer() {
String organizerEmail = sessionContext.getCallerPrincipal().getName(); String organizerEmail = sessionContext.getCallerPrincipal().getName();
Organizer organizer = entityManager.createNamedQuery(Organizer.findByEmail, Organizer.class) Organizer organizer = entityManager.createNamedQuery(Organizer.findByEmail, Organizer.class)
.setParameter("email", organizerEmail).getSingleResult(); .setParameter("email", organizerEmail).getSingleResult();
return organizer; return organizer;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment