Package dao

Source Code of dao.DaoPari

package dao;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import business.Pari;


public class DaoPari {
  /* ------------------------------------------------ REQUETES PRECOMPILEES */
  private static CallableStatement statementGetPari = null;
  private static CallableStatement statementGetParis = null;
  private static CallableStatement statementAjouterPari = null;


  /* --------------------------------------------------------- CONSTRUCTEUR */
  static {
    try {
      statementGetPari = DbConnection.getInstance().prepareCall("{call getPari(?)}");
      statementGetParis = DbConnection.getInstance().prepareCall("{call getParis(?)}");
      statementAjouterPari = DbConnection.getInstance().prepareCall("{call ajouterPari(?, ?, ?, ?, ?, ?)}");
    }
    catch(SQLException e) {
      e.printStackTrace();
    }
  }


  /* -------------------------------------------------------------- METHODE */
  public static Pari getPari(int id_pari) {
    Pari pari = null;
   
    try {
      ResultSet rs = null;
     
      synchronized(statementGetPari) {
        statementGetPari.setInt(1, id_pari);
       
        rs = statementGetPari.executeQuery();
      }
     
      if(rs != null && rs.last()) {
        if(rs.getRow() == 1) {
          pari = new Pari(
              rs.getInt("id_pari"),
              rs.getInt("fk_id_utilisateur"),
              rs.getInt("fk_id_passageTrainTheorique"),
              rs.getInt("mise"),
              rs.getInt("retard"),
              rs.getTimestamp("heurePari"),
              rs.getInt("gainPossible"),
              rs.getInt("etat"));
        }
        else {
          System.err.println("DaoPari.getPari(" + id_pari + ") : plusieurs résultats.");
        }
      }
      else {
        System.err.println("DaoPari.getPari(" + id_pari + ") : aucun résultat.");
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return null;
    }
   
    return pari;
  }
 

  public static List<Pari> getParis(int id_utilisateur) {
    List<Pari> paris = null;
   
    try {
      ResultSet rs = null;
     
      synchronized(statementGetParis) {
        statementGetParis.setInt(1, id_utilisateur);
       
        rs = statementGetParis.executeQuery();
      }
     
      paris = new ArrayList<Pari>();
     
      while(rs.next()) {
        paris.add(new Pari(
            rs.getInt("id_pari"),
            rs.getInt("fk_id_utilisateur"),
            rs.getInt("fk_id_passageTrainTheorique"),
            rs.getInt("mise"),
            rs.getInt("retard"),
            rs.getTimestamp("heurePari"),
            rs.getInt("gainPossible"),
            rs.getInt("etat")));
      }
    }
    catch (SQLException e) {
      e.printStackTrace();
     
      return null;
    }
   
    return paris;
  }
 

  public static boolean ajouterPari(int id_utilisateur, int fk_id_passageTrainTheorique, int mise, int retard) {
    try {
      Date heurePari = new Date(); //TODO voir pour récupérer l'heure actuelle depuis les serveurs de la SNCF
      Date arriveeTheorique = DaoPassageTrainTheorique.getPassageTrainTheorique(fk_id_passageTrainTheorique).getArriveeTheorique();
      long msPassageTrain = arriveeTheorique.getTime();
      int minAvantPassage = (int) (msPassageTrain - heurePari.getTime()) / (60000);
      double coefficient = (1.0 + (((double) retard)/3.0)) * (1.0 + (((double) Math.max(0.0, (minAvantPassage-10.0)))/50.0));
      int gainPossible = (int) (mise * coefficient);
     
      synchronized(statementAjouterPari) {
        statementAjouterPari.setInt(1, id_utilisateur);
        statementAjouterPari.setInt(2, fk_id_passageTrainTheorique);
        statementAjouterPari.setInt(3, mise);
        statementAjouterPari.setInt(4, retard);
        statementAjouterPari.setTimestamp(5, new java.sql.Timestamp(heurePari.getTime()));
        statementAjouterPari.setInt(6, gainPossible);
       
        statementAjouterPari.execute();
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return false;
    }
   
    return true;
  }
}
TOP

Related Classes of dao.DaoPari

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.