From dd33317a77f862c17b943bd3374c5344e1e77002 Mon Sep 17 00:00:00 2001
From: Jack <jack.su@pollex.com.tw>
Date: 星期五, 03 十二月 2021 12:18:46 +0800
Subject: [PATCH] [ADD] 新增滿意度調查及時更改顧問的平均分數

---
 pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 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 0c0b5f8..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,7 +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.repository.ConsultantRepository;
 import com.pollex.pam.repository.CustomerRepository;
 import com.pollex.pam.repository.SatisfactionRepository;
 import com.pollex.pam.service.dto.SatisfactionCustomerCreateDTO;
@@ -35,11 +38,36 @@
 
 	@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);
 		return createSatisfaction(satisfaction);

--
Gitblit v1.8.0