From 73307b0ada907f8ac857b3dfc4e7d50e3b7b92e9 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期一, 24 一月 2022 16:24:52 +0800
Subject: [PATCH] Merge branch 'Phase3' of https://dev.pollex.com.tw:8443/r/pcalife/PAM into Phase3

---
 pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java b/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java
index 604479e..57324b5 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java
@@ -73,12 +73,17 @@
         consultantWithPendingAppointments.forEach((agentNo, pendingAppointments) -> {
             int pendingAppointmentsSum = pendingAppointments.size();
             Consultant consultant = consultantService.findByAgentNo(agentNo);
-            String consultantPhoneNumber = consultant.getPhoneNumber();
-            String consultantEmail = consultant.getEmail();
+            Optional<String> optionalPhone = Optional.ofNullable(consultant.getPhoneNumber()).filter(StringUtils::hasText);
+            Optional<String> optionalEmail = Optional.ofNullable(consultant.getEmail()).filter(StringUtils::hasText);
+
             String emailContent = getAppointmentPendingNotifyEmailContent(pendingAppointmentsSum);
 
-            sendMsgService.sendMsgBySMS(consultantPhoneNumber, String.format("����%s������脰�蝜恬������", pendingAppointmentsSum));
-            sendMsgService.sendMsgByEmail(consultantEmail, NOT_CONTACTED_NOTIFY_SUBJECT, emailContent, true);
+            optionalPhone.ifPresent(phone -> {
+                sendMsgService.sendMsgBySMS(phone, String.format("����%s������脰�蝜恬������", pendingAppointmentsSum));
+            });
+            optionalEmail.ifPresent(email -> {
+                sendMsgService.sendMsgByEmail(email, NOT_CONTACTED_NOTIFY_SUBJECT, emailContent, true);
+            });
         });
 
         log.info("Sending appointment pending notify to consultant finish");
@@ -94,7 +99,7 @@
                 .filter(appointment ->
                     appointmentService.isAppointmentDateNotInIntervalFromNow(appointment, Constants.APPOINTMENT_EXPIRING_PHONE_INTERVAL, Constants.APPOINTMENT_EXPIRING_EMAIL_INTERVAL)
                 )
-                .filter(this::isAppointmentNotifyNotOnLimit)
+                .filter(this::isAppointmentExpiringNotifyNotOnLimit)
                 .collect(Collectors.toList());
 
         allByCommunicateStatus.forEach(appointment -> {
@@ -104,10 +109,10 @@
 
             optionalPhone.ifPresent(phone ->
                 sendMsgService.sendMsgBySMS(phone, String.format("敺甇�����%s憿批�迤敹�葉嚗������蒂���隞“������雯��嚗�%s"
-                    , consultant.getName(), getAppointmentUrl(appointment.getId())))
+                    , consultant.getName(), getAppointmentExpiringNotifyUrl(appointment.getId())))
             );
             optionalEmail.ifPresent(email ->
-                sendMsgService.sendMsgByEmail(email, NOT_CONTACTED_NOTIFY_SUBJECT, getAppointmentExpiringNotifyEmail(consultant.getName(), getAppointmentUrl(appointment.getId())), true)
+                sendMsgService.sendMsgByEmail(email, NOT_CONTACTED_NOTIFY_SUBJECT, getAppointmentExpiringNotifyEmail(consultant.getName(), getAppointmentExpiringNotifyUrl(appointment.getId())), true)
             );
 
             AppointmentExpiringNotifyRecord record = new AppointmentExpiringNotifyRecord();
@@ -121,7 +126,7 @@
     }
 
     // todo ��蝣箄�府����, otis todo=134497
-    @Scheduled(cron = "0 0 9 * * *")
+    @Scheduled(cron = "0 30 8 * * *")
     public void sendNotFillSatisfactionToPersonalNotification() {
         Map<Long, List<Satisfaction>> customerNotFillSatisfactions = satisfactionService.getByStatus(SatisfactionStatusEnum.UNFILLED)
                 .stream()
@@ -132,14 +137,14 @@
         );
     }
 
-    private boolean isAppointmentNotifyNotOnLimit(AppointmentCustomerView appointment) {
+    private boolean isAppointmentExpiringNotifyNotOnLimit(AppointmentCustomerView appointment) {
         int sendNotifyToCustomerRecordSum =
             appointmentExpiringNotifyRecordRepository.findAllByAppointmentId(appointment.getId()).size();
 
         return sendNotifyToCustomerRecordSum < Constants.SEND_EXPIRING_NOTIFY_LIMIT;
     }
 
-    private String getAppointmentUrl(Long appointmentId) {
+    private String getAppointmentExpiringNotifyUrl(Long appointmentId) {
         return applicationProperties.getFrontEndDomain() + "?notContactAppointmentId=" + appointmentId;
     }
 

--
Gitblit v1.8.0