From 2f57dcc8883b62a4e006c634dd945cb3c7ae63c9 Mon Sep 17 00:00:00 2001 From: Jack <jack.su@pollex.com.tw> Date: 星期二, 18 一月 2022 19:50:03 +0800 Subject: [PATCH] [ADD] 顧問主動發送填寫滿意度通知 --- pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java index 32d8e51..2efd89f 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java @@ -1,6 +1,7 @@ package com.pollex.pam.service; import com.pollex.pam.config.ApplicationProperties; +import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.AppointmentCustomerView; import com.pollex.pam.domain.Consultant; import com.pollex.pam.domain.CustomerFavoriteConsultant; @@ -20,6 +21,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.thymeleaf.context.Context; +import org.thymeleaf.spring5.SpringTemplateEngine; import java.io.File; import java.io.FileInputStream; @@ -35,6 +39,7 @@ import static com.pollex.pam.enums.ContactStatusEnum.*; @Service +@Transactional public class ConsultantService { private static final Logger log = LoggerFactory.getLogger(ConsultantService.class); @@ -65,6 +70,18 @@ @Autowired ApplicationProperties applicationProperty; + + @Autowired + SendMsgService sendMsgService; + + @Autowired + SpringTemplateEngine springTemplateEngine; + + @Autowired + ApplicationProperties applicationProperties; + + @Autowired + ConsultantService consultantService; public List<CustomerFavoriteConsultantDTO> getMyConsultantList() { Long customerId = SecurityUtils.getCustomerDBId(); @@ -236,4 +253,39 @@ return null; } } + + public void sendSatisfactionToClient(Appointment appointment) { + String subject = "皛踵�漲憛怠神�"; + + if(StringUtils.hasText(appointment.getEmail())) { + String content = genSendSatisfactionEmailContent(appointment); + sendMsgService.sendMsgByEmail(appointment.getEmail(), subject, content, true); + + }if(StringUtils.hasText(appointment.getPhone())) { + String content = genSendSatisfactionSMSContent(appointment); + sendMsgService.sendMsgBySMS(appointment.getPhone(), content); + } + } + + private String genSendSatisfactionSMSContent(Appointment appointment) { + String agentNo = appointment.getAgentNo(); + Consultant consultant = consultantService.findByAgentNo(agentNo); + String contsultantName = consultant.getName(); + String content = contsultantName+"憿批��憛怠神靽���像���遛��漲閰��"+getSendSatisfactionToClientUrl(appointment.getId()); + return content; + } + + private String genSendSatisfactionEmailContent(Appointment appointment) { + String agentNo = appointment.getAgentNo(); + Consultant consultant = consultantService.findByAgentNo(agentNo); + Context context = new Context(); + context.setVariable("consultantName", consultant.getName()); + context.setVariable("appointmentUrl", getSendSatisfactionToClientUrl(appointment.getId())); + String content = springTemplateEngine.process("mail/writeSatisfactionNotice", context); + return content; + } + + public String getSendSatisfactionToClientUrl(Long appointmentId) { + return applicationProperties.getFrontEndDomain() + "/?appointmentId=" + appointmentId; + } } -- Gitblit v1.8.0