| | |
| | | import com.pollex.pam.business.aop.logging.audit.AuditLoggingType; |
| | | import com.pollex.pam.business.appointment.process.AppointmentProcess; |
| | | import com.pollex.pam.business.domain.Appointment; |
| | | import com.pollex.pam.business.enums.AppointmentStatusEnum; |
| | | import com.pollex.pam.business.security.SecurityUtils; |
| | | import com.pollex.pam.business.service.SendMsgService; |
| | | |
| | | import com.pollex.pam.business.service.dto.*; |
| | | import com.pollex.pam.business.service.mapper.AppointmentMapper; |
| | | import com.pollex.pam.business.web.errors.CreateFailBecauseOfCancelAppointmentRecentException; |
| | | import com.pollex.pam.business.web.errors.CreateFailHaveProcessingAppointmentException; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpStatus; |
| | | import org.springframework.http.ResponseEntity; |
| | |
| | | @AuditLoggingInject(type = AuditLoggingType.CUSTOMER_CREATE_APPOINTMENT) |
| | | @PostMapping("/customer/create") |
| | | public AppointmentDTO clientCreateAppointment(@RequestBody AppointmentCreateDTO appointmentCreateDTO) { |
| | | List<Appointment> processing = appointmentService.findProcessingAppointmentByCustomer(SecurityUtils.getCustomerDBId()); |
| | | List<Appointment> cancelAppointmentment = appointmentService.findCustomer3DayCancelAppointment(); |
| | | if(!processing.isEmpty()) { |
| | | throw new CreateFailHaveProcessingAppointmentException(); |
| | | }else if(!cancelAppointmentment.isEmpty()) { |
| | | throw new CreateFailBecauseOfCancelAppointmentRecentException(); |
| | | } |
| | | |
| | | Appointment appointment = appointmentService.customerCreateAppointment(appointmentCreateDTO); |
| | | appointmentService.sendAppointmentNotify(appointment); |
| | | satisfactionService.createUnfilledSystemSatisfaction(appointment); |
| | | |
| | | return appointmentMapper.toAppointmentDTO(appointment); |
| | |
| | | return appointmentService.getCustomerAllAppointmentGroupByConsultant(); |
| | | } |
| | | |
| | | // @PostMapping("/close/info/edit") |
| | | // public ResponseEntity<Void> editAppointmentClosedInfo(@RequestBody AppointmentCloseDTO closeDTO) { |
| | | // |
| | | // if(closeDTO.getContactStatus() == ContactStatusEnum.DONE) { |
| | | // DoneProcessDTO dto = new DoneProcessDTO(); |
| | | // BeanUtils.copyProperties(closeDTO, dto); |
| | | // abstractAppointmentProcess.editClosedInfo(dto); |
| | | // }else if(closeDTO.getContactStatus() == ContactStatusEnum.CLOSED){ |
| | | // ClosedProcessDTO dto = new ClosedProcessDTO(); |
| | | // BeanUtils.copyProperties(closeDTO, dto); |
| | | // abstractAppointmentProcess.editClosedInfo(dto); |
| | | // }else { |
| | | // return ResponseEntity.notFound().build(); |
| | | // } |
| | | // |
| | | // return ResponseEntity.noContent().build(); |
| | | // } |
| | | } |