1.1 --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Tue Apr 27 16:13:36 2010 +0200
1.2 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Tue Apr 27 17:13:23 2010 +0200
1.3 @@ -2,9 +2,11 @@
1.4
1.5 import cz.frantovo.nekurak.dto.Podnik;
1.6 import cz.frantovo.nekurak.dto.VysledekHlasovani;
1.7 +import cz.frantovo.superDAO.SuperDAO;
1.8 +import java.math.BigInteger;
1.9 import java.util.Collection;
1.10 import java.util.Date;
1.11 -import java.util.logging.Logger;
1.12 +import java.util.List;
1.13 import javax.ejb.LocalBean;
1.14 import javax.ejb.Stateless;
1.15 import javax.persistence.EntityManager;
1.16 @@ -17,12 +19,17 @@
1.17 */
1.18 @Stateless
1.19 @LocalBean
1.20 -public class PodnikDAO {
1.21 +public class PodnikDAO extends SuperDAO {
1.22
1.23 - private static final Logger log = Logger.getLogger(PodnikDAO.class.getSimpleName());
1.24 @PersistenceContext(unitName = DAO.PU)
1.25 private EntityManager em;
1.26
1.27 + private enum SQL {
1.28 +
1.29 + HLASOVANI_INSERT,
1.30 + HLASOVANI_SELECT
1.31 + }
1.32 +
1.33 public Collection<Podnik> getPodniky() {
1.34 Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC");
1.35 return dotaz.getResultList();
1.36 @@ -57,7 +64,7 @@
1.37 }
1.38
1.39 public void hlasuj(int podnik, boolean hlas, String ipAdresa) {
1.40 - Query insert = em.createNativeQuery("INSERT INTO hlasovani (podnik, hlas, ip_adresa) VALUES (:podnik, :hlas, :ip_adresa);");
1.41 + Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT));
1.42 insert.setParameter("podnik", podnik);
1.43 insert.setParameter("hlas", hlas);
1.44 insert.setParameter("ip_adresa", ipAdresa);
1.45 @@ -65,7 +72,22 @@
1.46 }
1.47
1.48 public VysledekHlasovani getVysledekHlasovani(int podnik) {
1.49 - log.severe("TODO: vracet skutečné výsledky z databáze");
1.50 - return new VysledekHlasovani(10, 50);
1.51 + VysledekHlasovani vysledek = new VysledekHlasovani();
1.52 + Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT));
1.53 + select.setParameter("podnik", podnik);
1.54 + List<Object[]> vysledekDotazu = select.getResultList();
1.55 +
1.56 + log.severe("Vracím výsledky pro podnik: " + podnik);
1.57 +
1.58 + for (Object[] radek : vysledekDotazu) {
1.59 + /** Transponujeme výsledek dotazu */
1.60 + if ((Boolean) radek[0]) {
1.61 + vysledek.setHlasuAno((Integer) radek[1]);
1.62 + } else {
1.63 + vysledek.setHlasuNe((Integer) radek[1]);
1.64 + }
1.65 + }
1.66 +
1.67 + return vysledek;
1.68 }
1.69 }