From 9cb6d5f92ad7aeda45ad1fe6482dcfc63d17be2b Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期一, 06 十二月 2021 12:35:26 +0800 Subject: [PATCH] Merge branch 'master' of https://192.168.0.10:8443/r/pcalife/PAM --- pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java | 67 +++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 21 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 bbaf4a1..0730d6d 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java @@ -5,8 +5,8 @@ import java.util.Objects; import java.util.stream.Collectors; -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.service.dto.AppointmentDTO; +import com.pollex.pam.domain.Satisfaction; +import com.pollex.pam.service.dto.AppointmentUpdateDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -60,6 +60,28 @@ appointmentRepository.save(appointment); } + public void updateAppointment(AppointmentUpdateDTO updateAppointmentDTO) { + Appointment appointment = appointmentRepository.findById(updateAppointmentDTO.getId()).get(); + + appointment.setPhone(updateAppointmentDTO.getPhone()); + appointment.setEmail(updateAppointmentDTO.getEmail()); + appointment.setContactType(updateAppointmentDTO.getContactType()); + appointment.setGender(updateAppointmentDTO.getGender()); + appointment.setAge(updateAppointmentDTO.getAge()); + appointment.setJob(updateAppointmentDTO.getJob()); + appointment.setRequirement(updateAppointmentDTO.getRequirement()); + appointment.setHopeContactTime(updateAppointmentDTO.getHopeContactTime()); + appointment.setOtherRequirement(updateAppointmentDTO.getOtherRequirement()); + + appointmentRepository.save(appointment); + } + + public void markAppointmentDeleted(Long appointmentId) { + Appointment appointment = appointmentRepository.findById(appointmentId).get(); + appointment.setStatus(DELETED); + appointmentRepository.save(appointment); + } + public List<Appointment> findByAgentNo(String agentNo) { return appointmentRepository.findByAgentNo(agentNo); } @@ -68,14 +90,35 @@ Appointment appointment = appointmentRepository.findById(appointmentId).get(); appointment.setCommunicateStatus(ContactStatusEnum.CONTACTED); + appointment.setContactTime(Instant.now()); return appointmentRepository.save(appointment); } public AppointmentCustomerViewDTO getAppointmentDetail(Long appointmentId) { AppointmentCustomerView appointment = appointmentCustomerViewRepository.findById(appointmentId) .orElseThrow(AppointmentNotFoundException::new); - return appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointment); + + AppointmentCustomerViewDTO dto = appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointment); + setSatisfactionScore(dto, appointmentId); + return dto; } + + public List<AppointmentCustomerViewDTO> getConsultantAvailableAppointments(String agentNo) { + return appointmentCustomerViewRepository.findByAgentNo(agentNo).stream() + .filter(appointment -> appointment.getStatus() == AVAILABLE) + .map(appointmentCustomerView -> { + AppointmentCustomerViewDTO dto = appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointmentCustomerView); + setSatisfactionScore(dto, appointmentCustomerView.getId()); + return dto; + }) + .collect(Collectors.toList()); + } + + public void setSatisfactionScore(AppointmentCustomerViewDTO dto, Long appointmentId) { + satisfactionService.getByAppointmentId(appointmentId).ifPresent(satisfaction -> { + dto.setSatisfactionScore(satisfaction.getScore()); + }); + } public List<AppointmentCustomerView> findAvailableByAgentNoAndCustomerId(String agentNo, Long customerId) { return appointmentCustomerViewRepository.findByAgentNoAndCustomerId(agentNo, customerId) @@ -96,17 +139,6 @@ } } - 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() @@ -115,12 +147,5 @@ consultantNotViewAppointments.forEach(appointment -> appointment.setConsultantViewTime(Instant.now())); appointmentRepository.saveAll(consultantNotViewAppointments); - } - - public List<AppointmentCustomerViewDTO> getConsultantAppointments(String agentNo) { - return appointmentCustomerViewRepository.findByAgentNo(agentNo).stream() - .filter(appointment -> appointment.getStatus() != DELETED) - .map(appointmentCustomerViewMapper::toAppointmentCustomerViewDTO) - .collect(Collectors.toList()); } } -- Gitblit v1.8.0