From ec1aa037504b32222dfd1f0f7c21ea28f598d77d Mon Sep 17 00:00:00 2001 From: "gabgutpri@alum.us.es" Date: Thu, 15 Apr 2021 12:57:11 +0200 Subject: [PATCH] Filtro por municipio --- .../cheapy/repository/FoodOfferRepository.java | 5 +++-- .../cheapy/repository/NuOfferRepository.java | 10 ++++++++-- .../cheapy/repository/SpeedOfferRepository.java | 9 +++++++-- .../cheapy/repository/TimeOfferRepository.java | 9 +++++++-- .../cheapy/service/FoodOfferService.java | 3 ++- .../cheapy/service/NuOfferService.java | 17 +++++++++++------ .../cheapy/service/SpeedOfferService.java | 17 +++++++++++------ .../cheapy/service/TimeOfferService.java | 17 +++++++++++------ .../cheapy/web/OfertaController.java | 13 +++++++++++-- .../webapp/WEB-INF/jsp/offers/offersList.jsp | 13 +++++++------ 10 files changed, 78 insertions(+), 35 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java index 65682ac84..a2aec96ef 100644 --- a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java @@ -4,6 +4,7 @@ package org.springframework.cheapy.repository; import java.util.List; import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.StatusOffer; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; @@ -43,8 +44,8 @@ public interface FoodOfferRepository extends PagingAndSortingRepository findFoodOfferByClientFood(String name); - @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE foodOffer.client.municipio =:municip AND foodOffer.status= 'active'") + @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE foodOffer.client.municipio =:municipio AND foodOffer.status= 'active'") @Transactional(readOnly = true) - List findFoodOfferByClientPlace(String municip); + List findFoodOfferByClientPlace(Municipio municipio); } diff --git a/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java index d5631928e..e6ef658ff 100644 --- a/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java @@ -2,6 +2,8 @@ package org.springframework.cheapy.repository; import java.util.List; + +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.NuOffer; import org.springframework.cheapy.model.StatusOffer; import org.springframework.data.domain.Pageable; @@ -31,12 +33,16 @@ public interface NuOfferRepository extends PagingAndSortingRepository findNuOfferActOclByUserId(@Param("id") Integer id); - + @Query("SELECT nuOffer FROM NuOffer nuOffer WHERE nuOffer.client.name LIKE :name AND nuOffer.status= 'active'") @Transactional(readOnly = true) List findNuOfferByClientName(String name); - + @Query("SELECT nuOffer FROM NuOffer nuOffer WHERE nuOffer.client.food LIKE :name AND nuOffer.status= 'active'") @Transactional(readOnly = true) List findNuOfferByClientFood(String name); + + @Query("SELECT nuOffer FROM NuOffer nuOffer WHERE nuOffer.client.municipio =:municipio AND nuOffer.status= 'active'") + @Transactional(readOnly = true) + List findNuOfferByClientPlace(Municipio municipio); } diff --git a/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java index b89ce1569..f49dd1469 100644 --- a/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java @@ -3,6 +3,7 @@ package org.springframework.cheapy.repository; import java.util.List; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.SpeedOffer; import org.springframework.cheapy.model.StatusOffer; import org.springframework.data.domain.Pageable; @@ -34,12 +35,16 @@ public interface SpeedOfferRepository extends PagingAndSortingRepository findSpeedOfferActOclByUserId(@Param("id") Integer id); - + @Query("SELECT speedOffer FROM SpeedOffer speedOffer WHERE speedOffer.client.name LIKE :name AND speedOffer.status= 'active'") @Transactional(readOnly = true) List findSpeedOfferByClientName(String name); - + @Query("SELECT speedOffer FROM SpeedOffer speedOffer WHERE speedOffer.client.food LIKE :name AND speedOffer.status= 'active'") @Transactional(readOnly = true) List findSpeedOfferByClientFood(String name); + + @Query("SELECT speedOffer FROM SpeedOffer speedOffer WHERE speedOffer.client.municipio =:municipio AND speedOffer.status= 'active'") + @Transactional(readOnly = true) + List findSpeedOfferByClientPlace(Municipio municipio); } diff --git a/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java index b031d789c..e3cdd669d 100644 --- a/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java @@ -4,6 +4,7 @@ package org.springframework.cheapy.repository; import java.util.List; import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.model.TimeOffer; import org.springframework.data.domain.Pageable; @@ -33,12 +34,16 @@ public interface TimeOfferRepository extends PagingAndSortingRepository findTimeOfferActOclByUserId(@Param("id") Integer id); - + @Query("SELECT timeOffer FROM TimeOffer timeOffer WHERE timeOffer.client.name LIKE :name AND timeOffer.status= 'active'") @Transactional(readOnly = true) List findTimeOfferByClientName(String name); - + @Query("SELECT timeOffer FROM TimeOffer timeOffer WHERE timeOffer.client.food LIKE :name AND timeOffer.status= 'active'") @Transactional(readOnly = true) List findTimeOfferByClientFood(String name); + + @Query("SELECT timeOffer FROM TimeOffer timeOffer WHERE timeOffer.client.municipio =:municipio AND timeOffer.status= 'active'") + @Transactional(readOnly = true) + List findTimeOfferByClientPlace(Municipio municipio); } diff --git a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java index fe6675191..0e4c12e50 100644 --- a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java @@ -5,6 +5,7 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.repository.FoodOfferRepository; import org.springframework.dao.DataAccessException; @@ -56,7 +57,7 @@ public class FoodOfferService { return this.foodOfferRepository.findFoodOfferByClientFood(nameEdit); } - public List findFoodOfferByClientPlace(final String municip) { + public List findFoodOfferByClientPlace(final Municipio municip) { return this.foodOfferRepository.findFoodOfferByClientPlace(municip); } } diff --git a/src/main/java/org/springframework/cheapy/service/NuOfferService.java b/src/main/java/org/springframework/cheapy/service/NuOfferService.java index be77144c1..7bf4913b3 100644 --- a/src/main/java/org/springframework/cheapy/service/NuOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/NuOfferService.java @@ -4,6 +4,7 @@ package org.springframework.cheapy.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.NuOffer; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.repository.NuOfferRepository; @@ -54,14 +55,18 @@ public class NuOfferService { public List findNuOfferActOclByUserId(final int id) { return this.nuOfferRepository.findNuOfferActOclByUserId(id); } - - public List findNuOfferByClientName(String name) { - String nameEdit = "%"+name+"%"; + + public List findNuOfferByClientName(final String name) { + String nameEdit = "%" + name + "%"; return this.nuOfferRepository.findNuOfferByClientName(nameEdit); } - - public List findNuOfferByClientFood(String name) { - String nameEdit = "%"+name+"%"; + + public List findNuOfferByClientFood(final String name) { + String nameEdit = "%" + name + "%"; return this.nuOfferRepository.findNuOfferByClientFood(nameEdit); } + + public List findNuOfferByClientPlace(final Municipio mun) { + return this.nuOfferRepository.findNuOfferByClientPlace(mun); + } } diff --git a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java index b9e5ffc2a..aeb2f630d 100644 --- a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java @@ -4,6 +4,7 @@ package org.springframework.cheapy.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.SpeedOffer; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.repository.SpeedOfferRepository; @@ -49,14 +50,18 @@ public class SpeedOfferService { public List findSpeedOfferActOclByUserId(final int id) { return this.speedOfferRepository.findSpeedOfferActOclByUserId(id); } - - public List findSpeedOfferByClientName(String name) { - String nameEdit = "%"+name+"%"; + + public List findSpeedOfferByClientName(final String name) { + String nameEdit = "%" + name + "%"; return this.speedOfferRepository.findSpeedOfferByClientName(nameEdit); } - - public List findSpeedOfferByClientFood(String name) { - String nameEdit = "%"+name+"%"; + + public List findSpeedOfferByClientFood(final String name) { + String nameEdit = "%" + name + "%"; return this.speedOfferRepository.findSpeedOfferByClientFood(nameEdit); } + + public List findSpeedOfferByClientPlace(final Municipio mun) { + return this.speedOfferRepository.findSpeedOfferByClientPlace(mun); + } } diff --git a/src/main/java/org/springframework/cheapy/service/TimeOfferService.java b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java index 4859bca53..68881863b 100644 --- a/src/main/java/org/springframework/cheapy/service/TimeOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java @@ -4,6 +4,7 @@ package org.springframework.cheapy.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.StatusOffer; import org.springframework.cheapy.model.TimeOffer; import org.springframework.cheapy.repository.TimeOfferRepository; @@ -45,14 +46,18 @@ public class TimeOfferService { public List findTimeOfferActOclByUserId(final int id) { return this.timeOfferRepository.findTimeOfferActOclByUserId(id); } - - public List findTimeOfferByClientName(String name) { - String nameEdit = "%"+name+"%"; + + public List findTimeOfferByClientName(final String name) { + String nameEdit = "%" + name + "%"; return this.timeOfferRepository.findTimeOfferByClientName(nameEdit); } - - public List findTimeOfferByClientFood(String name) { - String nameEdit = "%"+name+"%"; + + public List findTimeOfferByClientFood(final String name) { + String nameEdit = "%" + name + "%"; return this.timeOfferRepository.findTimeOfferByClientFood(nameEdit); } + + public List findTimeOfferByClientPlace(final Municipio mun) { + return this.timeOfferRepository.findTimeOfferByClientPlace(mun); + } } diff --git a/src/main/java/org/springframework/cheapy/web/OfertaController.java b/src/main/java/org/springframework/cheapy/web/OfertaController.java index 89d4aa4c5..7a069f3ef 100644 --- a/src/main/java/org/springframework/cheapy/web/OfertaController.java +++ b/src/main/java/org/springframework/cheapy/web/OfertaController.java @@ -5,6 +5,8 @@ import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; +import javax.servlet.http.HttpServletRequest; + import org.springframework.cheapy.model.FoodOffer; import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.NuOffer; @@ -108,10 +110,17 @@ public class OfertaController { } @GetMapping("/offersByPlace") - public String processFindFormByPlace(final Map model, final String municip) { + public String processFindFormByPlace(final Map model, final HttpServletRequest request) { + Municipio mun = Municipio.valueOf(request.getParameter("municipio")); - List foodOfferLs = this.foodOfferService.findFoodOfferByClientPlace(municip); + List foodOfferLs = this.foodOfferService.findFoodOfferByClientPlace(mun); + List nuOfferLs = this.nuOfferService.findNuOfferByClientPlace(mun); + List speedOfferLs = this.speedOfferService.findSpeedOfferByClientPlace(mun); + List timeOfferLs = this.timeOfferService.findTimeOfferByClientPlace(mun); model.put("foodOfferLs", foodOfferLs); + model.put("nuOfferLs", nuOfferLs); + model.put("speedOfferLs", speedOfferLs); + model.put("timeOfferLs", timeOfferLs); // AƱade la lista de municipios al desplegable model.put("municipios", Municipio.values()); diff --git a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp index 275ba308b..56e7fcc83 100644 --- a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp +++ b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp @@ -50,13 +50,14 @@
- - + +
-