|
|
@@ -1,5 +1,9 @@
|
|
|
package es.uv.saic.service;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+import java.nio.file.Files;
|
|
|
+import java.nio.file.Path;
|
|
|
+import java.nio.file.Paths;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.Queue;
|
|
|
@@ -21,9 +25,16 @@ import es.uv.saic.shared.domain.Usuari;
|
|
|
public class EmailService {
|
|
|
private JavaMailSender mailSender;
|
|
|
private Queue<Email> pendingQueue = new LinkedList<Email>();
|
|
|
+
|
|
|
@Value("${saic.mailer.from}")
|
|
|
private String fromEmail;
|
|
|
|
|
|
+ @Value("${saic.data.emailTemplates}")
|
|
|
+ private String emailTemplatesPath;
|
|
|
+
|
|
|
+ @Value("${saic.url.domain}")
|
|
|
+ private String saicUrl;
|
|
|
+
|
|
|
public EmailService(JavaMailSender javaMailSender) {
|
|
|
this.mailSender = javaMailSender;
|
|
|
}
|
|
|
@@ -78,42 +89,37 @@ public class EmailService {
|
|
|
|
|
|
mailSender.send(mailMessage);
|
|
|
}
|
|
|
+
|
|
|
+ private String readTemplate(String filename) throws IOException {
|
|
|
+ Path filePath = Paths.get(emailTemplatesPath, filename);
|
|
|
+ return Files.readString(filePath);
|
|
|
+ }
|
|
|
|
|
|
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";
|
|
|
+ String subject = "Notificació de tasca a realitzar en SAIQ";
|
|
|
+ String msg = "";
|
|
|
+
|
|
|
+ try {
|
|
|
+ msg = readTemplate("task_mail_template.txt");
|
|
|
+
|
|
|
+ String curso = (it.getInstancia().getProces().getCursAvaluat()-1) + "-" + it.getInstancia().getProces().getCursAvaluat();
|
|
|
+
|
|
|
+ msg = msg.replace("{tascaVal}", it.getTasca().getTitolVal() != null ? it.getTasca().getTitolVal() : "")
|
|
|
+ .replace("{tascaCas}", it.getTasca().getTitolCas() != null ? it.getTasca().getTitolCas() : "")
|
|
|
+ .replace("{titolVal}", it.getTasca().getProces().getTitolVal() != null ? it.getTasca().getProces().getTitolVal() : "")
|
|
|
+ .replace("{titolCas}", it.getTasca().getProces().getTitolCas() != null ? it.getTasca().getProces().getTitolCas() : "")
|
|
|
+ .replace("{centreVal}", it.getInstancia().getOrgan().getOrgan().getNomVal() != null ? it.getInstancia().getOrgan().getOrgan().getNomVal() : "")
|
|
|
+ .replace("{centreCas}", it.getInstancia().getOrgan().getOrgan().getNomCas() != null ? it.getInstancia().getOrgan().getOrgan().getNomCas() : "")
|
|
|
+ .replace("{titulacioVal}", it.getInstancia().getOrgan().getNomVal() != null ? it.getInstancia().getOrgan().getNomVal() : "")
|
|
|
+ .replace("{titulacioCas}", it.getInstancia().getOrgan().getNomCas() != null ? it.getInstancia().getOrgan().getNomCas() : "")
|
|
|
+ .replace("{curs}", curso)
|
|
|
+ .replace("{url}", saicUrl);
|
|
|
+
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new MessagingException("Error al leer la plantilla de correo de tareas", e);
|
|
|
+ }
|
|
|
+
|
|
|
this.sendMail(u.getEmail(), subject, msg);
|
|
|
}
|
|
|
|
|
|
@@ -128,7 +134,7 @@ public class EmailService {
|
|
|
"Á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" +
|
|
|
+ "Acceda" + saicUrl + " y realice las acciones pertinentes. \n" +
|
|
|
"\n";
|
|
|
this.sendMail(u.getEmail(), subject, msg);
|
|
|
}
|