/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.fdxconsultation.service.impl.sockets;
|
|
/**
|
*
|
* @author Lenovo P53
|
*/
|
import com.megatim.fdxconsultation.core.ifaces.administration.UserManager;
|
import com.megatim.fdxconsultation.core.ifaces.message.systeme.MessageSystemeManager;
|
import com.megatim.fdxconsultation.model.administration.User;
|
import com.megatim.fdxconsultation.model.dto.MessageSystemeDto;
|
import com.megatim.fdxconsultation.model.message.systeme.ApplicationData;
|
import com.megatim.fdxconsultation.model.message.systeme.UserSesionApplication;
|
import com.megatim.fdxconsultation.tools.context.AppCommonContext;
|
import java.util.Iterator;
|
import javax.annotation.PostConstruct;
|
import javax.ejb.LocalBean;
|
import javax.ejb.Schedule;
|
import javax.ejb.Singleton;
|
import javax.ejb.Startup;
|
import javax.inject.Inject;
|
import javax.websocket.Session;
|
|
@Singleton
|
@Startup
|
@LocalBean
|
public class MessagesSystemeCronBean {
|
|
@Inject
|
private MessageSystemeManager messageSystemeManager;
|
|
@Inject
|
private UserManager userManager;
|
|
@PostConstruct
|
public void init() {
|
|
}
|
|
@Schedule(second = "*/3", minute = "*", hour = "*", persistent = false)
|
public void refreshDatas() {
|
|
//Variables
|
ApplicationData message = new ApplicationData();
|
MessageSystemeDto messageSystemeDto = null;
|
Iterator<String> iterateur = null;
|
String idSession = null;
|
Session session = null;
|
User utilisateur = null;
|
|
try {
|
|
//On crée une instance de l'iterateur
|
iterateur = UserSesionApplication.getInstance().getUsers().keySet().iterator();
|
|
//On parcourt la liste des sessions
|
while(iterateur.hasNext()){
|
|
//On recupère l'id de la session
|
idSession = iterateur.next();
|
|
//On filtre par type
|
if(UserSesionApplication.getInstance().getUsers() != null && UserSesionApplication.getInstance().getUsers().get(idSession) != null
|
&& (UserSesionApplication.getInstance().getUsers().get(idSession).getType() != null
|
&& UserSesionApplication.getInstance().getUsers().get(idSession).getType().equalsIgnoreCase(AppCommonContext.CODE_WEB_SOCKET_PATH_SYSTEME_MESSAGE))){
|
|
//On recupère la session
|
session = UserSesionApplication.getInstance().getUsers().get(idSession).getSession();
|
|
//On recupère l'utilisateur associé à cette session
|
utilisateur = UserSesionApplication.getInstance().getUsers().get(idSession).getUtilisateur();
|
|
//On recupère le message système
|
messageSystemeDto = messageSystemeManager.recupererUnMessageSystemeDto(utilisateur);
|
|
//Si non null
|
if(messageSystemeDto != null){
|
|
//On hydrate le message
|
message.setMessageSystemeDto(messageSystemeDto);
|
|
//On envoie le message
|
UserSesionApplication.getInstance().send(session, message);
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception ex) {
|
|
//On affiche les erreurs
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
}
|