Quando si registra un nuovo utente inviare un'email a Helpdesk.

This commit is contained in:
2024-06-07 19:02:40 +02:00
parent 27a1c0efe9
commit f69848f748

View File

@@ -1,6 +1,7 @@
package it.integry.ems.user.service;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.service.MailService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.dto.UserRegistrationDTO;
import it.integry.ems_model.config.EmsRestConstants;
@@ -22,6 +23,9 @@ public class UserRegistrationService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
private MailService mailService;
public StbUser save(UserRegistrationDTO userRegistrationDTO) throws Exception {
if (validateUsername(userRegistrationDTO.getUsername())) {
throw new Exception("Username già registrato");
@@ -31,6 +35,10 @@ public class UserRegistrationService {
throw new Exception("Indirizzo email già registrato");
}
if (!validateCodiceAzienda(userRegistrationDTO.getCodAzienda())){
throw new Exception("Codice azienda non valido");
}
StbUser stbUser = new StbUser()
.setUserName(userRegistrationDTO.getUsername())
.setFullName(userRegistrationDTO.getFullName())
@@ -45,6 +53,11 @@ public class UserRegistrationService {
stbUser.setOperation(OperationType.INSERT);
entityProcessor.processEntity(stbUser, multiDBTransactionManager);
String subject = "Nuovo utente registrato su Task";
String message = String.format("%s si è registrato su task con il codice azienda: %s ", userRegistrationDTO.getFullName(), userRegistrationDTO.getCodAzienda());
mailService.sendMail("helpdesk@integry.it", null, subject, message);
return stbUser;
}
@@ -69,4 +82,18 @@ public class UserRegistrationService {
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
public boolean validateCodiceAzienda(String username) throws Exception {
String sql = Query.format(
"SELECT CAST(COUNT(*) AS BIT)\n" +
"FROM stb_user\n" +
"WHERE key_group = 3\n" +
" AND user_name_rif IS NULL\n" +
" AND flag_attivo = 'S'\n" +
" AND user_name = %s",
username
);
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
}
}