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<AppointmentNoticeLog> 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());
|
}
|
|
}
|