| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package es.uv.saic.service;
- import java.text.SimpleDateFormat;
- import java.util.LinkedList;
- import java.util.Queue;
- import jakarta.mail.MessagingException;
- import org.springframework.mail.MailSendException;
- import org.springframework.mail.SimpleMailMessage;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.stereotype.Service;
- import es.uv.saic.domain.Calendari;
- import es.uv.saic.domain.Email;
- import es.uv.saic.domain.InstanciaTasca;
- import es.uv.saic.domain.Usuari;
- @Service
- public class EmailService {
- private JavaMailSender mailSender;
- private Queue<Email> pendingQueue = new LinkedList<Email>();
- public EmailService(JavaMailSender javaMailSender) {
- this.mailSender = javaMailSender;
- }
-
- public boolean sendActiveTaskNext() {
- if(!this.pendingQueue.isEmpty()) {
- Email e = this.getNextEmail();
- try {
- if(e.getInstanciaTasca() != null) {
- this.sendNewTaskMail(e.getUsusari(), e.getInstanciaTasca());
- }
- else {
- this.sendMail(e.getUsusari().getEmail(), e.getSubject(), e.getBody());
- }
- }
- catch (MessagingException err) {
- err.printStackTrace();
- }
- catch (MailSendException err) {
- err.printStackTrace();
- }
- return true;
- }
- else {
- return false;
- }
- }
-
- public void addEmail(Email email) {
- pendingQueue.add(email);
- }
-
- private Email getNextEmail() {
- return this.pendingQueue.poll();
- }
-
- public Queue<Email> getPendingQueue() {
- return this.pendingQueue;
- }
-
- public boolean pendingQueueIsEmpty() {
- return this.pendingQueue.isEmpty();
- }
- public void sendMail(String to, String subject, String msg) throws MessagingException{
- SimpleMailMessage mailMessage = new SimpleMailMessage();
- mailMessage.setTo(to);
- mailMessage.setSubject(subject);
- mailMessage.setText(msg);
- mailMessage.setFrom("saic@uv.es");
- mailSender.send(mailMessage);
- }
-
- public void sendNewTaskMail(Usuari u, InstanciaTasca it) throws MessagingException{
- String subject = "Notificació de tasca a realitzar en SAIC";
- String msg = "Estimat/da usuari/a:\n" +
- "\n" +
- "El Sistema d'Assegurament Intern de la Qualitat (SAIC) de la Universitat de València li informa que té vosté una tasca per realitzar\n" +
- "\n" +
- "Tasca: "+it.getTasca().getTitolVal()+"\n" +
- "Procediment: "+it.getTasca().getProces().getTitolVal()+"\n" +
- "Centre/Titulació: "+it.getInstancia().getOrgan().getOrgan().getNomVal()+" / "+it.getInstancia().getOrgan().getNomVal()+"\n" +
- "Curs al qual s'aplica: "+Integer.toString(it.getInstancia().getProces().getCursAvaluat()-1) + "-" + Integer.toString(it.getInstancia().getProces().getCursAvaluat())+"\n" +
- "\n" +
- "Per a realitzar-la ha de connectar-se al SAIC i seguir els passos que allà es descriuen.\n" +
- "\n" +
- "Faça clic ací https://saic.uv.es per a accedir al Sistema d'Assegurament Intern de la Qualitat (SAIC).\n" +
- "\n" +
- "Per a consultes sobre procediments o la documentació que s'ha d'aportar, envie un correu a unitat.qualitat@uv.es\n" +
- "Per a qualsevol consulta tècnica, envie un correu a saic@uv.es\n" +
- "\n" +
- "----------" +
- "\n" +
- "Estimado/a usuario/a:\n" +
- "\n" +
- "El Sistema de Aseguramiento Interno de la Calidad (SAIC) de la Universitat de València le informa que tiene Vd. una tarea por realizar:\n" +
- "\n" +
- "Tarea: "+it.getTasca().getTitolCas()+"\n" +
- "Procedimiento: "+it.getTasca().getProces().getTitolCas()+"\n" +
- "Centro/Titulación: "+it.getInstancia().getOrgan().getOrgan().getNomCas()+" / "+it.getInstancia().getOrgan().getNomCas()+"\n" +
- "Curso al que se aplica: "+Integer.toString(it.getInstancia().getProces().getCursAvaluat())+"\n" +
- "\n" +
- "Para realizarla debe Vd. conectarse al SAIC y seguir los pasos allí descritos.\n" +
- "\n" +
- "Pinche aquí https://saic.uv.es para acceder al Sistema de Aseguramiento Interno de la Calidad (SAIC).\n" +
- "\n" +
- "Para consultas sobre los procedimientos o la documentación a aportar, envíe un correo a unitat.qualitat@uv.es \n" +
- "Para cualquier consulta técnica, envíe un correo a saic@uv.es\n";
- this.sendMail(u.getEmail(), subject, msg);
- }
-
- public void sendCalendarMail(Usuari u, Calendari c) throws MessagingException{
- String subject = "[SYS] Notificación de evento planificado en SAIC";
- String msg = "Estimado/a administrador:\n" +
- "\n" +
- "El siguiente evento está planificado para hoy.\n" +
- "\n" +
- "Nombre: "+c.getTitolCas()+"\n" +
- "ID Proceso: "+c.getIdProces().toString()+"\n" +
- "Ámbito: "+c.getAmbit()+"\n" +
- "Planificado para el día "+new SimpleDateFormat("dd/MM/yyyy").format(c.getData())+"\n"+
- "\n" +
- "Acceda a https://saic.uv.es y realice las acciones pertinentes. \n" +
- "\n";
- this.sendMail(u.getEmail(), subject, msg);
- }
- }
|