From 34b07249c7e7a9f487a6bc08f022db6bcb925d42 Mon Sep 17 00:00:00 2001 From: Jack <jack.su@pollex.com.tw> Date: 星期四, 20 一月 2022 14:46:35 +0800 Subject: [PATCH] [UPDATE] 調整客戶填寫滿意度的API [UPDATE] 調整產生滿意度調查資料的時機點,改為每次進到結案狀態就新增滿意度資料 [UPDATE] 調整結案API,新增和修改都使用同一支API由後端判斷為新增或修改 [BUG] 當沒有任何一筆滿意度的時候取得顧問平均分數會發生錯誤的問題修正 --- pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java | 35 ++++++++++++++++++----------------- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java index 9034f50..b4d628f 100644 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java +++ b/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java @@ -1,21 +1,22 @@ package com.pollex.pam.appointment.process; -import java.util.Optional; - import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.pollex.pam.domain.Appointment; import com.pollex.pam.domain.AppointmentClosedInfo; import com.pollex.pam.enums.ContactStatusEnum; import com.pollex.pam.repository.AppointmentClosedInfoRepository; import com.pollex.pam.service.AppointmentClosedInfoService; +import com.pollex.pam.service.AppointmentService; +import com.pollex.pam.service.SatisfactionService; import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; -import com.pollex.pam.service.dto.ClosedProcessDTO; import com.pollex.pam.service.dto.DoneProcessDTO; -import com.pollex.pam.web.rest.errors.AppointmentClosedInfoNotFoundException; @Service +@Transactional public class DoneProcess implements AppointmentProcessInterface{ @Autowired @@ -24,13 +25,20 @@ @Autowired AppointmentClosedInfoService appointmentClosedInfoService; + @Autowired + SatisfactionService satisfactionService; + + @Autowired + AppointmentService appointmentService; + @Override - public void createProcess(AbstractAppointmentProcessDTO processDTO) { - checkClosedInfo(processDTO.getAppointmentId()); + public AppointmentClosedInfo create(AbstractAppointmentProcessDTO processDTO) { DoneProcessDTO doneProcess = toDoneProcessDTO(processDTO); AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); BeanUtils.copyProperties(doneProcess, closedInfo); - appointmentClosedInfoRepository.save(closedInfo); + Appointment appointment = appointmentService.findById(processDTO.getAppointmentId()); + satisfactionService.createSatisfaction(appointment); + return appointmentClosedInfoRepository.save(closedInfo); } @Override @@ -38,23 +46,16 @@ return ContactStatusEnum.DONE; } - private void checkClosedInfo(Long appointmentId) { - Optional<AppointmentClosedInfo> closedInfo = appointmentClosedInfoRepository.findByAppointmentId(appointmentId); - if(closedInfo.isPresent()) { - throw new IllegalArgumentException("appointment closed info exist"); - } - } - @Override - public AppointmentClosedInfo editClosedInfo(AbstractAppointmentProcessDTO abstractDTO) { + public AppointmentClosedInfo editClosedInfo( + AbstractAppointmentProcessDTO abstractDTO + , AppointmentClosedInfo closedInfo) { DoneProcessDTO doneProcess = toDoneProcessDTO(abstractDTO); - AppointmentClosedInfo closedInfo = appointmentClosedInfoService.findByAppointmentId(abstractDTO.getAppointmentId()); BeanUtils.copyProperties(doneProcess, closedInfo); return appointmentClosedInfoRepository.save(closedInfo); } private DoneProcessDTO toDoneProcessDTO(AbstractAppointmentProcessDTO abstractDTO) { - DoneProcessDTO doneProcess = (DoneProcessDTO)abstractDTO; BeanUtils.copyProperties(abstractDTO, doneProcess); return doneProcess; -- Gitblit v1.8.0