From 07d6fd2c5c6a35a33ad0dd9556b63fd6156d0974 Mon Sep 17 00:00:00 2001 From: KillerADO <wayne8692wayne8692@gmail.com> Date: 星期四, 23 十二月 2021 16:01:01 +0800 Subject: [PATCH] [fix] 暫時移除客戶預約的業務邏輯,因sit db尚未更新顧問的email --- 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