From a6b0be5d9e6e21b050d1d46c30aa0200d82ec4d5 Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期六, 22 一月 2022 11:46:41 +0800
Subject: [PATCH] [update] [todo 134497] 批次處理尚未填寫滿意度的小鈴鐺通知

---
 pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 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 9a682e4..60bb60a 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java
@@ -4,8 +4,10 @@
 import com.pollex.pam.domain.Appointment;
 import com.pollex.pam.domain.AppointmentExpiringNotifyRecord;
 import com.pollex.pam.domain.Consultant;
+import com.pollex.pam.domain.Satisfaction;
 import com.pollex.pam.enums.AppointmentStatusEnum;
 import com.pollex.pam.enums.ContactStatusEnum;
+import com.pollex.pam.enums.SatisfactionStatusEnum;
 import com.pollex.pam.repository.AppointmentExpiringNotifyRecordRepository;
 import com.pollex.pam.repository.AppointmentRepository;
 import org.slf4j.Logger;
@@ -13,6 +15,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 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;
@@ -26,6 +29,7 @@
 import java.util.stream.Collectors;
 
 @Service
+@Transactional
 public class ScheduleTaskService {
 
     /**
@@ -70,6 +74,12 @@
 
     @Autowired
     AppointmentExpiringNotifyRecordRepository appointmentExpiringNotifyRecordRepository;
+
+    @Autowired
+    SatisfactionService satisfactionService;
+
+    @Autowired
+    PersonalNotificationService personalNotificationService;
 
     @Scheduled(cron = "0 30 8 * * *")
     public void sendAppointmentPendingNotifyToConsultant() {
@@ -129,6 +139,18 @@
         log.info("Sending appointment expiring notify to customer finish");
     }
 
+    // todo ��蝣箄�府����, otis todo=134497
+    @Scheduled(cron = "0 0 9 * * *")
+    public void sendNotFillSatisfactionToPersonalNotification() {
+        Map<Long, List<Satisfaction>> customerNotFillSatisfactions = satisfactionService.getByStatus(SatisfactionStatusEnum.UNFILLED)
+                .stream()
+                .collect(Collectors.groupingBy(Satisfaction::getCustomerId));
+
+        customerNotFillSatisfactions.forEach((customerId, notFillSatisfactions) ->
+            personalNotificationService.createNotFillSatisfactionSumToCustomer(customerId, notFillSatisfactions.size())
+        );
+    }
+
     private boolean isAppointmentInInterval(Appointment appointment, int phoneInterval, int emailInterval) {
         final boolean isHavePhone = StringUtils.hasText(appointment.getPhone());
         final boolean isHaveEmail = StringUtils.hasText(appointment.getEmail());

--
Gitblit v1.8.0