diff --git a/src/main/java/br/edu/utfpr/servicebook/controller/ProfessionalHomeController.java b/src/main/java/br/edu/utfpr/servicebook/controller/ProfessionalHomeController.java index e90ea637..a6bd7cda 100644 --- a/src/main/java/br/edu/utfpr/servicebook/controller/ProfessionalHomeController.java +++ b/src/main/java/br/edu/utfpr/servicebook/controller/ProfessionalHomeController.java @@ -109,21 +109,38 @@ public class ProfessionalHomeController { /** * Mostra a tela da minha conta no perfil do profissional, mostrando os anúncios disponíveis por default. * @param expertiseId + * @param request + * @param id + * @param page + * @param size + * @param order + * @param direction * @return * @throws Exception */ @GetMapping @RolesAllowed({RoleType.USER}) - public ModelAndView showMyAccountProfessional(@RequestParam(required = false, defaultValue = "0") Optional expertiseId) throws Exception { + public ModelAndView showMyAccountProfessional( + HttpServletRequest request, + @RequestParam(required = false, defaultValue = "0") Optional expertiseId, + @RequestParam(required = false, defaultValue = "0") Long id, + @RequestParam(value = "pag", defaultValue = "1") int page, + @RequestParam(value = "siz", defaultValue = "5") int size, + @RequestParam(value = "ord", defaultValue = "id") String order, + @RequestParam(value = "dir", defaultValue = "ASC") String direction + ) throws Exception { log.debug("ServiceBook: Minha conta."); - + Optional oProfessional = (individualService.findByEmail(authentication.getEmail())); if (!oProfessional.isPresent()) { throw new Exception("Usuário não autenticado! Por favor, realize sua autenticação no sistema."); } - ModelAndView mv = new ModelAndView("professional/my-account"); - + Page jobRequestPage = findJobRequests(id, JobRequest.Status.AVAILABLE, page, size); + List jobRequestFullDTOs = generateJobRequestDTOList(jobRequestPage); + PaginationDTO paginationDTO = paginationUtil.getPaginationDTO(jobRequestPage, "/minha-conta/profissional"); + ModelAndView mv = new ModelAndView("professional/initial"); + List professionalExpertises = professionalExpertiseService.findByProfessional(oProfessional.get()); List professionalExpertiseDTOs = professionalExpertises.stream() .map(professionalExpertise -> professionalExpertise.getExpertise()) @@ -150,6 +167,8 @@ public ModelAndView showMyAccountProfessional(@RequestParam(required = false, de mv.addObject("professionalExpertises", professionalExpertiseDTOs); mv.addObject("userInfo", individualInfo); mv.addObject("statisticInfo", statisticInfo); + mv.addObject("pagination", paginationDTO); + mv.addObject("jobs", jobRequestFullDTOs); return mv; } diff --git a/src/main/webapp/WEB-INF/view/professional/initial.jsp b/src/main/webapp/WEB-INF/view/professional/initial.jsp new file mode 100644 index 00000000..056563f9 --- /dev/null +++ b/src/main/webapp/WEB-INF/view/professional/initial.jsp @@ -0,0 +1,168 @@ +<%@page contentType="text/html" pageEncoding="UTF-8" %> +<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + +
+
+ +
+ + compare_arrows + +
+
+

Serviços Disponíveis

+
+
+ +
+
+
+
+

Nenhum pedido encontrado!

+

+ Um novo pedido pode chegar aqui a qualquer momento. +

+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
${job.expertise.name}
+
+
+
+ ${job.totalCandidates}/${job.quantityCandidatorsMax} +
+
+
+
+
+
+

+ person +

+

+ ${job.individual.name} +

+
+
+

+ location_on +

+

+ ${job.individual.address.neighborhood}, + ${job.individual.address.city.name}/${job.individual.address.city.state.uf} +

+
+
+

+ access_time +

+

+ ${job.textualDate} +

+
+
+
+

${job.description}

+
+
+ +
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ +