保誠-保戶業務員媒合平台
Jack
2022-01-18 2f57dcc8883b62a4e006c634dd945cb3c7ae63c9
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;
    }
}