package com.pollex.pam.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.AppointmentNoticeLog; import com.pollex.pam.enums.ContactStatusEnum; import com.pollex.pam.repository.AppointmentRepository; import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; @Service @Transactional public class NoticeService { @Autowired AppointmentService appointmentService; @Autowired SendMsgService sendMsgService; @Autowired AppointmentNoticeLogService appointmentNoticeLogService; @Autowired AppointmentRepository appointmentRepository; @Autowired PersonalNotificationService personalNotificationService; public void sendNotice(AppointmentNoticeSendDTO dto) { String subject = "保誠媒合平台系統通知:預約通知"; if(StringUtils.hasText(dto.getEmail())) { sendMsgService.sendMsgByEmail(dto.getEmail(), subject, dto.getMessage(), true); }if(StringUtils.hasText(dto.getPhone())) { sendMsgService.sendMsgBySMS(dto.getPhone(), dto.getMessage()); } List noticeLogs = appointmentNoticeLogService.findByAppointmentId(dto.getAppointmentId()); if(noticeLogs.size()==0) { Appointment appointment = appointmentService.findById(dto.getAppointmentId()); appointment.setCommunicateStatus(ContactStatusEnum.CONTACTED); appointmentRepository.save(appointment); } appointmentNoticeLogService.create(dto); personalNotificationService.createSendNoticeToCustomer(dto.getAppointmentId()); } }