From b54203910ac64a87ed83f3c65cd1de40a0d16a9f Mon Sep 17 00:00:00 2001 From: "gabgutpri@alum.us.es" Date: Mon, 12 Apr 2021 20:05:21 +0200 Subject: [PATCH] Filtro municipios sin select acabado --- .../springframework/cheapy/model/Client.java | 106 ++++++++++-------- .../cheapy/model/Municipio.java | 7 ++ .../repository/FoodOfferRepository.java | 10 +- .../cheapy/service/FoodOfferService.java | 16 ++- .../cheapy/web/OfertaController.java | 34 +++++- src/main/resources/db/mysql/data.sql | 4 +- .../webapp/WEB-INF/jsp/offers/offersList.jsp | 16 ++- 7 files changed, 131 insertions(+), 62 deletions(-) create mode 100644 src/main/java/org/springframework/cheapy/model/Municipio.java diff --git a/src/main/java/org/springframework/cheapy/model/Client.java b/src/main/java/org/springframework/cheapy/model/Client.java index 41d81ca19..e968f4a10 100644 --- a/src/main/java/org/springframework/cheapy/model/Client.java +++ b/src/main/java/org/springframework/cheapy/model/Client.java @@ -1,3 +1,4 @@ + package org.springframework.cheapy.model; import java.time.LocalTime; @@ -5,6 +6,8 @@ import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.OneToOne; @@ -19,170 +22,183 @@ import org.springframework.format.annotation.DateTimeFormat; @Table(name = "clients") public class Client extends BaseEntity { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; // (id, name, email, address, init, finish, telephone, description, code, food, // usuar) @NotEmpty - private String name; + private String name; @NotEmpty - private String email; + private String email; @NotEmpty - private String address; + private String address; + + @NotNull + @Enumerated(value = EnumType.STRING) + private Municipio municipio; // Hora de apertura del local @DateTimeFormat(pattern = "HH:mm") @NotNull(message = "Debe introducir una hora de apertura") - private LocalTime init; + private LocalTime init; // Hora de cierre del local @DateTimeFormat(pattern = "HH:mm") @NotNull(message = "Debe introducir una hora de cierre") - private LocalTime finish; + private LocalTime finish; @NotEmpty @Digits(fraction = 0, integer = 10) - private String telephone; + private String telephone; @NotEmpty - private String description; + private String description; // Codigo de activacion de cuenta @NotEmpty - private String code; + private String code; @NotEmpty - private String food; + private String food; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "username", referencedColumnName = "username") - private User usuar; + private User usuar; @OneToMany - private List foodOffers; + private List foodOffers; @OneToMany - private List nuOffers; + private List nuOffers; @OneToMany - private List speedOffers; + private List speedOffers; @OneToMany - private List timeOffers; + private List timeOffers; + public String getName() { - return name; + return this.name; } - public void setName(String name) { + public void setName(final String name) { this.name = name; } public String getEmail() { - return email; + return this.email; } - public void setEmail(String email) { + public void setEmail(final String email) { this.email = email; } public String getAddress() { - return address; + return this.address; } - public void setAddress(String address) { + public void setAddress(final String address) { this.address = address; } - public LocalTime getInit() { - return init; + public Municipio getMunicipio() { + return this.municipio; } - public void setInit(LocalTime init) { + public void setMunicipio(final Municipio municipio) { + this.municipio = municipio; + } + + public LocalTime getInit() { + return this.init; + } + + public void setInit(final LocalTime init) { this.init = init; } public LocalTime getFinish() { - return finish; + return this.finish; } - public void setFinish(LocalTime finish) { + public void setFinish(final LocalTime finish) { this.finish = finish; } public String getTelephone() { - return telephone; + return this.telephone; } - public void setTelephone(String telephone) { + public void setTelephone(final String telephone) { this.telephone = telephone; } public String getDescription() { - return description; + return this.description; } - public void setDescription(String description) { + public void setDescription(final String description) { this.description = description; } public String getCode() { - return code; + return this.code; } - public void setCode(String code) { + public void setCode(final String code) { this.code = code; } public String getFood() { - return food; + return this.food; } - public void setFood(String food) { + public void setFood(final String food) { this.food = food; } public User getUsuar() { - return usuar; + return this.usuar; } - public void setUsuar(User usuar) { + public void setUsuar(final User usuar) { this.usuar = usuar; } public List getFoodOffers() { - return foodOffers; + return this.foodOffers; } - public void setFoodOffers(List foodOffers) { + public void setFoodOffers(final List foodOffers) { this.foodOffers = foodOffers; } public List getNuOffers() { - return nuOffers; + return this.nuOffers; } - public void setNuOffers(List nuOffers) { + public void setNuOffers(final List nuOffers) { this.nuOffers = nuOffers; } public List getSpeedOffers() { - return speedOffers; + return this.speedOffers; } - public void setSpeedOffers(List speedOffers) { + public void setSpeedOffers(final List speedOffers) { this.speedOffers = speedOffers; } public List getTimeOffers() { - return timeOffers; + return this.timeOffers; } - public void setTimeOffers(List timeOffers) { + public void setTimeOffers(final List timeOffers) { this.timeOffers = timeOffers; } -} \ No newline at end of file +} diff --git a/src/main/java/org/springframework/cheapy/model/Municipio.java b/src/main/java/org/springframework/cheapy/model/Municipio.java new file mode 100644 index 000000000..d643f29ed --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Municipio.java @@ -0,0 +1,7 @@ + +package org.springframework.cheapy.model; + +public enum Municipio { + Dos_Hermanas, Sevilla + +} diff --git a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java index 9a277197d..65682ac84 100644 --- a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java @@ -34,13 +34,17 @@ public interface FoodOfferRepository extends PagingAndSortingRepository findFoodOfferActOclByUserId(@Param("id") Integer id); - + @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE foodOffer.client.name LIKE :name AND foodOffer.status= 'active'") @Transactional(readOnly = true) List findFoodOfferByClientName(String name); - + @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE foodOffer.client.food LIKE :name AND foodOffer.status= 'active'") @Transactional(readOnly = true) List findFoodOfferByClientFood(String name); - + + @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE foodOffer.client.municipio =:municip AND foodOffer.status= 'active'") + @Transactional(readOnly = true) + List findFoodOfferByClientPlace(String municip); + } diff --git a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java index eb0a85b14..fe6675191 100644 --- a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java @@ -45,14 +45,18 @@ public class FoodOfferService { public List findFoodOfferActOclByUserId(final int id) { return this.foodOfferRepository.findFoodOfferActOclByUserId(id); } - - public List findFoodOfferByClientName(String name) { - String nameEdit = "%"+name+"%"; + + public List findFoodOfferByClientName(final String name) { + String nameEdit = "%" + name + "%"; return this.foodOfferRepository.findFoodOfferByClientName(nameEdit); } - - public List findFoodOfferByClientFood(String name) { - String nameEdit = "%"+name+"%"; + + public List findFoodOfferByClientFood(final String name) { + String nameEdit = "%" + name + "%"; return this.foodOfferRepository.findFoodOfferByClientFood(nameEdit); } + + public List findFoodOfferByClientPlace(final String municip) { + return this.foodOfferRepository.findFoodOfferByClientPlace(municip); + } } diff --git a/src/main/java/org/springframework/cheapy/web/OfertaController.java b/src/main/java/org/springframework/cheapy/web/OfertaController.java index b2b302cf9..89d4aa4c5 100644 --- a/src/main/java/org/springframework/cheapy/web/OfertaController.java +++ b/src/main/java/org/springframework/cheapy/web/OfertaController.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.NuOffer; import org.springframework.cheapy.model.SpeedOffer; import org.springframework.cheapy.model.TimeOffer; @@ -52,15 +53,18 @@ public class OfertaController { model.put("speedOfferLs", speedOfferLs); model.put("timeOfferLs", timeOfferLs); + // Añade la lista de municipios al desplegable + model.put("municipios", Municipio.values()); + //Se añade formateador de fecha al modelo model.put("localDateTimeFormat", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")); return "offers/offersList"; } - + @GetMapping("/offersByName") - public String processFindFormByName(final Map model, String name) { + public String processFindFormByName(final Map model, final String name) { List foodOfferLs = this.foodOfferService.findFoodOfferByClientName(name); List nuOfferLs = this.nuOfferService.findNuOfferByClientName(name); @@ -71,15 +75,18 @@ public class OfertaController { model.put("speedOfferLs", speedOfferLs); model.put("timeOfferLs", timeOfferLs); + // Añade la lista de municipios al desplegable + model.put("municipios", Municipio.values()); + //Se añade formateador de fecha al modelo model.put("localDateTimeFormat", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")); return "offers/offersListSearch"; } - + @GetMapping("/offersByFood") - public String processFindFormByFood(final Map model, String name) { + public String processFindFormByFood(final Map model, final String name) { List foodOfferLs = this.foodOfferService.findFoodOfferByClientFood(name); List nuOfferLs = this.nuOfferService.findNuOfferByClientFood(name); @@ -90,6 +97,25 @@ public class OfertaController { model.put("speedOfferLs", speedOfferLs); model.put("timeOfferLs", timeOfferLs); + // Añade la lista de municipios al desplegable + model.put("municipios", Municipio.values()); + + //Se añade formateador de fecha al modelo + model.put("localDateTimeFormat", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")); + + return "offers/offersListSearch"; + + } + + @GetMapping("/offersByPlace") + public String processFindFormByPlace(final Map model, final String municip) { + + List foodOfferLs = this.foodOfferService.findFoodOfferByClientPlace(municip); + model.put("foodOfferLs", foodOfferLs); + + // Añade la lista de municipios al desplegable + model.put("municipios", Municipio.values()); + //Se añade formateador de fecha al modelo model.put("localDateTimeFormat", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")); diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index f32637462..cfc9f4978 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -19,8 +19,8 @@ INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, us INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, username) VALUES (3, 'Lolo', 'Lopez', '25486596L', 'C/Macarena', '690670547' ,'Lolo@gmail.com','lolo'); INSERT INTO usuarios (id, nombre, apellidos, dni, direccion, telefono, email, username) VALUES (4, 'Pepe', 'Lopez', '12456776V', 'C/Macarena', '690670547', 'Pepe@gmail.com','pepe'); -INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis','10:00:00','22:00:00','608726190', 'description 1', 'code1', 'ESPAÑOLA','manoli'); -INSERT INTO clients (id, name, email, address, init, finish, telephone, description, code, food, username) VALUES (2,'bar david','david@gmail.com','C/Sevilla','09:30:00','22:00:00','608726190', 'description 2', 'code2', 'americana','david'); +INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, code, food, username) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis', 'Sevilla','10:00:00','22:00:00','608726190', 'description 1', 'code1', 'ESPAÑOLA','manoli'); +INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, code, food, username) VALUES (2,'bar david','david@gmail.com', 'C/Sevilla', 'Dos_Hermanas','09:30:00','22:00:00','608726190', 'description 2', 'code2', 'americana','david'); INSERT INTO food_offers(start, end, code, status, client_id, food, discount) VALUES ('2021-08-14 12:00:00', '2021-08-15 12:00:00', 'FO-1', 'inactive', 1, 'macarrones', 15); INSERT INTO food_offers(start, end, code, status, client_id, food, discount) VALUES ('2021-08-15 12:00:00', '2021-08-16 12:00:00', 'FO-2', 'active', 1, 'macarrones con tomate', 10); diff --git a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp index 1bef89a39..275ba308b 100644 --- a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp +++ b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp @@ -41,12 +41,20 @@
- +
- + +
+ +
+ +
@@ -67,6 +75,7 @@ + @@ -89,6 +98,9 @@ + + +