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