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/dto/ConsultantDetailDTO.java |   19 ++++++++++++++-----
 pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java |   21 +++++++++++++++++++--
 pamapi/src/doc/顧問API/指定顧問詳細資訊.txt                                        |    3 ++-
 3 files changed, 35 insertions(+), 8 deletions(-)

diff --git "a/pamapi/src/doc/\351\241\247\345\225\217API/\346\214\207\345\256\232\351\241\247\345\225\217\350\251\263\347\264\260\350\263\207\350\250\212.txt" "b/pamapi/src/doc/\351\241\247\345\225\217API/\346\214\207\345\256\232\351\241\247\345\225\217\350\251\263\347\264\260\350\263\207\350\250\212.txt"
index 7960edd..9b6530d 100644
--- "a/pamapi/src/doc/\351\241\247\345\225\217API/\346\214\207\345\256\232\351\241\247\345\225\217\350\251\263\347\264\260\350\263\207\350\250\212.txt"
+++ "b/pamapi/src/doc/\351\241\247\345\225\217API/\346\214\207\345\256\232\351\241\247\345\225\217\350\251\263\347\264\260\350\263\207\350\250\212.txt"
@@ -13,7 +13,8 @@
   "companyAddress" : "��蝮����銝剜迤頝�30���9璅�",
   "latestLoginTime" : "2021-12-24T08:48:21.497Z",
   "seniority" : "38 撟� ",
-  "evaluation" : 50,
+  "nearlyMonthAppointmentCount" : 30, 餈����������隢株岷摨�
+  "allAppointmentCount" : 50, �����������隢株岷摨�
   "expertise" : [ "�摨瑁����", "摮戊��", "鞈閬��", "璅暑��隡�", "靽�瑼�/閬��", "����" ],
   "concept" : "瘥遢靽閬������\r\n�敹�敹�票敹����恥�\r\n\r\n����之靽∪艙\r\n��� 擃p�� ���祥�����r\n��� 蝪∪��� ��������r\n��� 摰Zˊ��� �銝�隞賡������r\n\r\n���������風�������犖",
   "experiences" : "暻餌��極摮賊������飛蝟�,�憭余MBA,銝剖�之摮貉瓷��頂,鈭箄澈靽霅,鞎∠靽霅,�����霅,憭馳�隞�霅,��隡��移蝞葦霅,��靽鴽方�犖��岫霅,蝢�ˊ�蝞∴坐撣怨�,蝢�ˊ�鴽方�葦霅,蝢�瓷������靽葦霅",
diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java
index ea92f3f..f514e9d 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java
@@ -18,7 +18,8 @@
     private String companyAddress;
     private Instant latestLoginTime;
     private String seniority;
-    private Number evaluation;
+    private Number nearlyMonthAppointmentCount;
+    private Number allAppointmentCount;
     private List<String> expertise;
     private String concept;
     private String experiences;
@@ -115,12 +116,20 @@
         this.seniority = seniority;
     }
 
-    public Number getEvaluation() {
-        return evaluation;
+    public Number getNearlyMonthAppointmentCount() {
+        return nearlyMonthAppointmentCount;
     }
 
-    public void setEvaluation(Number evaluation) {
-        this.evaluation = evaluation;
+    public void setNearlyMonthAppointmentCount(Number nearlyMonthAppointmentCount) {
+        this.nearlyMonthAppointmentCount = nearlyMonthAppointmentCount;
+    }
+
+    public Number getAllAppointmentCount() {
+        return allAppointmentCount;
+    }
+
+    public void setAllAppointmentCount(Number allAppointmentCount) {
+        this.allAppointmentCount = allAppointmentCount;
     }
 
     public List<String> getExpertise() {
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 a04507a..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 = ',';
 
@@ -68,8 +76,17 @@
         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