From d574a048e3ca80574676c8d267bddd8b6df141d4 Mon Sep 17 00:00:00 2001 From: Abraham Date: Sat, 10 Apr 2021 14:36:59 +0200 Subject: [PATCH 01/18] no funcional --- .../cheapy/model/Authorities.java | 10 +- .../cheapy/model/Municipio.java | 5 + .../springframework/cheapy/model/User.java | 26 +- .../springframework/cheapy/model/Usuario.java | 43 +-- .../repository/AuthoritiesRepository.java | 9 +- .../cheapy/repository/UserRepository.java | 7 +- .../cheapy/repository/UsuarioRepository.java | 20 ++ .../cheapy/service/AuthoritiesService.java | 10 +- .../cheapy/service/UserService.java | 6 +- .../cheapy/service/UsuarioService.java | 34 ++ .../cheapy/system/SingUpController.java | 147 +++++++++ src/main/resources/db/mysql/data.sql | 32 +- .../webapp/WEB-INF/jsp/singup/singUpUser.jsp | 307 ++++++++++++++++++ src/main/webapp/WEB-INF/tags/menu.tag | 4 + 14 files changed, 602 insertions(+), 58 deletions(-) create mode 100644 src/main/java/org/springframework/cheapy/model/Municipio.java create mode 100644 src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java create mode 100644 src/main/java/org/springframework/cheapy/service/UsuarioService.java create mode 100644 src/main/java/org/springframework/cheapy/system/SingUpController.java create mode 100644 src/main/webapp/WEB-INF/jsp/singup/singUpUser.jsp diff --git a/src/main/java/org/springframework/cheapy/model/Authorities.java b/src/main/java/org/springframework/cheapy/model/Authorities.java index 3bcfbbb35..b774c1443 100644 --- a/src/main/java/org/springframework/cheapy/model/Authorities.java +++ b/src/main/java/org/springframework/cheapy/model/Authorities.java @@ -3,12 +3,18 @@ package org.springframework.cheapy.model; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; +import javax.validation.constraints.NotNull; @Entity @Table(name = "authorities") -public class Authorities{ +public class Authorities extends BaseEntity{ - @Id + /** + * + */ + private static final long serialVersionUID = 1L; + + @NotNull String username; String authority; 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..f89afca92 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/model/Municipio.java @@ -0,0 +1,5 @@ +package org.springframework.cheapy.model; + +public enum Municipio { +sevilla,dosHermanas,carmona,bollullos,pilas,montellano,mairenaAljarafe,mairenaAlcor +} diff --git a/src/main/java/org/springframework/cheapy/model/User.java b/src/main/java/org/springframework/cheapy/model/User.java index e9c232562..f5d51e554 100644 --- a/src/main/java/org/springframework/cheapy/model/User.java +++ b/src/main/java/org/springframework/cheapy/model/User.java @@ -5,20 +5,36 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.validation.constraints.NotBlank; +import org.springframework.boot.context.properties.bind.DefaultValue; + +import net.bytebuddy.implementation.bind.annotation.Default; + @Entity @Table(name = "users") -public class User{ +public class User extends BaseEntity{ - @Id + + /** + * + */ + private static final long serialVersionUID = 1L; + + @NotBlank private String username; @NotBlank private String password; - boolean enabled; - - private static final long serialVersionUID = 1L; + private Boolean enabled; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } public String getUsername() { return username; diff --git a/src/main/java/org/springframework/cheapy/model/Usuario.java b/src/main/java/org/springframework/cheapy/model/Usuario.java index 9079bc72e..715bb1383 100644 --- a/src/main/java/org/springframework/cheapy/model/Usuario.java +++ b/src/main/java/org/springframework/cheapy/model/Usuario.java @@ -2,11 +2,14 @@ package org.springframework.cheapy.model; import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; @Entity @Table(name = "usuarios") @@ -23,16 +26,12 @@ public class Usuario extends BaseEntity{ @NotBlank private String apellidos; - @NotBlank - private String dni; - @NotBlank private String direccion; - @NotBlank - //@Pattern(regexp = "([+][^0][\\d]{0,2})?[ ]?([(][\\d]{0,4}[)])?[ ]?([\\d]{6,10})$") - private String telefono; - + @Enumerated(value = EnumType.STRING) + private Municipio municipio; + @Email @NotBlank private String email; @@ -57,13 +56,6 @@ public class Usuario extends BaseEntity{ this.apellidos = apellidos; } - public String getDni() { - return dni; - } - - public void setDni(String dni) { - this.dni = dni; - } public String getDireccion() { return direccion; @@ -73,12 +65,20 @@ public class Usuario extends BaseEntity{ this.direccion = direccion; } - public String getTelefono() { - return telefono; + public Municipio getMunicipio() { + return municipio; } - public void setTelefono(String telefono) { - this.telefono = telefono; + public void setMunicipio(Municipio municipio) { + this.municipio = municipio; + } + + public User getUsuar() { + return usuar; + } + + public void setUsuar(User usuar) { + this.usuar = usuar; } public String getEmail() { @@ -89,13 +89,6 @@ public class Usuario extends BaseEntity{ this.email = email; } - public User getUser() { - return usuar; - } - - public void setUser(User username) { - this.usuar = username; - } } diff --git a/src/main/java/org/springframework/cheapy/repository/AuthoritiesRepository.java b/src/main/java/org/springframework/cheapy/repository/AuthoritiesRepository.java index 8d5f6317c..02dca7b98 100644 --- a/src/main/java/org/springframework/cheapy/repository/AuthoritiesRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/AuthoritiesRepository.java @@ -1,8 +1,11 @@ package org.springframework.cheapy.repository; -import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.Repository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.Authorities; -public interface AuthoritiesRepository extends CrudRepository{ - +public interface AuthoritiesRepository extends Repository{ + + @Autowired + void save(Authorities authorities); } diff --git a/src/main/java/org/springframework/cheapy/repository/UserRepository.java b/src/main/java/org/springframework/cheapy/repository/UserRepository.java index 0c29a7bf6..eee4fa621 100644 --- a/src/main/java/org/springframework/cheapy/repository/UserRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/UserRepository.java @@ -3,13 +3,18 @@ package org.springframework.cheapy.repository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.Repository; import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.User; import org.springframework.cheapy.model.Usuario; -public interface UserRepository extends CrudRepository { +public interface UserRepository extends Repository { @Query("SELECT u FROM User u WHERE username =:username") @Transactional(readOnly = true) User findByUsername(String username); + + + void save(User user); } diff --git a/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java new file mode 100644 index 000000000..97e02959e --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java @@ -0,0 +1,20 @@ + +package org.springframework.cheapy.repository; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.Repository; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.User; +import org.springframework.cheapy.model.Usuario; + +public interface UsuarioRepository extends Repository { + + @Query("SELECT u FROM User u WHERE username =:username") + @Transactional(readOnly = true) + User findByUsername(String username); + + + void save(Usuario usuario); +} diff --git a/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java b/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java index 7d0f8d7a8..689bad383 100644 --- a/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java +++ b/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java @@ -28,10 +28,10 @@ import org.springframework.transaction.annotation.Transactional; @Service public class AuthoritiesService { -/* - private AuthoritiesRepository authoritiesRepository; - private UserService userService; + private AuthoritiesRepository authoritiesRepository; +// private UserService userService; +/* @Autowired public AuthoritiesService(AuthoritiesRepository authoritiesRepository,UserService userService) { this.authoritiesRepository = authoritiesRepository; @@ -42,12 +42,12 @@ public class AuthoritiesService { public Authorities findAuthoritiyByUser(User user) { return this.authoritiesRepository.findByUser(user.getUsername()); } - +*/ @Transactional public void saveAuthorities(Authorities authorities) throws DataAccessException { authoritiesRepository.save(authorities); } - +/* @Transactional public void saveAuthorities(String username, String role) throws DataAccessException { Authorities authority = new Authorities(); diff --git a/src/main/java/org/springframework/cheapy/service/UserService.java b/src/main/java/org/springframework/cheapy/service/UserService.java index 92b896e7f..93f69adf4 100644 --- a/src/main/java/org/springframework/cheapy/service/UserService.java +++ b/src/main/java/org/springframework/cheapy/service/UserService.java @@ -1,6 +1,7 @@ package org.springframework.cheapy.service; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.FoodOffer; import org.springframework.cheapy.model.User; import org.springframework.cheapy.repository.UserRepository; import org.springframework.dao.DataAccessException; @@ -25,5 +26,8 @@ public class UserService { String username = authentication.getName(); return this.userRepository.findByUsername(username); } - + + public void saveUser(final User user) throws DataAccessException { + this.userRepository.save(user); + } } diff --git a/src/main/java/org/springframework/cheapy/service/UsuarioService.java b/src/main/java/org/springframework/cheapy/service/UsuarioService.java new file mode 100644 index 000000000..52e143ac0 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/service/UsuarioService.java @@ -0,0 +1,34 @@ +package org.springframework.cheapy.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.User; +import org.springframework.cheapy.model.Usuario; +import org.springframework.cheapy.repository.UserRepository; +import org.springframework.cheapy.repository.UsuarioRepository; +import org.springframework.dao.DataAccessException; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class UsuarioService { + + private UsuarioRepository usuarioRepository; + + @Autowired + public UsuarioService(final UsuarioRepository usuarioRepository) { + this.usuarioRepository = usuarioRepository; + } + +// @Transactional +// public User getCurrentUser() throws DataAccessException { +// Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); +// String username = authentication.getName(); +// return this.userRepository.findByUsername(username); +// } + public void saveUsuario(final Usuario usuario) throws DataAccessException { + this.usuarioRepository.save(usuario); + } +} diff --git a/src/main/java/org/springframework/cheapy/system/SingUpController.java b/src/main/java/org/springframework/cheapy/system/SingUpController.java new file mode 100644 index 000000000..b4f2b3a38 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/system/SingUpController.java @@ -0,0 +1,147 @@ +package org.springframework.cheapy.system; + +import java.util.Collection; +import java.util.Map; + +import javax.validation.Valid; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.Authorities; +import org.springframework.cheapy.model.Municipio; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.model.User; +import org.springframework.cheapy.model.Usuario; +import org.springframework.cheapy.service.AuthoritiesService; +import org.springframework.cheapy.service.ClientService; +import org.springframework.cheapy.service.OwnerService; +import org.springframework.cheapy.service.UserService; +import org.springframework.cheapy.service.UsuarioService; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.InitBinder; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.servlet.ModelAndView; + +@Controller +public class SingUpController { + + //private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; + + private final ClientService clientService; + private final UserService userService; + private final UsuarioService usuarioService; + private final AuthoritiesService authoritiesService; + + + public SingUpController(final ClientService clientService, UserService userService, AuthoritiesService authoritiesService, + UsuarioService usuarioService) { + this.clientService = clientService; + this.userService = userService; + this.authoritiesService = authoritiesService; + this.usuarioService = usuarioService; + + } + + @InitBinder + public void setAllowedFields(WebDataBinder dataBinder) { + dataBinder.setDisallowedFields("id"); + } + + @GetMapping("/users/new") + public String initCreationForm(Map model) { + Usuario usuario = new Usuario(); + + User user=new User(); + + usuario.setUsuar(user); + model.put("municipio", Municipio.values()); + model.put("usuario", usuario); + //model.put("user", user); + return "singup/singUpUser"; + } + + @PostMapping("/users/new") + public String processCreationForm(/*@Valid User user,*/ @Valid Usuario usuario, BindingResult result) { + Authorities auth=new Authorities(); + User user= usuario.getUsuar(); + user.setEnabled(true); + usuario.setUsuar(user); + auth.setUsername(user.getUsername()); + auth.setAuthority("usuario"); + if (result.hasErrors()) { + return "singup/singUpUser"; + } + else { + this.userService.saveUser(user); + this.usuarioService.saveUsuario(usuario); + this.authoritiesService.saveAuthorities(auth); + return "redirect:/"; + } + } + +// @GetMapping("/owners/find") +// public String initFindForm(Map model) { +// model.put("owner", new Owner()); +// return "owners/findOwners"; +// } +// +// @GetMapping("/owners") +// public String processFindForm(Owner owner, BindingResult result, Map model) { +// +// // allow parameterless GET request for /owners to return all records +// if (owner.getLastName() == null) { +// owner.setLastName(""); // empty string signifies broadest possible search +// } +// +// // find owners by last name +// Collection results = this.ownerService.findByLastName(owner.getLastName()); +// if (results.isEmpty()) { +// // no owners found +// result.rejectValue("lastName", "notFound", "not found"); +// return "owners/findOwners"; +// } +// else if (results.size() == 1) { +// // 1 owner found +// owner = results.iterator().next(); +// return "redirect:/owners/" + owner.getId(); +// } +// else { +// // multiple owners found +// model.put("selections", results); +// return "owners/ownersList"; +// } +// } +// +// @GetMapping("/owners/{ownerId}/edit") +// public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) { +// Owner owner = this.ownerService.findOwnerById(ownerId); +// model.addAttribute(owner); +// return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; +// } +// +// @PostMapping("/owners/{ownerId}/edit") +// public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, +// @PathVariable("ownerId") int ownerId) { +// if (result.hasErrors()) { +// return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; +// } +// else { +// owner.setId(ownerId); +// this.ownerService.saveOwner(owner); +// return "redirect:/owners/{ownerId}"; +// } +// } +// @GetMapping("/owners/{ownerId}") +// public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { +// ModelAndView mav = new ModelAndView("owners/ownerDetails"); +// Owner owner = this.ownerService.findOwnerById(ownerId); +// +// mav.addObject(owner); +// return mav; +// } +// +} diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index c279eadf3..5caa51654 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -9,25 +9,25 @@ INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', ' INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','admin','admin', TRUE ); -INSERT INTO authorities VALUES ('admin','admin'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',1,'admin','admin', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (1,'admin','admin'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','manoli','manoli', TRUE ); -INSERT INTO authorities VALUES ('manoli','client'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','david','david', TRUE ); -INSERT INTO authorities VALUES ('david','client'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',2,'manoli','manoli', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (2,'manoli','client'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',3,'david','david', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (3,'david','client'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','paco','paco', TRUE ); -INSERT INTO authorities VALUES ('paco','usuario'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','lolo','lolo', TRUE ); -INSERT INTO authorities VALUES ('lolo','usuario'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','pepe','pepe', TRUE ); -INSERT INTO authorities VALUES ('pepe','usuario'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',4,'paco','paco', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (4,'paco','usuario'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',5,'lolo','lolo', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (5,'lolo','usuario'); +INSERT INTO users (dtype,id,username,password,enabled) VALUES ('User',6,'pepe','pepe', TRUE ); +INSERT INTO authorities (id,username,authority) VALUES (6,'pepe','usuario'); -INSERT INTO usuarios VALUES (1, 'admin', 'admin', 'admin', 'C/admin', '000000000', 'admin@gmail.com','admin'); -INSERT INTO usuarios VALUES (2, 'Paco', 'Naranjo', '21154416G', 'C/Esperanza', '666973647', 'Paco@gmail.com','paco'); -INSERT INTO usuarios VALUES (3, 'Lolo', 'Lopez', '25486596L', 'C/Macarena', '690670547' ,'Lolo@gmail.com','lolo'); -INSERT INTO usuarios VALUES (4, 'Pepe', 'Lopez', '12456776V', 'C/Macarena', '690670547', 'Pepe@gmail.com','pepe'); +INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (1, 'admin', 'admin', 'C/admin', 'carmona', 'admin@gmail.com','admin'); +INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (2, 'Paco', 'Naranjo', 'C/Esperanza', 'sevilla', 'Paco@gmail.com','paco'); +INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (3, 'Lolo', 'Lopez', 'C/Macarena', 'dosHermanas', 'Lolo@gmail.com','lolo'); +INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (4, 'Pepe', 'Lopez', 'C/Macarena', 'carmona', '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','22: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','22:00','608726190', 'description 2', 'code2', 'americana','david'); diff --git a/src/main/webapp/WEB-INF/jsp/singup/singUpUser.jsp b/src/main/webapp/WEB-INF/jsp/singup/singUpUser.jsp new file mode 100644 index 000000000..a2127d97f --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/singup/singUpUser.jsp @@ -0,0 +1,307 @@ +<%@ page session="false" trimDirectiveWhitespaces="true" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + + + + + + + +

+ +

+ +
+ + + +
+ + +
+ + + + +
+
+ +
+ diff --git a/src/main/webapp/WEB-INF/tags/menu.tag b/src/main/webapp/WEB-INF/tags/menu.tag index 40f426e7e..0b9f07cc3 100644 --- a/src/main/webapp/WEB-INF/tags/menu.tag +++ b/src/main/webapp/WEB-INF/tags/menu.tag @@ -63,6 +63,10 @@
  • ">Iniciar sesión
  • + +
  • ">Registrarse
  • + +
  • ">Registrarse
  • +
  • ">Registrarse Usuario
  • + +
    + +
  • ">Registrarse Cliente
  • From a26c2314e1a7e62a1a00a9b0cc57ebd0edd1fea6 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 11 Apr 2021 17:02:24 +0200 Subject: [PATCH 07/18] Filtro por tipo de comida --- .../repository/FoodOfferRepository.java | 4 ++++ .../cheapy/repository/NuOfferRepository.java | 4 ++++ .../repository/SpeedOfferRepository.java | 4 ++++ .../repository/TimeOfferRepository.java | 4 ++++ .../cheapy/service/FoodOfferService.java | 5 +++++ .../cheapy/service/NuOfferService.java | 5 +++++ .../cheapy/service/SpeedOfferService.java | 5 +++++ .../cheapy/service/TimeOfferService.java | 5 +++++ .../cheapy/web/OfertaController.java | 19 +++++++++++++++++++ .../webapp/WEB-INF/jsp/offers/offersList.jsp | 5 +++++ 10 files changed, 60 insertions(+) diff --git a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java index b1f335860..9a277197d 100644 --- a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java @@ -39,4 +39,8 @@ public interface FoodOfferRepository extends PagingAndSortingRepository 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); + } diff --git a/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java index ccd04b4e1..d5631928e 100644 --- a/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java @@ -35,4 +35,8 @@ public interface NuOfferRepository extends PagingAndSortingRepository 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); } diff --git a/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java index 1dd6203ba..b89ce1569 100644 --- a/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java @@ -38,4 +38,8 @@ public interface SpeedOfferRepository extends PagingAndSortingRepository 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); } diff --git a/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java index 8e14162bf..b031d789c 100644 --- a/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java @@ -37,4 +37,8 @@ public interface TimeOfferRepository extends PagingAndSortingRepository 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); } diff --git a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java index 4a17c91ae..eb0a85b14 100644 --- a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java @@ -50,4 +50,9 @@ public class FoodOfferService { String nameEdit = "%"+name+"%"; return this.foodOfferRepository.findFoodOfferByClientName(nameEdit); } + + public List findFoodOfferByClientFood(String name) { + String nameEdit = "%"+name+"%"; + return this.foodOfferRepository.findFoodOfferByClientFood(nameEdit); + } } diff --git a/src/main/java/org/springframework/cheapy/service/NuOfferService.java b/src/main/java/org/springframework/cheapy/service/NuOfferService.java index b6d4ca743..be77144c1 100644 --- a/src/main/java/org/springframework/cheapy/service/NuOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/NuOfferService.java @@ -59,4 +59,9 @@ public class NuOfferService { String nameEdit = "%"+name+"%"; return this.nuOfferRepository.findNuOfferByClientName(nameEdit); } + + public List findNuOfferByClientFood(String name) { + String nameEdit = "%"+name+"%"; + return this.nuOfferRepository.findNuOfferByClientFood(nameEdit); + } } diff --git a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java index ad76224be..b9e5ffc2a 100644 --- a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java @@ -54,4 +54,9 @@ public class SpeedOfferService { String nameEdit = "%"+name+"%"; return this.speedOfferRepository.findSpeedOfferByClientName(nameEdit); } + + public List findSpeedOfferByClientFood(String name) { + String nameEdit = "%"+name+"%"; + return this.speedOfferRepository.findSpeedOfferByClientFood(nameEdit); + } } diff --git a/src/main/java/org/springframework/cheapy/service/TimeOfferService.java b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java index 7f35930a8..4859bca53 100644 --- a/src/main/java/org/springframework/cheapy/service/TimeOfferService.java +++ b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java @@ -50,4 +50,9 @@ public class TimeOfferService { String nameEdit = "%"+name+"%"; return this.timeOfferRepository.findTimeOfferByClientName(nameEdit); } + + public List findTimeOfferByClientFood(String name) { + String nameEdit = "%"+name+"%"; + return this.timeOfferRepository.findTimeOfferByClientFood(nameEdit); + } } diff --git a/src/main/java/org/springframework/cheapy/web/OfertaController.java b/src/main/java/org/springframework/cheapy/web/OfertaController.java index ec3db1b30..b2b302cf9 100644 --- a/src/main/java/org/springframework/cheapy/web/OfertaController.java +++ b/src/main/java/org/springframework/cheapy/web/OfertaController.java @@ -77,6 +77,25 @@ public class OfertaController { return "offers/offersListSearch"; } + + @GetMapping("/offersByFood") + public String processFindFormByFood(final Map model, String name) { + + List foodOfferLs = this.foodOfferService.findFoodOfferByClientFood(name); + List nuOfferLs = this.nuOfferService.findNuOfferByClientFood(name); + List speedOfferLs = this.speedOfferService.findSpeedOfferByClientFood(name); + List timeOfferLs = this.timeOfferService.findTimeOfferByClientFood(name); + model.put("foodOfferLs", foodOfferLs); + model.put("nuOfferLs", nuOfferLs); + model.put("speedOfferLs", speedOfferLs); + model.put("timeOfferLs", timeOfferLs); + + //Se añade formateador de fecha al modelo + model.put("localDateTimeFormat", DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm")); + + return "offers/offersListSearch"; + + } @GetMapping("/myOffers") public String processMyOffersForm(final Map model) { diff --git a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp index 7efb2bdb7..1bef89a39 100644 --- a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp +++ b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp @@ -44,6 +44,11 @@ +
    + + +
    +

    From e27ecdbf91d175cf79a903050746a260f6ad70f3 Mon Sep 17 00:00:00 2001 From: Thiloparn <48439369+Thiloparn@users.noreply.github.com> Date: Sun, 11 Apr 2021 17:57:03 +0200 Subject: [PATCH 08/18] 029 Done --- .../springframework/cheapy/repository/UsuarioRepository.java | 4 ++++ .../org/springframework/cheapy/service/UsuarioService.java | 5 +++++ .../springframework/cheapy/web/AdministratorController.java | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java index 87b11c04d..54402bb9b 100644 --- a/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java +++ b/src/main/java/org/springframework/cheapy/repository/UsuarioRepository.java @@ -17,6 +17,10 @@ public interface UsuarioRepository extends Repository { @Transactional(readOnly = true) List findAllUsuario(); + @Query("SELECT usuario FROM Usuario usuario WHERE usuario.usuar.enabled = true") + @Transactional(readOnly = true) + List findUsuarioEnabled(); + void save(Usuario usuario); } diff --git a/src/main/java/org/springframework/cheapy/service/UsuarioService.java b/src/main/java/org/springframework/cheapy/service/UsuarioService.java index 5c994342d..b1b69236e 100644 --- a/src/main/java/org/springframework/cheapy/service/UsuarioService.java +++ b/src/main/java/org/springframework/cheapy/service/UsuarioService.java @@ -39,6 +39,11 @@ public class UsuarioService { public List findAllUsuario() throws DataAccessException { return this.usuarioRepository.findAllUsuario(); } + + @Transactional + public List findUsuarioEnabled() throws DataAccessException { + return this.usuarioRepository.findUsuarioEnabled(); + } @Transactional public void saveUsuario(final Usuario usuario) throws DataAccessException { diff --git a/src/main/java/org/springframework/cheapy/web/AdministratorController.java b/src/main/java/org/springframework/cheapy/web/AdministratorController.java index d5e001f77..8dcec26fb 100644 --- a/src/main/java/org/springframework/cheapy/web/AdministratorController.java +++ b/src/main/java/org/springframework/cheapy/web/AdministratorController.java @@ -30,7 +30,7 @@ public class AdministratorController { @GetMapping("/administrators/usuarios") public String processFindUsuariosForm(Map model) { - List usuarioLs = this.usuarioService.findAllUsuario(); + List usuarioLs = this.usuarioService.findUsuarioEnabled(); model.put("usuarioLs", usuarioLs); return "usuarios/usuariosList"; } From 82ab37993471a7e1fc2d4ad8665a696ae190e5f9 Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Sun, 11 Apr 2021 17:58:18 +0200 Subject: [PATCH 09/18] =?UTF-8?q?A=C3=B1adido=20funcionalidad=20de=20admin?= =?UTF-8?q?=20activa=20cliente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cheapy/web/AdministratorController.java | 16 ++++++++++++ .../WEB-INF/jsp/clients/clientActivate.jsp | 25 +++++++++++++++++++ .../webapp/WEB-INF/jsp/clients/clientShow.jsp | 14 +++++++++-- 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp diff --git a/src/main/java/org/springframework/cheapy/web/AdministratorController.java b/src/main/java/org/springframework/cheapy/web/AdministratorController.java index d5e001f77..82571e5f8 100644 --- a/src/main/java/org/springframework/cheapy/web/AdministratorController.java +++ b/src/main/java/org/springframework/cheapy/web/AdministratorController.java @@ -89,4 +89,20 @@ public class AdministratorController { this.clientService.saveClient(client); return "redirect:/administrators/clients"; } + + @GetMapping(value = "/administrators/clients/{username}/activate") + public String activateClient(@PathVariable("username") final String username, final ModelMap model) { + + Client client = this.clientService.findByUsername(username); + model.put("client", client); + return "clients/clientActivate"; + } + @PostMapping(value = "/administrators/clients/{username}/activate") + public String activateClientForm(@PathVariable("username") final String username, final ModelMap model, final HttpServletRequest request) { + + Client client = this.clientService.findByUsername(username); + client.getUsuar().setEnabled(true); + this.clientService.saveClient(client); + return "redirect:/administrators/clients"; + } } diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp new file mode 100644 index 000000000..07f6e365d --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp @@ -0,0 +1,25 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + + + + +

    ¿Está seguro de que quiere activar esta cuenta?

    + + + +
    + +
    +
    + +
    + +
    diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp index e83809451..d3e07db78 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp @@ -69,16 +69,26 @@ Borrar cliente
    - +
    - + + + + + + + + +
    From 38ef66723a263913d4c8a57d405ff49018c9e592 Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Sun, 11 Apr 2021 18:07:38 +0200 Subject: [PATCH 10/18] =?UTF-8?q?Revert=20"A=C3=B1adido=20funcionalidad=20?= =?UTF-8?q?de=20admin=20activa=20cliente"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 82ab37993471a7e1fc2d4ad8665a696ae190e5f9. --- .../cheapy/web/AdministratorController.java | 16 ------------ .../WEB-INF/jsp/clients/clientActivate.jsp | 25 ------------------- .../webapp/WEB-INF/jsp/clients/clientShow.jsp | 14 ++--------- 3 files changed, 2 insertions(+), 53 deletions(-) delete mode 100644 src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp diff --git a/src/main/java/org/springframework/cheapy/web/AdministratorController.java b/src/main/java/org/springframework/cheapy/web/AdministratorController.java index 82571e5f8..d5e001f77 100644 --- a/src/main/java/org/springframework/cheapy/web/AdministratorController.java +++ b/src/main/java/org/springframework/cheapy/web/AdministratorController.java @@ -89,20 +89,4 @@ public class AdministratorController { this.clientService.saveClient(client); return "redirect:/administrators/clients"; } - - @GetMapping(value = "/administrators/clients/{username}/activate") - public String activateClient(@PathVariable("username") final String username, final ModelMap model) { - - Client client = this.clientService.findByUsername(username); - model.put("client", client); - return "clients/clientActivate"; - } - @PostMapping(value = "/administrators/clients/{username}/activate") - public String activateClientForm(@PathVariable("username") final String username, final ModelMap model, final HttpServletRequest request) { - - Client client = this.clientService.findByUsername(username); - client.getUsuar().setEnabled(true); - this.clientService.saveClient(client); - return "redirect:/administrators/clients"; - } } diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp deleted file mode 100644 index 07f6e365d..000000000 --- a/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%@ page session="false" trimDirectiveWhitespaces="true"%> -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> -<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> -<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags"%> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> -<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - - - - -

    ¿Está seguro de que quiere activar esta cuenta?

    - - - -
    - -
    -
    - -
    - -
    diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp index d3e07db78..e83809451 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp @@ -69,26 +69,16 @@ Borrar cliente
    - +
    - + - - - - - - - -
    From 5c0bd1f01550ff9bb66bcaffbb6ee91284440bbe Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Sun, 11 Apr 2021 18:37:24 +0200 Subject: [PATCH 11/18] Admin activa cliente funcional y correccion admin desactiva cliente --- .../cheapy/web/AdministratorController.java | 52 ++++++++++++++++++- .../WEB-INF/jsp/clients/clientActivate.jsp | 25 +++++++++ .../webapp/WEB-INF/jsp/clients/clientShow.jsp | 11 ++++ 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp diff --git a/src/main/java/org/springframework/cheapy/web/AdministratorController.java b/src/main/java/org/springframework/cheapy/web/AdministratorController.java index d5e001f77..adceea025 100644 --- a/src/main/java/org/springframework/cheapy/web/AdministratorController.java +++ b/src/main/java/org/springframework/cheapy/web/AdministratorController.java @@ -6,8 +6,17 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.cheapy.model.Client; +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.cheapy.model.StatusOffer; +import org.springframework.cheapy.model.TimeOffer; import org.springframework.cheapy.model.Usuario; import org.springframework.cheapy.service.ClientService; +import org.springframework.cheapy.service.FoodOfferService; +import org.springframework.cheapy.service.NuOfferService; +import org.springframework.cheapy.service.SpeedOfferService; +import org.springframework.cheapy.service.TimeOfferService; import org.springframework.cheapy.service.UsuarioService; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -22,10 +31,21 @@ public class AdministratorController { private final UsuarioService usuarioService; private final ClientService clientService; + + private final FoodOfferService foodOfferService; + private final SpeedOfferService speedOfferService; + private final NuOfferService nuOfferService; + private final TimeOfferService timeOfferService; - public AdministratorController(final UsuarioService usuarioService, ClientService clientService) { + public AdministratorController(final UsuarioService usuarioService, ClientService clientService, + FoodOfferService foodOfferService, SpeedOfferService speedOfferService, NuOfferService nuOfferService, + TimeOfferService timeOfferService ) { this.usuarioService = usuarioService; this.clientService=clientService; + this.foodOfferService=foodOfferService; + this.speedOfferService=speedOfferService; + this.nuOfferService=nuOfferService; + this.timeOfferService=timeOfferService; } @GetMapping("/administrators/usuarios") @@ -86,6 +106,36 @@ public class AdministratorController { Client client = this.clientService.findByUsername(username); client.getUsuar().setEnabled(false); + + List foodOffers=this.foodOfferService.findFoodOfferByUserId(client.getId()); + List speedOffers=this.speedOfferService.findSpeedOfferByUserId(client.getId()); + List nuOffers=this.nuOfferService.findNuOfferByUserId(client.getId()); + List timeOffers=this.timeOfferService.findTimeOfferByUserId(client.getId()); + + foodOffers.stream().forEach(f->f.setStatus(StatusOffer.inactive)); + + speedOffers.stream().forEach(s->s.setStatus(StatusOffer.inactive)); + + nuOffers.stream().forEach(n->n.setStatus(StatusOffer.inactive)); + + timeOffers.stream().forEach(t->t.setStatus(StatusOffer.inactive)); + + this.clientService.saveClient(client); + return "redirect:/administrators/clients"; + } + + @GetMapping(value = "/administrators/clients/{username}/activate") + public String activateClient(@PathVariable("username") final String username, final ModelMap model) { + + Client client = this.clientService.findByUsername(username); + model.put("client", client); + return "clients/clientActivate"; + } + @PostMapping(value = "/administrators/clients/{username}/activate") + public String activateClientForm(@PathVariable("username") final String username, final ModelMap model, final HttpServletRequest request) { + + Client client = this.clientService.findByUsername(username); + client.getUsuar().setEnabled(true); this.clientService.saveClient(client); return "redirect:/administrators/clients"; } diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp new file mode 100644 index 000000000..43b68b4b3 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/clients/clientActivate.jsp @@ -0,0 +1,25 @@ +<%@ page session="false" trimDirectiveWhitespaces="true"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + + + + +

    ¿Está seguro de que quiere activar esta cuenta?

    + + + +
    + +
    +
    + +
    + +
    \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp index e83809451..8b865dd99 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp @@ -73,12 +73,23 @@
    + + + + + + + + +
    From d504fecc1853459ab29e4017d161375ec8063020 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 12 Apr 2021 19:08:43 +0200 Subject: [PATCH 12/18] Todo funcional --- .../springframework/cheapy/model/Client.java | 1 + .../cheapy/model/Municipio.java | 2 +- .../springframework/cheapy/model/Usuario.java | 8 -- .../cheapy/service/AuthoritiesService.java | 5 ++ .../cheapy/service/ClientService.java | 3 - .../cheapy/service/UsuarioService.java | 9 -- .../cheapy/system/SingUpController.java | 87 +++++-------------- src/main/resources/db/mysql/data.sql | 28 ++---- .../WEB-INF/jsp/singup/singUpClient.jsp | 8 +- 9 files changed, 39 insertions(+), 112 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/model/Client.java b/src/main/java/org/springframework/cheapy/model/Client.java index ab52eb6f0..f55f91214 100644 --- a/src/main/java/org/springframework/cheapy/model/Client.java +++ b/src/main/java/org/springframework/cheapy/model/Client.java @@ -36,6 +36,7 @@ public class Client extends BaseEntity { private String address; @Enumerated(value = EnumType.STRING) + @NotNull private Municipio municipio; // Hora de apertura del local diff --git a/src/main/java/org/springframework/cheapy/model/Municipio.java b/src/main/java/org/springframework/cheapy/model/Municipio.java index f89afca92..95d1230d1 100644 --- a/src/main/java/org/springframework/cheapy/model/Municipio.java +++ b/src/main/java/org/springframework/cheapy/model/Municipio.java @@ -1,5 +1,5 @@ package org.springframework.cheapy.model; public enum Municipio { -sevilla,dosHermanas,carmona,bollullos,pilas,montellano,mairenaAljarafe,mairenaAlcor +sevilla,dos_hermanas,carmona,bollullos,pilas,montellano,mairena_aljarafe,mairena_alcor } diff --git a/src/main/java/org/springframework/cheapy/model/Usuario.java b/src/main/java/org/springframework/cheapy/model/Usuario.java index 83b7ab8d5..660faa88a 100644 --- a/src/main/java/org/springframework/cheapy/model/Usuario.java +++ b/src/main/java/org/springframework/cheapy/model/Usuario.java @@ -90,14 +90,6 @@ public class Usuario extends BaseEntity{ } - public User getUsuar() { - return usuar; - } - - public void setUsuar(User username) { - this.usuar = username; - } - } diff --git a/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java b/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java index 4c28f40ce..5ec186de2 100644 --- a/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java +++ b/src/main/java/org/springframework/cheapy/service/AuthoritiesService.java @@ -15,7 +15,12 @@ */ package org.springframework.cheapy.service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.Authorities; +import org.springframework.cheapy.repository.AuthoritiesRepository; +import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class AuthoritiesService { diff --git a/src/main/java/org/springframework/cheapy/service/ClientService.java b/src/main/java/org/springframework/cheapy/service/ClientService.java index 1b322720d..e65eec3a7 100644 --- a/src/main/java/org/springframework/cheapy/service/ClientService.java +++ b/src/main/java/org/springframework/cheapy/service/ClientService.java @@ -53,9 +53,6 @@ public class ClientService { return this.clientRepository.findByUsername(username); } - public void saveClient(final Client client) throws DataAccessException { - this.clientRepository.save(client); - } @Transactional public List findAllClient() throws DataAccessException { return this.clientRepository.findAllClient(); diff --git a/src/main/java/org/springframework/cheapy/service/UsuarioService.java b/src/main/java/org/springframework/cheapy/service/UsuarioService.java index d08e5cff6..efd60a87e 100644 --- a/src/main/java/org/springframework/cheapy/service/UsuarioService.java +++ b/src/main/java/org/springframework/cheapy/service/UsuarioService.java @@ -5,15 +5,6 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.Usuario; - -package org.springframework.cheapy.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cheapy.model.FoodOffer; -import org.springframework.cheapy.model.User; -import org.springframework.cheapy.model.Usuario; -import org.springframework.cheapy.repository.UserRepository; - import org.springframework.cheapy.repository.UsuarioRepository; import org.springframework.dao.DataAccessException; import org.springframework.security.core.Authentication; diff --git a/src/main/java/org/springframework/cheapy/system/SingUpController.java b/src/main/java/org/springframework/cheapy/system/SingUpController.java index 6ddc319ca..d07f727f6 100644 --- a/src/main/java/org/springframework/cheapy/system/SingUpController.java +++ b/src/main/java/org/springframework/cheapy/system/SingUpController.java @@ -3,6 +3,7 @@ package org.springframework.cheapy.system; import java.util.Collection; import java.util.Map; +import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import org.springframework.beans.factory.annotation.Autowired; @@ -10,16 +11,15 @@ import org.springframework.cheapy.model.Authorities; import org.springframework.cheapy.model.Client; import org.springframework.cheapy.model.Code; import org.springframework.cheapy.model.Municipio; -import org.springframework.cheapy.model.Owner; import org.springframework.cheapy.model.User; import org.springframework.cheapy.model.Usuario; import org.springframework.cheapy.service.AuthoritiesService; import org.springframework.cheapy.service.ClientService; -import org.springframework.cheapy.service.OwnerService; import org.springframework.cheapy.service.UserService; import org.springframework.cheapy.service.UsuarioService; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.GetMapping; @@ -51,11 +51,21 @@ public class SingUpController { this.usuarioService = usuarioService; } + + @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); } + + private boolean checkTimes(final Client client) { + boolean res = false; + if(client.getFinish()==null || client.getInit()==null || client.getFinish().isAfter(client.getInit())) { + res = true; + } + return res; + } @GetMapping("/users/new") public String singUpUserForm(Map model) { @@ -106,9 +116,9 @@ public class SingUpController { } @PostMapping("/clients/new") - public String singUpClientForm(/*@Valid User user,*/ @Valid Client cliente, BindingResult result) { + public String singUpClientForm(/*@Valid User user,*/ @Valid Client cliente, final BindingResult result, final ModelMap model, + HttpServletRequest request) { Authorities auth=new Authorities(); - System.out.println(cliente.getCode().getCode()); String cod=cliente.getCode().getCode(); Code code=this.clientService.findCodeByCode(cod); User user= cliente.getUsuar(); @@ -116,13 +126,17 @@ public class SingUpController { cliente.setUsuar(user); auth.setUsername(user.getUsername()); auth.setAuthority("client"); + if(!this.checkTimes(cliente)) { + result.rejectValue("finish","" ,"La hora de cierre debe ser posterior a la hora de apertura"); + + } if (result.hasErrors()) { + model.put("municipio", Municipio.values()); + model.put("cliente", cliente); return "singup/singUpClient"; }else if(code.getActivo().equals(false)) { return "error"; }else { - //auth.setId(1); - //this.authoritiesService.saveAuthorities(auth); code.setActivo(false); this.clientService.saveCode(code); cliente.setCode(code); @@ -134,65 +148,4 @@ public class SingUpController { return "redirect:/"; } } -// @GetMapping("/owners/find") -// public String initFindForm(Map model) { -// model.put("owner", new Owner()); -// return "owners/findOwners"; -// } -// -// @GetMapping("/owners") -// public String processFindForm(Owner owner, BindingResult result, Map model) { -// -// // allow parameterless GET request for /owners to return all records -// if (owner.getLastName() == null) { -// owner.setLastName(""); // empty string signifies broadest possible search -// } -// -// // find owners by last name -// Collection results = this.ownerService.findByLastName(owner.getLastName()); -// if (results.isEmpty()) { -// // no owners found -// result.rejectValue("lastName", "notFound", "not found"); -// return "owners/findOwners"; -// } -// else if (results.size() == 1) { -// // 1 owner found -// owner = results.iterator().next(); -// return "redirect:/owners/" + owner.getId(); -// } -// else { -// // multiple owners found -// model.put("selections", results); -// return "owners/ownersList"; -// } -// } -// -// @GetMapping("/owners/{ownerId}/edit") -// public String initUpdateOwnerForm(@PathVariable("ownerId") int ownerId, Model model) { -// Owner owner = this.ownerService.findOwnerById(ownerId); -// model.addAttribute(owner); -// return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; -// } -// -// @PostMapping("/owners/{ownerId}/edit") -// public String processUpdateOwnerForm(@Valid Owner owner, BindingResult result, -// @PathVariable("ownerId") int ownerId) { -// if (result.hasErrors()) { -// return VIEWS_OWNER_CREATE_OR_UPDATE_FORM; -// } -// else { -// owner.setId(ownerId); -// this.ownerService.saveOwner(owner); -// return "redirect:/owners/{ownerId}"; -// } -// } -// @GetMapping("/owners/{ownerId}") -// public ModelAndView showOwner(@PathVariable("ownerId") int ownerId) { -// ModelAndView mav = new ModelAndView("owners/ownerDetails"); -// Owner owner = this.ownerService.findOwnerById(ownerId); -// -// mav.addObject(owner); -// return mav; -// } -// } diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index 1149edb98..97230b156 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -1,34 +1,22 @@ -INSERT INTO owners VALUES (1, 'Javi', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); -INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); -INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); -INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); -INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); -INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); -INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); -INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); -INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); -INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); - - -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','admin','admin', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('admin','admin', TRUE ); INSERT INTO authorities (username,authority) VALUES ('admin','admin'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','manoli','manoli', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('manoli','manoli', TRUE ); INSERT INTO authorities (username,authority) VALUES ('manoli','client'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','david','david', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('david','david', TRUE ); INSERT INTO authorities (username,authority) VALUES ('david','client'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','paco','paco', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('paco','paco', TRUE ); INSERT INTO authorities (username,authority) VALUES ('paco','usuario'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','lolo','lolo', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('lolo','lolo', TRUE ); INSERT INTO authorities (username,authority) VALUES ('lolo','usuario'); -INSERT INTO users (dtype,username,password,enabled) VALUES ('User','pepe','pepe', TRUE ); +INSERT INTO users (username,password,enabled) VALUES ('pepe','pepe', TRUE ); INSERT INTO authorities (username,authority) VALUES ('pepe','usuario'); INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (1, 'admin', 'admin', 'C/admin', 'carmona', 'admin@gmail.com','admin'); INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (2, 'Paco', 'Naranjo', 'C/Esperanza', 'sevilla', 'Paco@gmail.com','paco'); -INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (3, 'Lolo', 'Lopez', 'C/Macarena', 'dosHermanas', 'Lolo@gmail.com','lolo'); +INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (3, 'Lolo', 'Lopez', 'C/Macarena', 'dos_hermanas', 'Lolo@gmail.com','lolo'); INSERT INTO usuarios (id, nombre, apellidos, direccion, municipio, email, username) VALUES (4, 'Pepe', 'Lopez', 'C/Macarena', 'carmona', 'Pepe@gmail.com','pepe'); INSERT INTO codes (id,code,activo) VALUES (1,'code1',FALSE); @@ -37,7 +25,7 @@ INSERT INTO codes (id,code,activo) VALUES (3,'code3',TRUE); INSERT INTO codes (id,code,activo) VALUES (4,'code4',TRUE); INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, food, username, code) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis', 'sevilla','10:00','22:00','608726190', 'description 1', 'ESPAÑOLA','manoli', 'code1'); -INSERT INTO clients (id, name, email, address, init, municipio, finish, telephone, description, food, username, code) VALUES (2,'bar david','david@gmail.com','C/Sevilla', 'dosHermanas','09:30','22:00','608726190', 'description 2', 'americana','david', 'code2'); +INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, food, username, code) VALUES (2,'bar david','david@gmail.com','C/Sevilla', 'dosHermanas','09:30','22:00','608726190', 'description 2', 'americana','david', 'code2'); 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); diff --git a/src/main/webapp/WEB-INF/jsp/singup/singUpClient.jsp b/src/main/webapp/WEB-INF/jsp/singup/singUpClient.jsp index 2582bf34f..124ed5701 100644 --- a/src/main/webapp/WEB-INF/jsp/singup/singUpClient.jsp +++ b/src/main/webapp/WEB-INF/jsp/singup/singUpClient.jsp @@ -274,10 +274,10 @@

    - +

    + id="add-client-form">
    @@ -291,9 +291,9 @@
    - - From 080dd2d75c28da15b4a7f8a08ccd050a9c28c819 Mon Sep 17 00:00:00 2001 From: Abraham Garcia <56026513+AbrahamSFC@users.noreply.github.com> Date: Mon, 12 Apr 2021 19:19:08 +0200 Subject: [PATCH 13/18] Update FoodOfferControllerTests.java --- .../cheapy/web/FoodOfferControllerTests.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java index a6ca4f81c..22fc95714 100644 --- a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java @@ -52,6 +52,9 @@ class FoodOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client();; @@ -63,7 +66,7 @@ class FoodOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); @@ -132,4 +135,4 @@ class FoodOfferControllerTest { mockMvc.perform(get("/offers/food/{foodOfferId}/activate", TEST_FOODOFFER_ID+1)) .andExpect(view().name("exception")); } -} \ No newline at end of file +} From b329c3c6e9f4891cc1bd9b5e9082056774dc190a Mon Sep 17 00:00:00 2001 From: Abraham Garcia <56026513+AbrahamSFC@users.noreply.github.com> Date: Mon, 12 Apr 2021 19:19:45 +0200 Subject: [PATCH 14/18] Update NuOfferControllerTests.java --- .../springframework/cheapy/web/NuOfferControllerTests.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java index 13815ff9a..094b780e3 100644 --- a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java @@ -51,6 +51,9 @@ class NuOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -62,7 +65,7 @@ class NuOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); @@ -148,4 +151,4 @@ class NuOfferControllerTest { } -} \ No newline at end of file +} From 1fbcfc93286cf6bc6f6e43c5e6bb78e6e5d5b31c Mon Sep 17 00:00:00 2001 From: Abraham Garcia <56026513+AbrahamSFC@users.noreply.github.com> Date: Mon, 12 Apr 2021 19:20:10 +0200 Subject: [PATCH 15/18] Update SpeedOfferControllerTests.java --- .../cheapy/web/SpeedOfferControllerTests.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java index d05027011..1155fa688 100644 --- a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java @@ -52,6 +52,9 @@ class SpeedOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -63,7 +66,7 @@ class SpeedOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); @@ -148,4 +151,4 @@ class SpeedOfferControllerTest { mockMvc.perform(get("/offers/speed/{speedOfferId}/activate", TEST_SPEEDOFFER_ID+1)) .andExpect(view().name("exception")); } -} \ No newline at end of file +} From 7ec05e10606ac8399bcce81fc933b4fcb03b7023 Mon Sep 17 00:00:00 2001 From: Abraham Garcia <56026513+AbrahamSFC@users.noreply.github.com> Date: Mon, 12 Apr 2021 19:20:39 +0200 Subject: [PATCH 16/18] Update TimeOfferControllerTests.java --- .../cheapy/web/TimeOfferControllerTests.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java index 8ff0a094e..93f15cdfa 100644 --- a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java @@ -51,6 +51,9 @@ class TimeOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -62,7 +65,7 @@ class TimeOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); @@ -138,4 +141,4 @@ class TimeOfferControllerTest { -} \ No newline at end of file +} From aa1545d16637e7987b17a7d67150ec6b1a8fdf56 Mon Sep 17 00:00:00 2001 From: Abraham Date: Mon, 12 Apr 2021 19:55:00 +0200 Subject: [PATCH 17/18] fix errors --- .../org/springframework/cheapy/web/ClientController.java | 5 +++-- .../cheapy/web/FoodOfferControllerTests.java | 6 +++++- .../springframework/cheapy/web/NuOfferControllerTests.java | 6 +++++- .../cheapy/web/SpeedOfferControllerTests.java | 6 +++++- .../cheapy/web/TimeOfferControllerTests.java | 6 +++++- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/web/ClientController.java b/src/main/java/org/springframework/cheapy/web/ClientController.java index f17923b36..9fa128732 100644 --- a/src/main/java/org/springframework/cheapy/web/ClientController.java +++ b/src/main/java/org/springframework/cheapy/web/ClientController.java @@ -84,6 +84,7 @@ public class ClientController { public String updateClient( final ModelMap model, HttpServletRequest request) { Client client = this.clientService.getCurrentClient(); + model.addAttribute("client", client); @@ -96,7 +97,8 @@ public class ClientController { Client clienteSesion = this.clientService.getCurrentClient(); - + clientEdit.setCode(clienteSesion.getCode()); + clientEdit.setMunicipio(clienteSesion.getMunicipio()); if(!this.checkTimes(clientEdit)) { result.rejectValue("finish","" ,"La hora de cierre debe ser posterior a la hora de apertura"); @@ -161,7 +163,6 @@ public class ClientController { public String showRestaurant(final ModelMap model, @PathVariable("clientId") Integer id) { Client client = this.clientRepo.findById(id).get(); - System.out.println(client.getDescription()); model.put("client", client); return "clients/restaurantShow"; } diff --git a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java index a6ca4f81c..d4282cf3c 100644 --- a/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/FoodOfferControllerTests.java @@ -18,6 +18,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cheapy.configuration.SecurityConfiguration; import org.springframework.cheapy.model.Client; +import org.springframework.cheapy.model.Code; import org.springframework.cheapy.model.FoodOffer; import org.springframework.cheapy.model.User; import org.springframework.cheapy.service.ClientService; @@ -52,6 +53,9 @@ class FoodOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client();; @@ -63,7 +67,7 @@ class FoodOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); diff --git a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java index 13815ff9a..2eefd3e90 100644 --- a/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/NuOfferControllerTests.java @@ -18,6 +18,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cheapy.configuration.SecurityConfiguration; import org.springframework.cheapy.model.Client; +import org.springframework.cheapy.model.Code; import org.springframework.cheapy.model.NuOffer; import org.springframework.cheapy.model.User; import org.springframework.cheapy.service.ClientService; @@ -51,6 +52,9 @@ class NuOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -62,7 +66,7 @@ class NuOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); diff --git a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java index d05027011..5ebea4839 100644 --- a/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/SpeedOfferControllerTests.java @@ -18,6 +18,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cheapy.configuration.SecurityConfiguration; import org.springframework.cheapy.model.Client; +import org.springframework.cheapy.model.Code; import org.springframework.cheapy.model.SpeedOffer; import org.springframework.cheapy.model.User; import org.springframework.cheapy.service.ClientService; @@ -52,6 +53,9 @@ class SpeedOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -63,7 +67,7 @@ class SpeedOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); diff --git a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java index 8ff0a094e..7456c63c0 100644 --- a/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java +++ b/src/test/java/org/springframework/cheapy/web/TimeOfferControllerTests.java @@ -18,6 +18,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.cheapy.configuration.SecurityConfiguration; import org.springframework.cheapy.model.Client; +import org.springframework.cheapy.model.Code; import org.springframework.cheapy.model.TimeOffer; import org.springframework.cheapy.model.User; import org.springframework.cheapy.service.ClientService; @@ -51,6 +52,9 @@ class TimeOfferControllerTest { @BeforeEach void setup() { User user1 = new User(); + Code code1 = new Code(); + code1.setActivo(true); + code1.setCode("codeTest1"); user1.setUsername("user1"); user1.setPassword("user1"); Client client1 = new Client(); @@ -62,7 +66,7 @@ class TimeOfferControllerTest { client1.setFinish(LocalTime.of(01, 01)); client1.setTelephone("123456789"); client1.setDescription("client1"); - client1.setCode("client1"); + client1.setCode(code1); client1.setFood("client1"); client1.setUsuar(user1); BDDMockito.given(this.clientService.getCurrentClient()).willReturn(client1); From a4dc355bd6e0c74a2a2d646666a23d92e4cb39db Mon Sep 17 00:00:00 2001 From: abemorcardc Date: Mon, 12 Apr 2021 21:03:18 +0200 Subject: [PATCH 18/18] Arreglados show y edit de cliente y usuario con los nuevos cambios --- .../cheapy/model/Authorities.java | 1 - .../springframework/cheapy/model/Code.java | 1 - .../springframework/cheapy/model/User.java | 4 ---- .../springframework/cheapy/model/Usuario.java | 1 - .../cheapy/system/SingUpController.java | 4 ---- .../cheapy/web/ClientController.java | 6 +++--- .../cheapy/web/UsuarioController.java | 11 +++++++++-- src/main/resources/db/mysql/data.sql | 2 +- .../webapp/WEB-INF/jsp/clients/clientShow.jsp | 4 ++++ .../jsp/clients/createOrUpdateClientForm.jsp | 19 +++++++++---------- .../usuarios/createOrUpdateUsuarioForm.jsp | 19 ++++++++----------- .../WEB-INF/jsp/usuarios/usuariosShow.jsp | 9 +++------ 12 files changed, 37 insertions(+), 44 deletions(-) diff --git a/src/main/java/org/springframework/cheapy/model/Authorities.java b/src/main/java/org/springframework/cheapy/model/Authorities.java index a39220455..f12de11e0 100644 --- a/src/main/java/org/springframework/cheapy/model/Authorities.java +++ b/src/main/java/org/springframework/cheapy/model/Authorities.java @@ -3,7 +3,6 @@ package org.springframework.cheapy.model; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; -import javax.validation.constraints.NotNull; @Entity @Table(name = "authorities") diff --git a/src/main/java/org/springframework/cheapy/model/Code.java b/src/main/java/org/springframework/cheapy/model/Code.java index a151abf8d..e441d4e31 100644 --- a/src/main/java/org/springframework/cheapy/model/Code.java +++ b/src/main/java/org/springframework/cheapy/model/Code.java @@ -1,7 +1,6 @@ package org.springframework.cheapy.model; import javax.persistence.Entity; -import javax.persistence.Id; import javax.persistence.Table; import javax.validation.constraints.NotNull; diff --git a/src/main/java/org/springframework/cheapy/model/User.java b/src/main/java/org/springframework/cheapy/model/User.java index 275ec7968..7891d4c8e 100644 --- a/src/main/java/org/springframework/cheapy/model/User.java +++ b/src/main/java/org/springframework/cheapy/model/User.java @@ -5,10 +5,6 @@ import javax.persistence.Id; import javax.persistence.Table; import javax.validation.constraints.NotBlank; -import org.springframework.boot.context.properties.bind.DefaultValue; - -import net.bytebuddy.implementation.bind.annotation.Default; - @Entity @Table(name = "users") public class User { diff --git a/src/main/java/org/springframework/cheapy/model/Usuario.java b/src/main/java/org/springframework/cheapy/model/Usuario.java index 660faa88a..9adf0a9ec 100644 --- a/src/main/java/org/springframework/cheapy/model/Usuario.java +++ b/src/main/java/org/springframework/cheapy/model/Usuario.java @@ -9,7 +9,6 @@ import javax.persistence.OneToOne; import javax.persistence.Table; import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; @Entity @Table(name = "usuarios") diff --git a/src/main/java/org/springframework/cheapy/system/SingUpController.java b/src/main/java/org/springframework/cheapy/system/SingUpController.java index d07f727f6..6459ec357 100644 --- a/src/main/java/org/springframework/cheapy/system/SingUpController.java +++ b/src/main/java/org/springframework/cheapy/system/SingUpController.java @@ -1,6 +1,5 @@ package org.springframework.cheapy.system; -import java.util.Collection; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -18,15 +17,12 @@ import org.springframework.cheapy.service.ClientService; import org.springframework.cheapy.service.UserService; import org.springframework.cheapy.service.UsuarioService; import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.InitBinder; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.servlet.ModelAndView; @Controller public class SingUpController { diff --git a/src/main/java/org/springframework/cheapy/web/ClientController.java b/src/main/java/org/springframework/cheapy/web/ClientController.java index 9fa128732..fab77c2e5 100644 --- a/src/main/java/org/springframework/cheapy/web/ClientController.java +++ b/src/main/java/org/springframework/cheapy/web/ClientController.java @@ -12,6 +12,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cheapy.model.Client; 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.StatusOffer; @@ -85,7 +86,7 @@ public class ClientController { Client client = this.clientService.getCurrentClient(); - + model.put("municipio", Municipio.values()); model.addAttribute("client", client); return ClientController.VIEWS_CREATE_OR_UPDATE_CLIENT; @@ -97,8 +98,6 @@ public class ClientController { Client clienteSesion = this.clientService.getCurrentClient(); - clientEdit.setCode(clienteSesion.getCode()); - clientEdit.setMunicipio(clienteSesion.getMunicipio()); if(!this.checkTimes(clientEdit)) { result.rejectValue("finish","" ,"La hora de cierre debe ser posterior a la hora de apertura"); @@ -107,6 +106,7 @@ public class ClientController { if (result.hasErrors()) { model.addAttribute("client", clientEdit); + model.put("municipio", Municipio.values()); return ClientController.VIEWS_CREATE_OR_UPDATE_CLIENT; } diff --git a/src/main/java/org/springframework/cheapy/web/UsuarioController.java b/src/main/java/org/springframework/cheapy/web/UsuarioController.java index 8e6d965cc..593443a76 100644 --- a/src/main/java/org/springframework/cheapy/web/UsuarioController.java +++ b/src/main/java/org/springframework/cheapy/web/UsuarioController.java @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import org.springframework.beans.BeanUtils; +import org.springframework.cheapy.model.Municipio; import org.springframework.cheapy.model.Usuario; import org.springframework.cheapy.service.UsuarioService; import org.springframework.stereotype.Controller; @@ -37,15 +38,21 @@ public class UsuarioController { public String updateUsuario(final ModelMap model, HttpServletRequest request) { Usuario usuario = this.usuarioService.getCurrentUsuario(); model.addAttribute("usuario", usuario); + model.put("municipio", Municipio.values()); return UsuarioController.VIEWS_USUARIO_CREATE_OR_UPDATE_FORM; } @PostMapping(value = "/usuarios/edit") public String updateUsuario(@Valid final Usuario usuarioEdit, final BindingResult result, final ModelMap model, HttpServletRequest request) { - + + if (result.hasErrors()) { + model.addAttribute("usuario", usuarioEdit); + model.put("municipio", Municipio.values()); + return UsuarioController.VIEWS_USUARIO_CREATE_OR_UPDATE_FORM; + } Usuario usuario = this.usuarioService.getCurrentUsuario(); - BeanUtils.copyProperties(usuario, usuarioEdit, "nombre", "apellidos", "dni", "direccion", "telefono", "usuar"); + BeanUtils.copyProperties(usuario, usuarioEdit, "nombre", "apellidos", "municipio", "direccion","email", "usuar"); usuarioEdit.getUsuar().setUsername(usuario.getNombre()); usuarioEdit.getUsuar().setEnabled(true); this.usuarioService.saveUsuario(usuarioEdit); diff --git a/src/main/resources/db/mysql/data.sql b/src/main/resources/db/mysql/data.sql index 97230b156..39ba10cab 100644 --- a/src/main/resources/db/mysql/data.sql +++ b/src/main/resources/db/mysql/data.sql @@ -25,7 +25,7 @@ INSERT INTO codes (id,code,activo) VALUES (3,'code3',TRUE); INSERT INTO codes (id,code,activo) VALUES (4,'code4',TRUE); INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, food, username, code) VALUES (1,'bar manoli','manoli@gmail.com','C/Betis', 'sevilla','10:00','22:00','608726190', 'description 1', 'ESPAÑOLA','manoli', 'code1'); -INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, food, username, code) VALUES (2,'bar david','david@gmail.com','C/Sevilla', 'dosHermanas','09:30','22:00','608726190', 'description 2', 'americana','david', 'code2'); +INSERT INTO clients (id, name, email, address, municipio, init, finish, telephone, description, food, username, code) VALUES (2,'bar david','david@gmail.com','C/Sevilla', 'dos_hermanas','09:30','22:00','608726190', 'description 2', 'americana','david', 'code2'); 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); diff --git a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp index 8b865dd99..b3c34f7e9 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/clientShow.jsp @@ -35,6 +35,10 @@ + + + + diff --git a/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp b/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp index 163807396..582488b38 100644 --- a/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/clients/createOrUpdateClientForm.jsp @@ -15,7 +15,6 @@
    - @@ -24,6 +23,14 @@ +
    + + +
    @@ -31,18 +38,10 @@
    - - - - - + - -
    diff --git a/src/main/webapp/WEB-INF/jsp/usuarios/createOrUpdateUsuarioForm.jsp b/src/main/webapp/WEB-INF/jsp/usuarios/createOrUpdateUsuarioForm.jsp index e63363513..fd58830a6 100644 --- a/src/main/webapp/WEB-INF/jsp/usuarios/createOrUpdateUsuarioForm.jsp +++ b/src/main/webapp/WEB-INF/jsp/usuarios/createOrUpdateUsuarioForm.jsp @@ -16,27 +16,24 @@
    - +
    + + +
    -
    - - - - - - -
    diff --git a/src/main/webapp/WEB-INF/jsp/usuarios/usuariosShow.jsp b/src/main/webapp/WEB-INF/jsp/usuarios/usuariosShow.jsp index c9201d00c..ae1cb8d4c 100644 --- a/src/main/webapp/WEB-INF/jsp/usuarios/usuariosShow.jsp +++ b/src/main/webapp/WEB-INF/jsp/usuarios/usuariosShow.jsp @@ -22,17 +22,14 @@ - - + + - - - - +