From 3c94dc06c3b99e7fc430e68ee2ce4a6cf2cd422c Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期三, 16 二月 2022 15:54:32 +0800
Subject: [PATCH] [update] 修正滿意度評分在沒有撈到任何評分紀錄時,不可直接set 0進顧問的分數中

---
 pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 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 6044a45..58c96d9 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java
@@ -36,6 +36,7 @@
 import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 import static com.pollex.pam.consts.SeniorityQueryConst.*;
@@ -358,17 +359,18 @@
     }
 
 	public void setConsultantAvgScore(Satisfaction satisfaction) {
-		float avgScore = getAgentAvgScore(satisfaction.getAgentNo());
-		Consultant consultant = consultantRepository.findOneByAgentNo(satisfaction.getAgentNo())
-				.get();
-		consultant.setAvgScore(avgScore);
-		consultantRepository.save(consultant);
+		Optional<Float> avgScore = getAgentAvgScore(satisfaction.getAgentNo());
+
+        if(avgScore.isPresent()) {
+            BigDecimal bigDecimal = BigDecimal.valueOf(avgScore.get());
+
+            Consultant consultant = consultantRepository.findOneByAgentNo(satisfaction.getAgentNo()).get();
+            consultant.setAvgScore(bigDecimal.setScale(1, BigDecimal.ROUND_HALF_UP).floatValue());
+            consultantRepository.save(consultant);
+        }
 	}
 
-	public float getAgentAvgScore(String agentNo) {
-		Float avgScore = satisfactionRepository.getAgentScoreAvg(agentNo);
-		if(avgScore==null)return 0;
-		BigDecimal bigDecimal = new BigDecimal(avgScore);
-		return avgScore = bigDecimal.setScale(1,BigDecimal.ROUND_HALF_UP).floatValue();
+	public Optional<Float> getAgentAvgScore(String agentNo) {
+		return satisfactionRepository.getAgentScoreAvg(agentNo);
 	}
 }

--
Gitblit v1.8.0