/** * Deplace une liste de message vers la corbeille * * @param p_list * @return */ public boolean deplaceMessageVersCorbeille(MlListeMessageGrille p_list) { MlCompteMail cpt = null; if (p_list != null && p_list.size() > 0) { cpt = new MlCompteMail(p_list.get(0).getIdCompte()); } for (MlMessageGrille m : p_list) { String requete = "UPDATE " + EnTable.MAIL_RECU.getNomTable() + " SET " + EnStructMailRecu.ID_DOSSIER.getNomChamp() + "=" + cpt.getIdCorbeille() + " WHERE " + EnStructMailRecu.ID_MESSAGE.getNomChamp() + "=" + m.getIdMessage(); boolean succes = requeteFact.executeRequete(requete); if (!succes) { return false; } } return true; // si tout s'est bien passé ou si la liste etait vide }
public MlListeMessageGrille getListeMessageGrille(int p_idCompte, int p_idDossierChoisi) { MlListeMessageGrille lstMessage = new MlListeMessageGrille(); String script = "SELECT " // + EnStructMailRecu.EXPEDITEUR.getNomChamp() + ", " + EnStructMailRecu.SUJET.getNomChamp() + ", " + EnStructMailRecu.DATE_RECEPTION.getNomChamp() + ", " + EnStructMailRecu.STATUT.getNomChamp() + ", " + EnStructMailRecu.UID.getNomChamp() + ", " + EnStructMailRecu.ID_MESSAGE.getNomChamp() + " FROM " + EnTable.MAIL_RECU.getNomTable() // + " WHERE " // + EnStructMailRecu.ID_DOSSIER.getNomChamp() + "=" + p_idDossierChoisi // + " AND " // + EnStructMailRecu.ID_COMPTE.getNomChamp() + "=" + p_idCompte // + " ORDER BY " + EnStructMailRecu.DATE_RECEPTION.getNomChamp() + " DESC"; List<ArrayList<String>> lstResultat = requeteFact.getListeDenregistrement(script); for (int i = 0; i < lstResultat.size(); i++) { ArrayList<String> aRecord = lstResultat.get(i); MlMessageGrille m = new MlMessageGrille(); m.setExpediteur(decodeHTMLFromBase(aRecord.get(0))); m.setSujet(decodeHTMLFromBase(aRecord.get(1))); m.setDateReception(RecupDate.getdateFromTimeStamp((aRecord.get(2)))); m.setLu(statutLecture.T.name().equals(aRecord.get(3))); m.setUidMessage(aRecord.get(4)); m.setIdCompte(p_idCompte); m.setIdDossier(p_idDossierChoisi); m.setIdMessage(Integer.parseInt(aRecord.get(5))); m.setHavePieceJointe(messageHavePieceJointe(m.getIdMessage())); lstMessage.add(m); } return lstMessage; }
/** * Enregistre un message dans la base * * @param m */ public void createNewMessage(MlMessage m) { int idCompte = m.getIdCompte(); int idDossierStockage = m.getIdDossier(); String uidMessage = m.getUIDMessage(); String expediteur = encodeHTMLforBase(m.getExpediteur()); List<String> listeDestinataire = m.getDestinataire(); List<String> listCopy = m.getDestinataireCopy(); List<String> listCachee = m.getDestinataireCache(); File fileToBlobDestinataires = createBlobFileFromlist(listeDestinataire, "destinataire"); File fileToBlobDestCopy = createBlobFileFromlist(listCopy, "dest_copy"); File fileToBlobDestHide = createBlobFileFromlist(listCachee, "hide_dest"); String sujet = encodeHTMLforBase(m.getSujet()); String contenu = m.getContenu(); File fileToBlobContenu = createFileForBlob(contenu, "contenu"); String dateReception = RecupDate.getTimeStamp(m.getDateReception()); int tailleStringBuilder = uidMessage.length() + expediteur.length() /* + destinataires.length() */ + sujet.length() + 500; // on construit la requette StringBuilder requette = new StringBuilder(tailleStringBuilder); requette.ensureCapacity(tailleStringBuilder); requette.append("INSERT INTO " + EnTable.MAIL_RECU.getNomTable()); // requette.append("("); // requette.append(EnStructMailRecu.ID_COMPTE.getNomChamp() + ","); // requette.append(EnStructMailRecu.ID_DOSSIER.getNomChamp() + ","); // requette.append(EnStructMailRecu.UID.getNomChamp() + ","); // requette.append(EnStructMailRecu.EXPEDITEUR.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST_COPY.getNomChamp() + ","); // requette.append(EnStructMailRecu.DEST_CACHE.getNomChamp() + ","); // requette.append(EnStructMailRecu.SUJET.getNomChamp() + ","); // requette.append(EnStructMailRecu.CONTENU.getNomChamp() + ","); // requette.append(EnStructMailRecu.DATE_RECEPTION.getNomChamp() + ","); // requette.append(EnStructMailRecu.STATUT.getNomChamp() + ")"); // requette.append("VALUES ("); // requette.append(idCompte + ","); // requette.append(idDossierStockage + ",'"); // requette.append(uidMessage + "','"); // requette.append(expediteur + "',"); // requette.append("?,"); // lstDest requette.append("?,"); // lstDestCC requette.append("?,'"); // lstDestBCC requette.append(sujet + "',"); requette.append("?,'"); // c'est pour le contenu qui sera stocké dans un // blob requette.append(dateReception + "',"); // if (m.isLu()) { requette.append("'T')"); } else { requette.append("'F')"); } // le status de lecture du message (F= nonlu,T=lu) // on l'execute boolean succes = requeteFact.executeRequeteWithBlob( requette.toString(), fileToBlobContenu, fileToBlobDestinataires, fileToBlobDestCopy, fileToBlobDestHide); if (succes) { // on recupere le nouvel id du message que l'on vient d'enregistrer String getMaxId = "SELECT max (" + EnStructMailRecu.ID_MESSAGE.getNomChamp() + ") FROM " + EnTable.MAIL_RECU.getNomTable(); String maxId = requeteFact.get1Champ(getMaxId); // ("l'id de message que l'on vient d'enregistrer est: " // + maxId); // lst.add(); // updateStatusLecture(lst, false); JTreeFactory treeFact = new JTreeFactory(); MlListeMessageGrille lst = new MlListeMessageGrille(); lst.add(new MlMessageGrille(Integer.parseInt(maxId))); treeFact.majUnreadCount(lst); verifEtSuppressionBlob(new File(m.getCheminPhysique())); verifEtSuppressionBlob(fileToBlobContenu); verifEtSuppressionBlob(fileToBlobDestinataires); verifEtSuppressionBlob(fileToBlobDestCopy); verifEtSuppressionBlob(fileToBlobDestHide); // on insere le contenu en base // si des pieces jointe sont presente, on enregistre leur chemin en // base avec l'id du message for (File f1 : m.getListePieceJointe()) { if (requeteFact.enregistrePieceJointe(maxId, f1)) { f1.delete(); } } } }