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