From 00ac6f95a8cc129ec262f27ce6a162d0713bf002 Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期四, 02 十二月 2021 16:02:40 +0800 Subject: [PATCH] [ref] 重購取得我的顧問清單程式碼 --- pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java | 41 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 39 insertions(+), 2 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java index 1831f6d..7e23420 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java @@ -2,7 +2,11 @@ import java.time.Instant; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import com.pollex.pam.enums.AppointmentStatusEnum; +import com.pollex.pam.service.dto.AppointmentDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +24,8 @@ import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper; import com.pollex.pam.service.mapper.AppointmentDTOMapper; import com.pollex.pam.web.rest.errors.AppointmentNotFoundException; + +import static com.pollex.pam.enums.AppointmentStatusEnum.DELETED; @Service @Transactional @@ -42,22 +48,26 @@ @Autowired AppointmentCustomerViewRepository appointmentCustomerViewRepository; + @Autowired + SatisfactionService satisfactionService; + public void customerCreateAppointment(AppointmentCreateDTO appointmentCreateDTO) { Appointment appointment = appointmentDTOMapper.toAppointment(appointmentCreateDTO); appointment.setCustomerId(SecurityUtils.getCustomerDBId()); appointment.setCommunicateStatus(ContactStatusEnum.RESERVED); appointmentRepository.save(appointment); + } public List<Appointment> findByAgentNo(String agentNo) { return appointmentRepository.findByAgentNo(agentNo); } - public void markAsContacted(Long appointmentId) { + public Appointment markAsContacted(Long appointmentId) { Appointment appointment = appointmentRepository.findById(appointmentId).get(); appointment.setCommunicateStatus(ContactStatusEnum.CONTACTED); - appointmentRepository.save(appointment); + return appointmentRepository.save(appointment); } @@ -83,4 +93,31 @@ log.debug("this appointment was read, read time = {}", appointment.getConsultantReadTime()); } } + + public void updateAppointment(AppointmentDTO appointmentDTO) { + Appointment appointment = appointmentDTOMapper.toAppointment(appointmentDTO); + appointmentRepository.save(appointment); + } + + public void markAppointmentDeleted(Long appointmentId) { + Appointment appointment = appointmentRepository.findById(appointmentId).get(); + appointment.setStatus(DELETED); + + appointmentRepository.save(appointment); + } + + public void recordAllAppointmentsView(String agentNo) { + List<Appointment> consultantNotViewAppointments = findByAgentNo(agentNo) + .stream() + .filter(appointment -> Objects.isNull(appointment.getConsultantViewTime())) + .collect(Collectors.toList()); + + consultantNotViewAppointments.forEach(appointment -> appointment.setConsultantViewTime(Instant.now())); + appointmentRepository.saveAll(consultantNotViewAppointments); + } + + public List<AppointmentCustomerViewDTO> getConsultantAppointments(String agentNo) { + List<AppointmentCustomerView> appointmentList = appointmentCustomerViewRepository.findByAgentNo(agentNo); + return appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointmentList); + } } -- Gitblit v1.8.0