1.1 --- a/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sun Mar 01 01:08:24 2009 +0100
1.2 +++ b/java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/dao/SouhrnDAO.java Sun Mar 01 13:04:10 2009 +0100
1.3 @@ -2,6 +2,7 @@
1.4
1.5 import cz.frantovo.hrisniciSpameri.dto.Cil;
1.6 import cz.frantovo.hrisniciSpameri.dto.SitovaAdresa;
1.7 +import cz.frantovo.hrisniciSpameri.dto.Soucet;
1.8 import cz.frantovo.hrisniciSpameri.dto.Souhrn;
1.9 import java.sql.Connection;
1.10 import java.sql.Date;
1.11 @@ -9,6 +10,7 @@
1.12 import java.sql.ResultSet;
1.13 import java.util.ArrayList;
1.14 import java.util.Collection;
1.15 +import java.util.HashMap;
1.16 import java.util.logging.Level;
1.17
1.18 /**
1.19 @@ -21,8 +23,9 @@
1.20
1.21 DENNI_SOUHRN,
1.22 DENNI_SOUHRN_CIL,
1.23 + DENNI_SOUCTY,
1.24 + DENNI_SOUCTY_CIL
1.25 }
1.26 - private static final long DEN = 1000 * 60 * 60 * 24;
1.27
1.28 /**
1.29 * Získá z databáze souhrn útoků. Buď pro konkrétní den nebo pro dané období.
1.30 @@ -81,4 +84,63 @@
1.31
1.32 return souhrn;
1.33 }
1.34 +
1.35 + /**
1.36 + * @param zacatek začátek období nebo konkrétní den
1.37 + * @param konec konec období nebo null (pokud nás zajímá konkrétní den – což nás tady většinou nezajímá)
1.38 + * @param cil id cíle nebo nula, pokud chceme všechny cíle
1.39 + * @return součty útoků za jednotlivé dny, seskupené podle cílů
1.40 + */
1.41 + public HashMap<Cil, Collection<Soucet>> getSoucty(Date zacatek, Date konec, int cil) {
1.42 + HashMap<Cil, Collection<Soucet>> soucty = new HashMap<Cil, Collection<Soucet>>();
1.43 +
1.44 + Connection db = getSpojeni(null);
1.45 + if (db == null) {
1.46 + return null;
1.47 + } else {
1.48 + PreparedStatement ps = null;
1.49 + ResultSet rs = null;
1.50 + try {
1.51 + if (konec == null) {
1.52 + konec = zacatek;
1.53 + }
1.54 +
1.55 + if (cil == 0) {
1.56 + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY));
1.57 + ps.setDate(1, zacatek);
1.58 + ps.setDate(2, konec);
1.59 + } else {
1.60 + ps = db.prepareStatement(getSQL(SQL.DENNI_SOUCTY_CIL));
1.61 + ps.setDate(1, zacatek);
1.62 + ps.setDate(2, konec);
1.63 + ps.setInt(3, cil);
1.64 + }
1.65 + rs = ps.executeQuery();
1.66 + while (rs.next()) {
1.67 + Soucet s = new Soucet();
1.68 + s.setDen(rs.getDate("den"));
1.69 + s.setPocet(rs.getInt("pocet"));
1.70 +
1.71 + Cil c = new Cil();
1.72 + c.setId(rs.getInt("id"));
1.73 + c.setNazev(rs.getString("nazev"));
1.74 + c.setUrl(rs.getString("url"));
1.75 + c.setSelekt(rs.getString("selekt"));
1.76 + c.setDatabaze(rs.getString("databaze"));
1.77 + s.setCil(c);
1.78 +
1.79 + if (soucty.get(c) == null) {
1.80 + soucty.put(c, new ArrayList<Soucet>());
1.81 + }
1.82 +
1.83 + soucty.get(c).add(s);
1.84 + }
1.85 + } catch (Exception e) {
1.86 + log.log(Level.SEVERE, "Chyba při získávání součtů z databáze", e);
1.87 + } finally {
1.88 + zavri(db, ps, rs);
1.89 + }
1.90 + }
1.91 + return soucty;
1.92 + }
1.93 }
1.94 \ No newline at end of file