# HG changeset patch # User František Kučera # Date 1272381203 -7200 # Node ID f74a9fc683da1cfa874ece9993ed6b509212f388 # Parent e8371105fcc879677d92957fffe77402cca85c42 Hlasování: zobrazujeme grafy na základě hlasování uloženého v databázi. diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/nbproject/build-impl.xml --- a/java/nekurak.net-ejb/nbproject/build-impl.xml Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-ejb/nbproject/build-impl.xml Tue Apr 27 17:13:23 2010 +0200 @@ -321,11 +321,17 @@ COMPILATION SECTION --> + + + + + + @@ -341,9 +347,11 @@ + + @@ -627,6 +635,7 @@ CLEANUP SECTION --> + diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/nbproject/genfiles.properties --- a/java/nekurak.net-ejb/nbproject/genfiles.properties Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-ejb/nbproject/genfiles.properties Tue Apr 27 17:13:23 2010 +0200 @@ -1,8 +1,8 @@ -build.xml.data.CRC32=c812c3c4 +build.xml.data.CRC32=764630c8 build.xml.script.CRC32=d7a2a0ed build.xml.stylesheet.CRC32=e5f4c432@1.19.2 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=c812c3c4 -nbproject/build-impl.xml.script.CRC32=9437cdd7 +nbproject/build-impl.xml.data.CRC32=764630c8 +nbproject/build-impl.xml.script.CRC32=45c5a458 nbproject/build-impl.xml.stylesheet.CRC32=b9c9cfe1@1.19.2 diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/nbproject/project.properties --- a/java/nekurak.net-ejb/nbproject/project.properties Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-ejb/nbproject/project.properties Tue Apr 27 17:13:23 2010 +0200 @@ -23,7 +23,8 @@ jar.compress=false jar.name=nekurak.net-ejb.jar javac.classpath=\ - ${reference.nekurak_net-lib.jar} + ${reference.nekurak_net-lib.jar}:\ + ${reference.SuperDAO.jar} javac.debug=true javac.deprecation=false javac.source=1.5 @@ -49,7 +50,9 @@ meta.inf.excludes=sun-cmp-mappings.xml platform.active=default_platform project.nekurak_net-lib=../nekurak.net-lib +project.SuperDAO=../../../SuperDAO/java/SuperDAO reference.nekurak_net-lib.jar=${project.nekurak_net-lib}/dist/nekurak.net-lib.jar +reference.SuperDAO.jar=${project.SuperDAO}/dist/SuperDAO.jar resource.dir=setup run.test.classpath=\ ${javac.test.classpath}:\ diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/nbproject/project.xml --- a/java/nekurak.net-ejb/nbproject/project.xml Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-ejb/nbproject/project.xml Tue Apr 27 17:13:23 2010 +0200 @@ -6,6 +6,7 @@ nekurak.net-ejb 1.6.5 reference.nekurak_net-lib.jar + reference.SuperDAO.jar @@ -15,6 +16,14 @@ + SuperDAO + jar + + jar + clean + jar + + nekurak_net-lib jar diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java --- a/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.java Tue Apr 27 17:13:23 2010 +0200 @@ -2,9 +2,11 @@ import cz.frantovo.nekurak.dto.Podnik; import cz.frantovo.nekurak.dto.VysledekHlasovani; +import cz.frantovo.superDAO.SuperDAO; +import java.math.BigInteger; import java.util.Collection; import java.util.Date; -import java.util.logging.Logger; +import java.util.List; import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.persistence.EntityManager; @@ -17,12 +19,17 @@ */ @Stateless @LocalBean -public class PodnikDAO { +public class PodnikDAO extends SuperDAO { - private static final Logger log = Logger.getLogger(PodnikDAO.class.getSimpleName()); @PersistenceContext(unitName = DAO.PU) private EntityManager em; + private enum SQL { + + HLASOVANI_INSERT, + HLASOVANI_SELECT + } + public Collection getPodniky() { Query dotaz = em.createQuery("FROM " + DAO.t(Podnik.class) + " o ORDER BY datum DESC"); return dotaz.getResultList(); @@ -57,7 +64,7 @@ } public void hlasuj(int podnik, boolean hlas, String ipAdresa) { - Query insert = em.createNativeQuery("INSERT INTO hlasovani (podnik, hlas, ip_adresa) VALUES (:podnik, :hlas, :ip_adresa);"); + Query insert = em.createNativeQuery(getSQL(SQL.HLASOVANI_INSERT)); insert.setParameter("podnik", podnik); insert.setParameter("hlas", hlas); insert.setParameter("ip_adresa", ipAdresa); @@ -65,7 +72,22 @@ } public VysledekHlasovani getVysledekHlasovani(int podnik) { - log.severe("TODO: vracet skutečné výsledky z databáze"); - return new VysledekHlasovani(10, 50); + VysledekHlasovani vysledek = new VysledekHlasovani(); + Query select = em.createNativeQuery(getSQL(SQL.HLASOVANI_SELECT)); + select.setParameter("podnik", podnik); + List vysledekDotazu = select.getResultList(); + + log.severe("Vracím výsledky pro podnik: " + podnik); + + for (Object[] radek : vysledekDotazu) { + /** Transponujeme výsledek dotazu */ + if ((Boolean) radek[0]) { + vysledek.setHlasuAno((Integer) radek[1]); + } else { + vysledek.setHlasuNe((Integer) radek[1]); + } + } + + return vysledek; } } diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/nekurak.net-ejb/src/java/cz/frantovo/nekurak/dao/PodnikDAO.sql.xml Tue Apr 27 17:13:23 2010 +0200 @@ -0,0 +1,25 @@ + + + + + INSERT INTO hlasovani + (podnik, hlas, ip_adresa) + VALUES (:podnik, :hlas, :ip_adresa); + + + + SELECT hlas, + int4(count(*)) + FROM ( + SELECT DISTINCT ON (ip_adresa) + hlas + FROM hlasovani + WHERE podnik = :podnik + ORDER BY ip_adresa, id DESC + ) AS hlasy + GROUP BY hlas; + + \ No newline at end of file diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java --- a/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-lib/src/cz/frantovo/nekurak/dto/VysledekHlasovani.java Tue Apr 27 17:13:23 2010 +0200 @@ -10,11 +10,6 @@ private int hlasuAno; private int hlasuNe; - public VysledekHlasovani(int hlasuAno, int hlasuNe) { - this.hlasuAno = hlasuAno; - this.hlasuNe = hlasuNe; - } - /** * @return počet hlasů pro kuřácký podnik */ diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Hlasovani.java Tue Apr 27 17:13:23 2010 +0200 @@ -14,6 +14,7 @@ public void setPodnik(int podnik) { this.podnik = podnik; + vysledek = null; } public VysledekHlasovani getVysledek() { diff -r e8371105fcc8 -r f74a9fc683da java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag --- a/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Tue Apr 27 16:13:36 2010 +0200 +++ b/java/nekurak.net-web/web/WEB-INF/tags/nekurak/hlasovani.tag Tue Apr 27 17:13:23 2010 +0200 @@ -16,7 +16,7 @@ - +