Service.MessageServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for Service.MessageServiceImpl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Service;

import DAO.MessagesDAO;
import DAO.MessagesEntity;
import DAO.PersonnesDAO;
import DAO.PersonnesEntity;
import Enumerations.TypeNotifications;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;

/**
 *
 * @author Olivier
 */
@Service
public class MessageServiceImpl implements MessageService {

    @Resource
    MessagesDAO messagesDAO;

    @Resource
    PersonnesDAO personnesDAO;

    @Resource
    NotificationsService notificationService;

    @Override
    public void envoyerMessage(int idUser, int idDestinataire, String message) {
        if (message.length() == 0) {
            return;
        }

        PersonnesEntity sender = personnesDAO.find(idUser);
        PersonnesEntity dest = personnesDAO.find(idDestinataire);

        MessagesEntity newMessagesEntity = new MessagesEntity(message, Calendar.getInstance().getTime());
        newMessagesEntity.setEmetteur(sender);
        newMessagesEntity.setDestinataire(dest);

        int idMessage = messagesDAO.save(newMessagesEntity);

        personnesDAO.ajoutMessageEnvoi(sender, newMessagesEntity);
        personnesDAO.ajoutMessageRecu(dest, newMessagesEntity);

        // Cration d'une notification auprs du destinataire
        notificationService.createNotification(TypeNotifications.notifMessage, sender, dest, idMessage);
    }

    @Override
    public String getMessages(int idUser) {
        List<MessagesEntity> messages = messagesDAO.findByDestinataire(idUser);
        messages.addAll(messagesDAO.findByAuteur(idUser));
        Collections.sort(messages, new Comparator<MessagesEntity>() {

            @Override
            public int compare(MessagesEntity o1, MessagesEntity o2) {
                return o2.getDate().compareTo(o1.getDate());
            }
        });
        String message = "";
        for (MessagesEntity me : messages) {
            message += "<div class=\"message\">"; // Conteneur du statut
            message += me.getEmetteur().getPrenom() + " " + me.getEmetteur().getNom();
            message += "<div class=\"message-texte\">"; // Conteneur du texte du statut
            message += me.getTexte();
            message += "<br/>";

            message += "</div>";
            message += "</div>";
        }
        return message;
    }

    /**
     * Rcupre les messages envoys par une personne  l'utilisateur
     *
     * @param idUser l'id de l'utilisateur
     * @param idPersonne l'id de la personne qui a envoy les messages
     * @return un string des messages formats
     */
    @Override
    public String getMessagesSinglePersonne(int idUser, int idPersonne) {
        List<MessagesEntity> messages = messagesDAO.findByPersonne(idPersonne, idUser);
        Collections.sort(messages, new Comparator<MessagesEntity>() {
            @Override
            public int compare(MessagesEntity o1, MessagesEntity o2) {
                return o2.getDate().compareTo(o1.getDate());
            }
        });

        Collections.reverse(messages);

        String message = "";
        for (MessagesEntity me : messages) {

            SimpleDateFormat messageDate = new SimpleDateFormat("dd,MM,yyyy 'a' HH:mm:ss ");
            String date;
            date = messageDate.format(me.getDate());

            message += "<div class=\"message col-lg-offset-1 col-lg-10 col-lg-offset-1\">"; // Conteneur du statut

            message += "<div class=\"row rowMessage\">";
            message += "<div class=\"message\">";
            message += me.getEmetteur().getPrenom() + " " + me.getEmetteur().getNom();
            message += "</div>";
            message += "</div>";

            message += "<div class=\"row rowMessage messageText\">";
            message += "<div class=\"message\">"; // Conteneur du texte du statut
            message += me.getTexte();
            message += "</div>";
            message += "</div>";

            message += "<div class=\"row rowMessage\">";
            message += "<div class=\"date\">Envoy le " + date + "</div>";
            message += "</div>";
            message += "</div>";
        }
        return message;
    }
}