| | |
| | | package com.pollex.pam.web.rest; |
| | | |
| | | import com.pollex.pam.domain.Appointment; |
| | | import com.pollex.pam.domain.Consultant; |
| | | import com.pollex.pam.security.SecurityUtils; |
| | | import com.pollex.pam.service.AppointmentService; |
| | | import com.pollex.pam.service.ConsultantService; |
| | | import com.pollex.pam.service.dto.*; |
| | | import org.apache.commons.compress.utils.IOUtils; |
| | |
| | | import org.springframework.http.ResponseEntity; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.FileNotFoundException; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.List; |
| | | |
| | | @RestController |
| | |
| | | |
| | | @Autowired |
| | | ConsultantService consultantService; |
| | | |
| | | @Autowired |
| | | AppointmentService appointmentService; |
| | | |
| | | @GetMapping("/favorite") |
| | | public ResponseEntity<List<CustomerFavoriteConsultantDTO>> getMyConsultantList() { |
| | | List<CustomerFavoriteConsultantDTO> myConsultants = consultantService.getMyConsultantList(); |
| | | return new ResponseEntity<>(myConsultants, HttpStatus.OK); |
| | | } |
| | | |
| | | @PostMapping("/favorite/view") |
| | | public ResponseEntity<Void> recordMyConsultantListView() { |
| | | consultantService.recordMyConsultantListView(); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @GetMapping("/recommend") |
| | |
| | | return consultantService.getMyAppointment(); |
| | | } |
| | | |
| | | @GetMapping(value = "/avatar/{fileName}", produces = MediaType.IMAGE_JPEG_VALUE) |
| | | public ResponseEntity<byte[]> getAvatarImage(@PathVariable String fileName) throws IOException { |
| | | try { |
| | | Resource resource = new ClassPathResource("static/consultant/" + fileName); |
| | | InputStream in = resource.getInputStream(); |
| | | return new ResponseEntity<>(IOUtils.toByteArray(in), HttpStatus.OK); |
| | | } catch (FileNotFoundException e) { |
| | | return new ResponseEntity<>(HttpStatus.NOT_FOUND); |
| | | } |
| | | @GetMapping(value = "/avatar/{agentNo}", produces = MediaType.IMAGE_JPEG_VALUE) |
| | | public ResponseEntity<byte[]> getAvatarImage(@PathVariable String agentNo) throws IOException { |
| | | // try { |
| | | // Resource resource = new ClassPathResource("static/consultant/" + fileName); |
| | | // InputStream in = resource.getInputStream(); |
| | | // return new ResponseEntity<>(IOUtils.toByteArray(in), HttpStatus.OK); |
| | | // } catch (FileNotFoundException e) { |
| | | // return new ResponseEntity<>(HttpStatus.NOT_FOUND); |
| | | // } |
| | | InputStream in = consultantService.getAvatarImage(agentNo); |
| | | if(in!=null) { |
| | | return new ResponseEntity<>(IOUtils.toByteArray(in), HttpStatus.OK); |
| | | }else { |
| | | return new ResponseEntity<>(HttpStatus.NOT_FOUND); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @PostMapping("/record/allAppointmentsView") |
| | |
| | | consultantService.recordAllAppointmentsView(); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | |
| | | @PostMapping("/edit") |
| | | public ResponseEntity<Consultant> editConsultant(@RequestBody ConsultantEditDTO editDTO) { |
| | | if(!editDTO.getAgentNo().equals(SecurityUtils.getAgentNo())) { |
| | | throw new IllegalAccessError(); |
| | | } |
| | | Consultant editResult = consultantService.editConsultant(editDTO); |
| | | return new ResponseEntity<>(editResult, HttpStatus.OK); |
| | | } |
| | | |
| | | @PostMapping("/sendSatisfactionToClient/{appointmentId}") |
| | | public ResponseEntity<Void> sendSatisfactionToClient(@PathVariable Long appointmentId) { |
| | | Appointment appointment = appointmentService.findById(appointmentId); |
| | | if(!appointment.getAgentNo().equals(SecurityUtils.getAgentNo())) { |
| | | throw new IllegalAccessError(); |
| | | } |
| | | consultantService.sendSatisfactionToClient(appointment); |
| | | return ResponseEntity.noContent().build(); |
| | | } |
| | | } |