From 5506b4a7950ac5cb59e3d966ddda18b17bd39373 Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期一, 15 十一月 2021 11:40:01 +0800 Subject: [PATCH] [update] 我的顧問清單新增最後預約單id --- pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java | 32 ++++++++++++++++++++++++++------ 1 files changed, 26 insertions(+), 6 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java index 5ad63d7..deb3705 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java +++ b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java @@ -1,21 +1,28 @@ package com.pollex.pam.service.mapper; +import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.Consultant; import com.pollex.pam.domain.CustomFavoriteConsultant; +import com.pollex.pam.enums.ContactStatusEnum; +import com.pollex.pam.service.AppointmentService; import com.pollex.pam.service.dto.ConsultantDTO; import com.pollex.pam.service.dto.ConsultantDetailDTO; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import java.time.Instant; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service public class ConsultantMapper { private final static Character SPLIT_MASK = ','; + + private final AppointmentService appointmentService; + + public ConsultantMapper(AppointmentService appointmentService) { + this.appointmentService = appointmentService; + } public ConsultantDTO toDto(Consultant source) { ConsultantDTO consultantDTO = new ConsultantDTO(); @@ -28,6 +35,7 @@ consultantDTO.setContactStatus(null); consultantDTO.setUpdateTime(null); + consultantDTO.setLatestAppointmentId(null); return consultantDTO; } @@ -36,9 +44,21 @@ Consultant consultant = customFavoriteConsultant.getConsultant(); ConsultantDTO dto = toDto(consultant); - Instant updateTime = customFavoriteConsultant.getLastModifiedDate(); - dto.setContactStatus(customFavoriteConsultant.getContactStatus()); - dto.setUpdateTime(updateTime); + final Optional<Appointment> latestAppointmentOptional = appointmentService.findByAgentNoAndCustomerId(consultant.getAgentNo(), customFavoriteConsultant.getCustomerId()) + .stream() + .max(Comparator.comparing(Appointment::getAppointmentDate)); + + if(latestAppointmentOptional.isPresent()) { + Appointment latestAppointment = latestAppointmentOptional.get(); + dto.setContactStatus(latestAppointment.getCommunicateStatus()); + dto.setLatestAppointmentId(latestAppointment.getId()); + dto.setUpdateTime(latestAppointment.getAppointmentDate()); + } + else { + dto.setContactStatus(ContactStatusEnum.PICKED); + dto.setLatestAppointmentId(null); + dto.setUpdateTime(customFavoriteConsultant.getLastModifiedDate()); + } return dto; } -- Gitblit v1.8.0