From bb9e8aad46c1667625b451b8df458a441bfc792f Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期四, 02 十二月 2021 16:02:12 +0800 Subject: [PATCH] [update]【todo 131433, 131432】預約單更新與刪除API --- pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java | 6 +++ pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java | 12 ++++++ pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java | 20 +++++++++- pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java | 22 +++++++--- pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java | 9 ++++ pamapi/src/main/java/com/pollex/pam/domain/Appointment.java | 13 ++++++ 6 files changed, 72 insertions(+), 10 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java b/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java index 6dda636..882613c 100644 --- a/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java +++ b/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java @@ -5,6 +5,7 @@ import javax.persistence.*; +import com.pollex.pam.enums.AppointmentStatusEnum; import com.pollex.pam.enums.ContactStatusEnum; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -69,6 +70,10 @@ @Column(name = "consultant_read_time") private Instant consultantReadTime; + + @Enumerated(value = EnumType.STRING) + @Column(name = "status") + private AppointmentStatusEnum status; public Long getId() { return id; @@ -197,4 +202,12 @@ public void setConsultantReadTime(Instant consultantReadTime) { this.consultantReadTime = consultantReadTime; } + + public AppointmentStatusEnum getStatus() { + return status; + } + + public void setStatus(AppointmentStatusEnum status) { + this.status = status; + } } diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java index 05bdd5d..da38baa 100644 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java +++ b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java @@ -10,6 +10,7 @@ import javax.persistence.Id; import javax.persistence.Table; +import com.pollex.pam.enums.AppointmentStatusEnum; import com.pollex.pam.enums.ContactStatusEnum; @Entity @@ -73,6 +74,10 @@ @Column(name = "name") private String name; + + @Enumerated(value = EnumType.STRING) + @Column(name = "status") + private AppointmentStatusEnum status; public Long getId() { return id; @@ -210,4 +215,11 @@ this.name = name; } + public AppointmentStatusEnum getStatus() { + return status; + } + + public void setStatus(AppointmentStatusEnum status) { + this.status = status; + } } diff --git a/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java new file mode 100644 index 0000000..55d674c --- /dev/null +++ b/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java @@ -0,0 +1,6 @@ +package com.pollex.pam.enums; + +public enum AppointmentStatusEnum { + AVAILABLE, + DELETED +} diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java index fec6545..0d4c458 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java @@ -3,6 +3,8 @@ import java.time.Instant; import java.util.List; +import com.pollex.pam.enums.AppointmentStatusEnum; +import com.pollex.pam.service.dto.AppointmentDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +22,8 @@ import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper; import com.pollex.pam.service.mapper.AppointmentDTOMapper; import com.pollex.pam.web.rest.errors.AppointmentNotFoundException; + +import static com.pollex.pam.enums.AppointmentStatusEnum.DELETED; @Service @Transactional @@ -41,7 +45,7 @@ @Autowired AppointmentCustomerViewRepository appointmentCustomerViewRepository; - + @Autowired SatisfactionService satisfactionService; @@ -50,7 +54,7 @@ appointment.setCustomerId(SecurityUtils.getCustomerDBId()); appointment.setCommunicateStatus(ContactStatusEnum.RESERVED); appointmentRepository.save(appointment); - + } public List<Appointment> findByAgentNo(String agentNo) { @@ -87,4 +91,16 @@ log.debug("this appointment was read, read time = {}", appointment.getConsultantReadTime()); } } + + public void updateAppointment(AppointmentDTO appointmentDTO) { + Appointment appointment = appointmentDTOMapper.toAppointment(appointmentDTO); + appointmentRepository.save(appointment); + } + + public void markAppointmentDeleted(Long appointmentId) { + Appointment appointment = appointmentRepository.findById(appointmentId).get(); + appointment.setStatus(DELETED); + + appointmentRepository.save(appointment); + } } diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java index 4275e7a..8a1d6de 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java +++ b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java @@ -1,5 +1,6 @@ package com.pollex.pam.service.mapper; +import com.pollex.pam.service.dto.AppointmentDTO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -9,10 +10,16 @@ @Service public class AppointmentDTOMapper { - + public Appointment toAppointment(AppointmentCreateDTO source) { Appointment target = new Appointment(); BeanUtils.copyProperties(source, target); return target; } + + public Appointment toAppointment(AppointmentDTO source) { + Appointment target = new Appointment(); + BeanUtils.copyProperties(source, target); + return target; + } } diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java index 79f89c9..27957f3 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java @@ -1,13 +1,9 @@ package com.pollex.pam.web.rest; +import com.pollex.pam.service.dto.AppointmentDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.pollex.pam.service.AppointmentService; import com.pollex.pam.service.SatisfactionService; @@ -20,10 +16,22 @@ @Autowired AppointmentService appointmentService; - + @Autowired SatisfactionService satisfactionService; + @PutMapping("") + public ResponseEntity<Void> updateAppointment(@RequestBody AppointmentDTO appointment) { + appointmentService.updateAppointment(appointment); + return ResponseEntity.noContent().build(); + } + + @DeleteMapping("/{appointmentId}") + public ResponseEntity<Void> markAppointmentDeleted(@PathVariable Long appointmentId) { + appointmentService.markAppointmentDeleted(appointmentId); + return ResponseEntity.noContent().build(); + } + @PostMapping("/customer/create") public void clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) { appointmentService.customerCreateAppointment(appointmentCreateDTO); -- Gitblit v1.8.0