From d43c8dc4aff64ddcf2481e41274ff087ea03d920 Mon Sep 17 00:00:00 2001 From: Mila <Mila@pollex.com.tw> Date: 星期三, 01 十二月 2021 15:01:47 +0800 Subject: [PATCH] Merge branch 'master' of https://192.168.0.10:8443/r/pcalife/PAM --- pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java | 48 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 33 insertions(+), 15 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..8a8d485 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,44 +1,63 @@ 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.domain.CustomerFavoriteConsultant; +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.beans.factory.annotation.Autowired; 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 static final Character SPLIT_MASK = ','; + + @Autowired + AppointmentService appointmentService; public ConsultantDTO toDto(Consultant source) { ConsultantDTO consultantDTO = new ConsultantDTO(); consultantDTO.setAgentNo(source.getAgentNo()); consultantDTO.setName(source.getName()); consultantDTO.setAvgScore(source.getAvgScore()); - consultantDTO.setSeniority(source.getSeniority()); + consultantDTO.setSeniority(source.getSeniorityDTOString()); consultantDTO.setExpertise(splitStringWithChar(source.getExpertise())); consultantDTO.setImg(source.getPhotoPath()); + consultantDTO.setRole(source.getRole()); consultantDTO.setContactStatus(null); consultantDTO.setUpdateTime(null); + consultantDTO.setLatestAppointmentId(null); return consultantDTO; } - public ConsultantDTO toDto(CustomFavoriteConsultant customFavoriteConsultant) { - Consultant consultant = customFavoriteConsultant.getConsultant(); + public ConsultantDTO toDto(CustomerFavoriteConsultant customerFavoriteConsultant) { + Consultant consultant = customerFavoriteConsultant.getConsultant(); ConsultantDTO dto = toDto(consultant); - Instant updateTime = customFavoriteConsultant.getLastModifiedDate(); - dto.setContactStatus(customFavoriteConsultant.getContactStatus()); - dto.setUpdateTime(updateTime); + final Optional<Appointment> latestAppointmentOptional = appointmentService.findByAgentNoAndCustomerId(consultant.getAgentNo(), customerFavoriteConsultant.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(customerFavoriteConsultant.getLastModifiedDate()); + } return dto; } @@ -53,17 +72,16 @@ consultantDetailDTO.setPhoneNumber(source.getPhoneNumber()); consultantDetailDTO.setServeArea(source.getServeArea()); consultantDetailDTO.setCompanyAddress(source.getCompanyAddress()); - consultantDetailDTO.setLatestLoginTime(source.getLatestLoginTime()); - consultantDetailDTO.setSeniority(source.getSeniority()); + consultantDetailDTO.setSeniority(source.getSeniorityDTOString()); consultantDetailDTO.setConcept(source.getConcept()); consultantDetailDTO.setAwards(source.getAward()); consultantDetailDTO.setImage(source.getPhotoPath()); + consultantDetailDTO.setExpertises(splitStringWithChar(source.getExpertise())); + consultantDetailDTO.setExperiences(splitStringWithChar(source.getExperience())); // todo 瘙箏����漲 consultantDetailDTO.setSuitability(50); consultantDetailDTO.setEvaluation(50); - consultantDetailDTO.setExpertises(splitStringWithChar(source.getExpertise())); - consultantDetailDTO.setExperiences(splitStringWithChar(source.getExperience())); return consultantDetailDTO; } -- Gitblit v1.8.0