From 03a858f2882bedeb5925b65cb045ccbbb1202329 Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期三, 24 十一月 2021 16:01:04 +0800
Subject: [PATCH] [update] otp呼叫方式調整,並針對sit版本除錯

---
 pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java |   56 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 40 insertions(+), 16 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 f1261e8..138c713 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,15 +1,17 @@
 package com.pollex.pam.service.mapper;
 
+import com.pollex.pam.domain.Appointment;
 import com.pollex.pam.domain.Consultant;
+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
@@ -17,26 +19,47 @@
 
     private final static Character SPLIT_MASK = ',';
 
-    public List<ConsultantDTO> toDto(List<Consultant> source) {
-        return source.stream().map(this::toDto).collect(Collectors.toList());
-    }
+    @Autowired
+    AppointmentService appointmentService;
 
-    // todo convert
     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());
-
-        // todo
-        consultantDTO.setImg("");
         consultantDTO.setExpertise(splitStringWithChar(source.getExpertise()));
-        consultantDTO.setNewConsultant(false);
-        consultantDTO.setContactStatus(ContactStatusEnum.CONTACTED);
-        consultantDTO.setUpdateTime(Instant.now());
+        consultantDTO.setImg(source.getPhotoPath());
+        consultantDTO.setRole(source.getRole());
+
+        consultantDTO.setContactStatus(null);
+        consultantDTO.setUpdateTime(null);
+        consultantDTO.setLatestAppointmentId(null);
 
         return consultantDTO;
+    }
+
+    public ConsultantDTO toDto(CustomerFavoriteConsultant customerFavoriteConsultant) {
+        Consultant consultant = customerFavoriteConsultant.getConsultant();
+        ConsultantDTO dto = toDto(consultant);
+
+        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;
     }
 
     public ConsultantDetailDTO toDetailDto(Consultant source) {
@@ -53,10 +76,11 @@
         consultantDetailDTO.setSeniority(source.getSeniority());
         consultantDetailDTO.setConcept(source.getConcept());
         consultantDetailDTO.setAwards(source.getAward());
+        consultantDetailDTO.setImage(source.getPhotoPath());
 
-        consultantDetailDTO.setImage("");
-        consultantDetailDTO.setSuitability(0);
-        consultantDetailDTO.setEvaluation(0);
+        // todo 瘙箏����漲
+        consultantDetailDTO.setSuitability(50);
+        consultantDetailDTO.setEvaluation(50);
         consultantDetailDTO.setExpertises(splitStringWithChar(source.getExpertise()));
         consultantDetailDTO.setExperiences(splitStringWithChar(source.getExperience()));
 

--
Gitblit v1.8.0