From fa782dca2a00e9a4a48c5b3588f5eb3b47af93cf Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期二, 01 三月 2022 15:41:05 +0800
Subject: [PATCH] [update] [todo 136031] 諮詢度表現,提供前端該顧問所有預約單數量以及近一個月的預約單數量

---
 pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 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 2406c7e..a5f8a21 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,18 +1,26 @@
 package com.pollex.pam.service.mapper;
 
+import com.pollex.pam.domain.Appointment;
 import com.pollex.pam.domain.Consultant;
+import com.pollex.pam.service.AppointmentService;
 import com.pollex.pam.service.dto.ConsultantDTO;
 import com.pollex.pam.service.dto.ConsultantDetailDTO;
 import com.pollex.pam.service.dto.CustomerFavoriteConsultantDTO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.Instant;
+import java.time.ZonedDateTime;
 import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
 public class ConsultantMapper {
+
+    @Autowired
+    AppointmentService appointmentService;
 
     private static final Character SPLIT_MASK = ',';
 
@@ -36,14 +44,16 @@
         ConsultantDTO consultantDTO = new ConsultantDTO();
         consultantDTO.setAgentNo(source.getAgentNo());
         consultantDTO.setName(source.getName());
-        consultantDTO.setRole(source.getRole());
         consultantDTO.setAvgScore(source.getAvgScore());
-        consultantDTO.setServeArea(splitStringWithChar(source.getServeArea()));
-        consultantDTO.setSeniority_year(source.getSeniorityYear());
-        consultantDTO.setSeniority_month(source.getSeniorityMonth());
+        consultantDTO.setSeniority(source.getSeniorityDTOString());
         consultantDTO.setExpertise(splitStringWithChar(source.getExpertise()));
-        consultantDTO.setGender(source.getGender());
-        consultantDTO.setCommunicationStyle(source.getCommunicationStyle());
+        consultantDTO.setImg(source.getPhotoPath());
+        consultantDTO.setRole(source.getRole());
+
+        consultantDTO.setSuitability(0);
+        consultantDTO.setContactStatus(null);
+        consultantDTO.setUpdateTime(null);
+//        consultantDTO.setLatestAppointmentId(null);
 
         return consultantDTO;
     }
@@ -57,16 +67,26 @@
         consultantDetailDTO.setAvgScore(source.getAvgScore());
         consultantDetailDTO.setTitle(source.getTitle());
         consultantDetailDTO.setPhoneNumber(source.getPhoneNumber());
-        consultantDetailDTO.setServeArea(splitStringWithChar(source.getServeArea()));
+        consultantDetailDTO.setServeArea(source.getServeArea());
         consultantDetailDTO.setCompanyAddress(source.getCompanyAddress());
         consultantDetailDTO.setSeniority(source.getSeniorityDTOString());
         consultantDetailDTO.setConcept(source.getConcept());
         consultantDetailDTO.setAwards(source.getAward());
+        consultantDetailDTO.setImg(source.getPhotoPath());
         consultantDetailDTO.setExpertise(splitStringWithChar(source.getExpertise()));
         consultantDetailDTO.setExperiences(source.getExperience());
 
-        // todo ��蝣箄�垣閰W漲銵函
-        consultantDetailDTO.setEvaluation(50);
+        List<Appointment> appointments = appointmentService.findByAgentNo(source.getAgentNo());
+        long allAppointmentCount = appointments.size();
+        long nearlyMonthAppointmentCount = appointments
+            .stream()
+            .filter(appointment -> {
+                Instant oneMonthAgo = ZonedDateTime.now().minusMonths(1).toInstant();
+                return appointment.getAppointmentDate().isAfter(oneMonthAgo);
+            }).count();
+
+        consultantDetailDTO.setAllAppointmentCount(allAppointmentCount);
+        consultantDetailDTO.setNearlyMonthAppointmentCount(nearlyMonthAppointmentCount);
 
         return consultantDetailDTO;
     }

--
Gitblit v1.8.0