From 22ff4ec80f1105b804f7b3e5cff960dae5d07652 Mon Sep 17 00:00:00 2001
From: Jack <jack.su@pollex.com.tw>
Date: 星期二, 11 一月 2022 17:04:17 +0800
Subject: [PATCH] [UPDATE] 更新預約單狀態新增新的狀態 [UPDATE] 取消預約時一併更新預約單的狀態為cancel [REF] 針對發送email和簡訊當設定檔為開發環境時不會實際連線

---
 pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
index 72a1e29..32d8e51 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
@@ -1,5 +1,6 @@
 package com.pollex.pam.service;
 
+import com.pollex.pam.config.ApplicationProperties;
 import com.pollex.pam.domain.AppointmentCustomerView;
 import com.pollex.pam.domain.Consultant;
 import com.pollex.pam.domain.CustomerFavoriteConsultant;
@@ -10,7 +11,9 @@
 import com.pollex.pam.security.SecurityUtils;
 import com.pollex.pam.service.dto.*;
 import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper;
+import com.pollex.pam.service.mapper.ConsultantDTOMapper;
 import com.pollex.pam.service.mapper.ConsultantMapper;
+import com.pollex.pam.service.util.FileUtil;
 import com.pollex.pam.web.rest.errors.ConsultantNotFoundException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,11 +21,18 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
 import java.time.Instant;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+
+import static com.pollex.pam.enums.ContactStatusEnum.*;
 
 @Service
 public class ConsultantService {
@@ -49,6 +59,12 @@
 
     @Autowired
     SatisfactionService satisfactionService;
+
+    @Autowired
+    ConsultantDTOMapper consultantDTOMapper;
+
+    @Autowired
+    ApplicationProperties applicationProperty;
 
     public List<CustomerFavoriteConsultantDTO> getMyConsultantList() {
         Long customerId = SecurityUtils.getCustomerDBId();
@@ -96,7 +112,11 @@
 
         if (!appointments.isEmpty()) {
             AppointmentCustomerView latestAvailableAppointment = appointments.get(0);
-            customerFavoriteConsultantDTO.setContactStatus(latestAvailableAppointment.getCommunicateStatus());
+
+            if(latestAvailableAppointment.getCommunicateStatus() == RESERVED)
+                customerFavoriteConsultantDTO.setContactStatus(RESERVED);
+            else
+                customerFavoriteConsultantDTO.setContactStatus(PICKED);
         }
     }
 
@@ -191,4 +211,29 @@
 
         customerFavoriteConsultantRepository.saveAll(notViewRelation);
     }
+
+    public Consultant findByAgentNo(String agentNo) {
+        return consultantRepository.findOneByAgentNo(agentNo).get();
+    }
+
+	public Consultant editConsultant(ConsultantEditDTO editDTO) {
+		Consultant consultant = consultantRepository.findOneByAgentNo(editDTO.getAgentNo())
+				.orElseThrow(ConsultantNotFoundException::new);
+		consultantDTOMapper.copyToConsultant(editDTO, consultant);
+		FileUtil.base64ToFile(editDTO.getPhotoBase64(), editDTO.getPhotoFileName(), applicationProperty.getFileFolderPath());
+		return consultantRepository.save(consultant);
+	}
+
+	public InputStream getAvatarImage(String agentNo) {
+		Consultant consultant = consultantRepository.findOneByAgentNo(agentNo)
+				.orElseThrow(ConsultantNotFoundException::new);
+		File file = new File(consultant.getPhotoPath());
+		try {
+			InputStream in = new FileInputStream(file);
+			return in;
+		} catch (FileNotFoundException e) {
+			log.error("agent photo not found , agentNo:"+agentNo,e);
+			return null;
+		}
+	}
 }

--
Gitblit v1.8.0