From fc43b8d08210e8c8ae6e01553f8a1485c2c3324a Mon Sep 17 00:00:00 2001 From: rajesh Date: Tue, 29 Oct 2024 19:47:11 +0530 Subject: [PATCH 1/2] Updated code for updating application status form AWAITING to DRAFT --- .../net/gepafin/tendermanagement/dao/ApplicationDao.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 5a03fc55..ccb9281f 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -615,8 +615,11 @@ public class ApplicationDao { sendMailToUserAndCompany(userEntity, applicationEntity); sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity); applicationEntity.setStatus(status.getValue()); - applicationEntity = saveApplicationEntity(applicationEntity); } + if (status.equals(ApplicationStatusTypeEnum.DRAFT) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.AWAITING.getValue()))) { + applicationEntity.setStatus(status.getValue()); + } + applicationEntity = saveApplicationEntity(applicationEntity); return getApplicationResponse(applicationEntity); From e45aa789c647240d362958a61bfcb9b5dbb50102 Mon Sep 17 00:00:00 2001 From: rajesh Date: Wed, 30 Oct 2024 17:54:26 +0530 Subject: [PATCH 2/2] Resolved conflicts --- .../tendermanagement/dao/ApplicationDao.java | 12 ++++-- .../gepafin/tendermanagement/dao/HubDao.java | 2 +- .../dao/SystemEmailTemplatesDao.java | 43 +++++++++++++------ .../tendermanagement/entities/HubEntity.java | 4 ++ .../tendermanagement/service/HubService.java | 1 + .../service/SystemEmailTemplatesService.java | 4 +- .../service/impl/HubServiceImpl.java | 4 ++ .../impl/SystemEmailTemplatesServiceImpl.java | 6 +-- src/main/resources/application.properties | 2 + .../db/changelog/db.changelog-1.0.0.xml | 21 +++++++++ ...e_for_application_submition_30-10-2024.sql | 37 ++++++++++++++++ 11 files changed, 114 insertions(+), 22 deletions(-) create mode 100644 src/main/resources/db/dump/updated_system_email_template_for_application_submition_30-10-2024.sql diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index ccb9281f..f8c8e0c8 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -20,6 +20,7 @@ import net.gepafin.tendermanagement.service.CallService; import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.service.DocumentService; import net.gepafin.tendermanagement.service.FormService; +import net.gepafin.tendermanagement.service.HubService; import net.gepafin.tendermanagement.service.SystemEmailTemplatesService; import net.gepafin.tendermanagement.service.UserService; import net.gepafin.tendermanagement.util.DateTimeUtil; @@ -129,7 +130,10 @@ public class ApplicationDao { private UserService userService; @Autowired - S3PathConfig s3ConfigBean; + private S3PathConfig s3ConfigBean; + + @Autowired + private HubService hubService; public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) { @@ -722,9 +726,10 @@ public class ApplicationDao { CallEntity call =applicationEntity.getCall(); CompanyEntity company = applicationEntity.getCompany(); ProtocolEntity protocol = applicationEntity.getProtocol(); + HubEntity hub = hubService.valdateHub(applicationEntity.getHubId()); SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService .retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.APPLICATION_SUBMISSION_TO_USER_AND_COMPANY, - call, null); + hub, null); // Create the map for subject placeholders Map subjectPlaceholders = new HashMap<>(); @@ -755,9 +760,10 @@ public class ApplicationDao { CallEntity call = applicationEntity.getCall(); CompanyEntity company = applicationEntity.getCompany(); ProtocolEntity protocol = applicationEntity.getProtocol(); + HubEntity hub = hubService.valdateHub(applicationEntity.getHubId()); SystemEmailTemplateResponse systemEmailTemplateResponse = systemEmailTemplatesService .retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum.APPLICATION_SUBMISSION_TO_GEPAFIN, - call, null); + hub, null); // Create the map for subject placeholders Map subjectPlaceholders = new HashMap<>(); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/HubDao.java b/src/main/java/net/gepafin/tendermanagement/dao/HubDao.java index 3d5d6e7d..ee6e0d8a 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/HubDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/HubDao.java @@ -49,7 +49,7 @@ public class HubDao { hubRepository.save(hubEntity); } - private HubEntity validateHub(Long hubId) { + public HubEntity validateHub(Long hubId) { return hubRepository.findById(hubId) .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.HUB_NOT_FOUND))); diff --git a/src/main/java/net/gepafin/tendermanagement/dao/SystemEmailTemplatesDao.java b/src/main/java/net/gepafin/tendermanagement/dao/SystemEmailTemplatesDao.java index 9218a33d..1665a724 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/SystemEmailTemplatesDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/SystemEmailTemplatesDao.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import net.gepafin.tendermanagement.entities.CallEntity; +import net.gepafin.tendermanagement.entities.HubEntity; import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity; import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum; import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse; @@ -25,24 +25,27 @@ public class SystemEmailTemplatesDao { @Value("${fe.base.url}") private String feBaseUrl; + @Value("${default.email.signature}") + private String defaultEmailSignature; - public SystemEmailTemplateResponse retrieveTemplate(SystemEmailTemplatesEntityTypeEnum type, CallEntity call, Locale language) { + + public SystemEmailTemplateResponse retrieveTemplate(SystemEmailTemplatesEntityTypeEnum type, HubEntity hub, Locale language) { SystemEmailTemplatesEntity dbSystemEmailTemplatesEntity = null; - if(call != null){ + if(hub != null){ // dbSystemEmailTemplatesEntity = systemEmailTemplatesRespository // .findByTypeAndCallId(type.getValue(), call.getId()); } - if(dbSystemEmailTemplatesEntity == null){ + if(dbSystemEmailTemplatesEntity == null) { dbSystemEmailTemplatesEntity = systemEmailTemplatesRespository .findByType(type.getValue()); } - SystemEmailTemplateResponse systemEmailTemplateResponse = replaceHtmlContant(dbSystemEmailTemplatesEntity, call, language, Boolean.TRUE); + SystemEmailTemplateResponse systemEmailTemplateResponse = replaceHtmlContant(dbSystemEmailTemplatesEntity, hub, language, Boolean.TRUE); return systemEmailTemplateResponse; } private SystemEmailTemplateResponse replaceHtmlContant(SystemEmailTemplatesEntity dbSystemEmailTemplatesEntity, - CallEntity call, Locale language1, Boolean isDefaultReplace) { + HubEntity hub, Locale language1, Boolean isDefaultReplace) { String language = null; String htmlContent = dbSystemEmailTemplatesEntity.getHtmlContent(); String subject = dbSystemEmailTemplatesEntity.getSubject(); @@ -69,7 +72,8 @@ public class SystemEmailTemplatesDao { } - htmlContent = replacePlatformLinkPlaceholder(call, htmlContent, languageMap); + htmlContent = replacePlatformLinkPlaceholderAndEmailSignature(hub, htmlContent, languageMap); + subject = replacePlatformLinkPlaceholderAndEmailSignature(hub, subject, languageMap); SystemEmailTemplateResponse systemEmailTemplateResponse = new SystemEmailTemplateResponse(); systemEmailTemplateResponse.setHtmlContent(htmlContent); systemEmailTemplateResponse.setSubject(subject); @@ -102,15 +106,28 @@ public class SystemEmailTemplatesDao { } return ""; } - private String replacePlatformLinkPlaceholder(CallEntity call, String htmlContent, + private String replacePlatformLinkPlaceholderAndEmailSignature(HubEntity hub, String htmlContent, Map languageMap) { - String platformLink = feBaseUrl; + htmlContent = replacePlatformLinkPlaceholder(hub, htmlContent, languageMap); + htmlContent = replaceEmailSignature(hub, htmlContent, languageMap); -// if(hubEntity != null && Boolean.FALSE.equals(isEmpty(hubEntity.getDomainName()))){ -// platformLink = hubEntity.getDomainName(); -// } - htmlContent = htmlContent.replace("{{platform_link}}", platformLink); return htmlContent; } + private String replaceEmailSignature(HubEntity hub, String htmlContent, Map languageMap) { + String emailSignature = defaultEmailSignature; + if(hub != null && Boolean.FALSE.equals(StringUtils.isEmpty(hub.getEmailSignature()))){ + emailSignature = hub.getEmailSignature(); + } + return htmlContent.replace("{{email_signature}}", emailSignature); + } + + private String replacePlatformLinkPlaceholder(HubEntity hub, String htmlContent, Map languageMap) { + String platformLink = feBaseUrl; + if(hub != null && Boolean.FALSE.equals(StringUtils.isEmpty(hub.getDomainName()))){ + platformLink = hub.getDomainName(); + } + return htmlContent.replace("{{platform_link}}", platformLink); + } + } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/HubEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/HubEntity.java index 1b03f913..f3796342 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/HubEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/HubEntity.java @@ -42,4 +42,8 @@ public class HubEntity extends BaseEntity{ @Column(name = "UNIQUE_UUID") private String uniqueUuid; + + @Column(name = "EMAIL_SIGNATURE") + private String emailSignature; + } diff --git a/src/main/java/net/gepafin/tendermanagement/service/HubService.java b/src/main/java/net/gepafin/tendermanagement/service/HubService.java index 397bc533..ad763419 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/HubService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/HubService.java @@ -15,4 +15,5 @@ public interface HubService { void deleteHub(Long hubId); HubEntity getHubByUuid(String hubUuid); HubResponseBean getHubByHubUuid(String uuid); + HubEntity valdateHub(Long hubId); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/SystemEmailTemplatesService.java b/src/main/java/net/gepafin/tendermanagement/service/SystemEmailTemplatesService.java index b40dc80f..5d50893f 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/SystemEmailTemplatesService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/SystemEmailTemplatesService.java @@ -2,12 +2,12 @@ package net.gepafin.tendermanagement.service; import java.util.Locale; -import net.gepafin.tendermanagement.entities.CallEntity; +import net.gepafin.tendermanagement.entities.HubEntity; import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum; import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse; public interface SystemEmailTemplatesService { - SystemEmailTemplateResponse retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum type, CallEntity call, Locale language); + SystemEmailTemplateResponse retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum type, HubEntity hub, Locale language); } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/HubServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/HubServiceImpl.java index 513a89e4..3490a0e6 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/HubServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/HubServiceImpl.java @@ -56,4 +56,8 @@ public class HubServiceImpl implements HubService { public HubResponseBean getHubByHubUuid(String uuid) { return hubDao.getHubByHubUuid(uuid); } + @Override + public HubEntity valdateHub(Long hubId) { + return hubDao.validateHub(hubId); + } } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/SystemEmailTemplatesServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/SystemEmailTemplatesServiceImpl.java index 802f2580..34885c5b 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/SystemEmailTemplatesServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/SystemEmailTemplatesServiceImpl.java @@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import net.gepafin.tendermanagement.dao.SystemEmailTemplatesDao; -import net.gepafin.tendermanagement.entities.CallEntity; +import net.gepafin.tendermanagement.entities.HubEntity; import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum; import net.gepafin.tendermanagement.model.response.SystemEmailTemplateResponse; import net.gepafin.tendermanagement.service.SystemEmailTemplatesService; @@ -19,8 +19,8 @@ public class SystemEmailTemplatesServiceImpl implements SystemEmailTemplatesServ @Override - public SystemEmailTemplateResponse retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum type, CallEntity call, Locale language) { - return systemEmailTemplatesDao.retrieveTemplate(type, call, language); + public SystemEmailTemplateResponse retrieveTemplateByTypeAndCall(SystemEmailTemplatesEntityTypeEnum type, HubEntity hub, Locale language) { + return systemEmailTemplatesDao.retrieveTemplate(type, hub, language); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 283bf93d..45432caf 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -60,3 +60,5 @@ mailGun_base_url=https://api.eu.mailgun.net/ apiKey=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 #senderEmail=mailer@bflows.net +default.email.signature=Gepafin S.p.a + diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index 73ad16f7..a4980a25 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -1483,5 +1483,26 @@ + + + + + + + + + + + + + + UNIQUE_UUID = 'p4lk3bcx1RStqTaIVVbXs' + + + + UNIQUE_UUID = 't7jh5wfg9QXylNaTZkPoE' + + diff --git a/src/main/resources/db/dump/updated_system_email_template_for_application_submition_30-10-2024.sql b/src/main/resources/db/dump/updated_system_email_template_for_application_submition_30-10-2024.sql new file mode 100644 index 00000000..035a64cf --- /dev/null +++ b/src/main/resources/db/dump/updated_system_email_template_for_application_submition_30-10-2024.sql @@ -0,0 +1,37 @@ +UPDATE gepafin_schema.system_email_template SET html_content=' + +
+

Buongiorno,

+

+ Si comunica che, in riferimento alla domanda di concessione di + Finanziamento agevolato a valere sul Fondo prestiti + {{call_name}} di cui all''oggetto, la stessa è stata + regolarmente acquisita ed è stata registrata con Protocollo n. + {{protocol_number}} del {{date}} alle + {{time}}. +

+

Distinti Saluti,

+

+ {{email_signature}} +

+
+ +' WHERE "type"='APPLICATION_SUBMISSION_TO_USER_AND_COMPANY' AND "system"=true ; + + +UPDATE gepafin_schema.system_email_template SET html_content=' + +
+

+ In riferimento alla domanda di concessione di Finanziamento agevolato a valere sul Fondo prestiti + {{call_name}} di cui all’oggetto, la stessa è stata regolarmente acquisita ed è stata + registrata con Protocollo n. {{protocol_number}} del {{date}} alle {{time}}. +

+

Distinti Saluti,

+

+ {{email_signature}} +

+
+ +' WHERE "type"='APPLICATION_SUBMISSION_TO_GEPAFIN' AND "system"=true; +