From ac594e4efb30ba28776d74b0fb08ab34d7c32023 Mon Sep 17 00:00:00 2001
From: HelenHuang <LinHuang@pollex.com.tw>
Date: 星期四, 30 十二月 2021 15:20:08 +0800
Subject: [PATCH] Merge branch 'Phase2'

---
 pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java |   45 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java b/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java
index 58e5650..9f8ee6c 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java
@@ -1,5 +1,6 @@
 package com.pollex.pam.service;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Optional;
 
@@ -8,8 +9,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import com.pollex.pam.domain.Appointment;
+import com.pollex.pam.domain.Consultant;
 import com.pollex.pam.domain.Satisfaction;
-import com.pollex.pam.enums.SatisfactionStatusEnum;
+import com.pollex.pam.repository.ConsultantRepository;
 import com.pollex.pam.repository.CustomerRepository;
 import com.pollex.pam.repository.SatisfactionRepository;
 import com.pollex.pam.service.dto.SatisfactionCustomerCreateDTO;
@@ -21,25 +23,50 @@
 @Service
 @Transactional
 public class SatisfactionService {
-	
+
 	@Autowired
 	SatisfactionRepository satisfactionRepository;
-	
+
 	@Autowired
 	AppointmentMapper appointmentMapper;
-	
+
 	@Autowired
 	SatisfactionDTOMapper satisfactionDTOMapper;
-	
+
 	@Autowired
 	SatisfactionMapper satisfactionMapper;
-	
+
 	@Autowired
 	CustomerRepository customerRepository;
 	
+	@Autowired
+	ConsultantRepository consultantRepository;
+
 	public Satisfaction createSatisfaction(Satisfaction satisfaction) {
-		return satisfactionRepository.save(satisfaction);
+		satisfaction = satisfactionRepository.save(satisfaction);
+		setConsultantAvgScore(satisfaction);
+		return satisfaction;
 	}
+
+
+
+	private void setConsultantAvgScore(Satisfaction satisfaction) {
+		float avgScore = getAgentAvgScore(satisfaction);
+		Consultant consultant = consultantRepository.findOneByAgentNo(satisfaction.getAgentNo())
+				.get();
+		consultant.setAvgScore(avgScore);
+		consultantRepository.save(consultant);
+	}
+
+
+
+	private float getAgentAvgScore(Satisfaction satisfaction) {
+		Float avgScore = satisfactionRepository.getAgentScoreAvg(satisfaction.getAgentNo());
+		BigDecimal bigDecimal = new BigDecimal(avgScore);  
+		return avgScore = bigDecimal.setScale(1,BigDecimal.ROUND_HALF_UP).floatValue();
+	}
+	 
+	
 
 	public Satisfaction createSatisfaction(Appointment appointment) {
 		Satisfaction satisfaction = appointmentMapper.toSatisfaction(appointment);
@@ -62,4 +89,8 @@
 		List<Satisfaction> satisfactionList = satisfactionRepository.findByCustomerId(customerDBId);
 		return satisfactionMapper.toDTO(satisfactionList);
 	}
+
+    public Optional<Satisfaction> getByAppointmentId(Long appointmentId) {
+        return satisfactionRepository.findOneByAppointmentId(appointmentId);
+    }
 }

--
Gitblit v1.8.0