From 65253a15c80e17f7ff6f46069bfdc07c496d01f5 Mon Sep 17 00:00:00 2001 From: Abraham Date: Wed, 24 Mar 2021 17:38:56 +0100 Subject: [PATCH] codigo casi completo pero no funcional --- .../configuration/SecurityConfiguration.java | 3 +- .../cheapy/model/FoodOffer.java | 2 +- .../springframework/cheapy/model/NuOffer.java | 2 +- .../springframework/cheapy/model/Offer.java | 2 +- .../cheapy/model/SpeedOffer.java | 2 +- .../cheapy/model/TimeOffer.java | 2 +- .../repository/FoodOfferRepository.java | 67 ++++++++ .../cheapy/repository/NuOfferRepository.java | 68 ++++++++ .../repository/SpeedOfferRepository.java | 68 ++++++++ .../repository/TimeOfferRepository.java | 68 ++++++++ .../cheapy/service/FoodOfferService.java | 37 +++++ .../cheapy/service/NuOfferService.java | 37 +++++ .../cheapy/service/SpeedOfferService.java | 35 ++++ .../cheapy/service/TimeOfferService.java | 37 +++++ .../cheapy/service/UserService.java | 64 -------- .../cheapy/web/OfertaController.java | 109 +++++++++++++ .../cheapy/web/UserController.java | 154 ------------------ .../webapp/WEB-INF/jsp/offers/offersList.jsp | 138 ++++++++++++++++ src/main/webapp/WEB-INF/tags/menu.tag | 2 +- 19 files changed, 672 insertions(+), 225 deletions(-) create mode 100644 src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java create mode 100644 src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java create mode 100644 src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java create mode 100644 src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java create mode 100644 src/main/java/org/springframework/cheapy/service/FoodOfferService.java create mode 100644 src/main/java/org/springframework/cheapy/service/NuOfferService.java create mode 100644 src/main/java/org/springframework/cheapy/service/SpeedOfferService.java create mode 100644 src/main/java/org/springframework/cheapy/service/TimeOfferService.java delete mode 100644 src/main/java/org/springframework/cheapy/service/UserService.java create mode 100644 src/main/java/org/springframework/cheapy/web/OfertaController.java delete mode 100644 src/main/java/org/springframework/cheapy/web/UserController.java create mode 100644 src/main/webapp/WEB-INF/jsp/offers/offersList.jsp diff --git a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java index 2fbdc84ad..2b9ce3c1c 100644 --- a/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java +++ b/src/main/java/org/springframework/cheapy/configuration/SecurityConfiguration.java @@ -38,6 +38,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { .antMatchers(HttpMethod.GET, "/", "/oups").permitAll() .antMatchers("/users/new").permitAll() .antMatchers("/usuarios/new").permitAll() + .antMatchers("/offers").permitAll() .antMatchers("/admin/**").hasAnyAuthority("admin") .antMatchers("/owners/**").hasAnyAuthority("owner", "admin") .antMatchers("/vets/**").authenticated().anyRequest().denyAll() @@ -58,7 +59,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { public void configure(final AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication().dataSource(this.dataSource) //[login de admin,owner y vet] .usersByUsernameQuery("select username,password,enabled " + "from users " + "where username = ?") - .usersByUsernameQuery("select username, password, enabled from users where username=?").authoritiesByUsernameQuery("select username, authority " + "from authorities " + "where username = ?") //[login de tallerespaco] + .usersByUsernameQuery("select username, password, enabled from users where username=?").authoritiesByUsernameQuery("select username, authority " + "from authorities " + "where username = ?") .passwordEncoder(this.passwordEncoder()); } diff --git a/src/main/java/org/springframework/cheapy/model/FoodOffer.java b/src/main/java/org/springframework/cheapy/model/FoodOffer.java index b82fed73b..5a03285ef 100644 --- a/src/main/java/org/springframework/cheapy/model/FoodOffer.java +++ b/src/main/java/org/springframework/cheapy/model/FoodOffer.java @@ -22,7 +22,7 @@ import javax.validation.constraints.NotBlank; @Entity @Table(name = "food_offers") public class FoodOffer extends Offer { - +//Plato específico @NotBlank private String food; diff --git a/src/main/java/org/springframework/cheapy/model/NuOffer.java b/src/main/java/org/springframework/cheapy/model/NuOffer.java index 05d66a688..25ebce674 100644 --- a/src/main/java/org/springframework/cheapy/model/NuOffer.java +++ b/src/main/java/org/springframework/cheapy/model/NuOffer.java @@ -23,7 +23,7 @@ import javax.validation.constraints.NotBlank; @Entity @Table(name = "nu_offers") public class NuOffer extends Offer { - +//Oferta por numero de comensales @NotBlank private Integer gold; diff --git a/src/main/java/org/springframework/cheapy/model/Offer.java b/src/main/java/org/springframework/cheapy/model/Offer.java index 4c3921b1b..0e6d23f18 100644 --- a/src/main/java/org/springframework/cheapy/model/Offer.java +++ b/src/main/java/org/springframework/cheapy/model/Offer.java @@ -31,7 +31,7 @@ import org.springframework.format.annotation.DateTimeFormat; @MappedSuperclass public class Offer extends BaseEntity { - +//Clase padre @DateTimeFormat(pattern = "dd/MM/yyyy HH:mm") @NotBlank @Future diff --git a/src/main/java/org/springframework/cheapy/model/SpeedOffer.java b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java index 0399d4baf..71e32ae3e 100644 --- a/src/main/java/org/springframework/cheapy/model/SpeedOffer.java +++ b/src/main/java/org/springframework/cheapy/model/SpeedOffer.java @@ -23,7 +23,7 @@ import javax.validation.constraints.NotBlank; @Entity @Table(name = "speed_offers") public class SpeedOffer extends Offer { - +//Ofertar por rapidez comiendo @NotBlank private Integer gold; // x minutos diff --git a/src/main/java/org/springframework/cheapy/model/TimeOffer.java b/src/main/java/org/springframework/cheapy/model/TimeOffer.java index 7f1d3cc6d..ceefc371e 100644 --- a/src/main/java/org/springframework/cheapy/model/TimeOffer.java +++ b/src/main/java/org/springframework/cheapy/model/TimeOffer.java @@ -28,7 +28,7 @@ import org.springframework.format.annotation.DateTimeFormat; @Entity @Table(name = "time_offers") public class TimeOffer extends Offer { - +//Oferta por franja horaria @DateTimeFormat(pattern = "HH:mm") @NotBlank private LocalTime init; diff --git a/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java new file mode 100644 index 000000000..4061e5fc4 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/FoodOfferRepository.java @@ -0,0 +1,67 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.repository; + +import java.util.Collection; +import java.util.List; + +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +/** + * Repository class for Owner domain objects All method names are compliant + * with Spring Data naming conventions so this interface can easily be extended for Spring + * Data. See: + * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation + * + * @author Ken Krebs + * @author Juergen Hoeller + * @author Sam Brannen + * @author Michael Isvy + */ +public interface FoodOfferRepository extends Repository { + + /** + * Retrieve {@link Owner}s from the data store by last name, returning all owners + * whose last name starts with the given name. + * @param lastName Value to search for + * @return a Collection of matching {@link Owner}s (or an empty Collection if none + * found) + */ + @Query("SELECT foodOffer FROM FoodOffer foodOffer") + @Transactional(readOnly = true) + List findAllFoodOffer(); + + /** + * Retrieve an {@link Owner} from the data store by id. + * @param id the id to search for + * @return the {@link Owner} if found + */ + @Query("SELECT foodOffer FROM FoodOffer foodOffer WHERE id =:id") + @Transactional(readOnly = true) + FoodOffer findById(@Param("id") Integer id); + + /** + * Save an {@link Owner} to the data store, either inserting or updating it. + * @param owner the {@link Owner} to save + */ + void save(FoodOffer foodOffer); + +} diff --git a/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java new file mode 100644 index 000000000..81cdd7d24 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/NuOfferRepository.java @@ -0,0 +1,68 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.repository; + +import java.util.Collection; +import java.util.List; + +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +/** + * Repository class for Owner domain objects All method names are compliant + * with Spring Data naming conventions so this interface can easily be extended for Spring + * Data. See: + * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation + * + * @author Ken Krebs + * @author Juergen Hoeller + * @author Sam Brannen + * @author Michael Isvy + */ +public interface NuOfferRepository extends Repository { + + /** + * Retrieve {@link Owner}s from the data store by last name, returning all owners + * whose last name starts with the given name. + * @param lastName Value to search for + * @return a Collection of matching {@link Owner}s (or an empty Collection if none + * found) + */ + @Query("SELECT nuOffer FROM NuOffer nuOffer") + @Transactional(readOnly = true) + List findAllNuOffer(); + + /** + * Retrieve an {@link Owner} from the data store by id. + * @param id the id to search for + * @return the {@link Owner} if found + */ + @Query("SELECT nuOffer FROM NuOffer nuOffer WHERE id =:id") + @Transactional(readOnly = true) + NuOffer findById(@Param("id") Integer id); + + /** + * Save an {@link Owner} to the data store, either inserting or updating it. + * @param owner the {@link Owner} to save + */ + void save(NuOffer nuOffer); + +} diff --git a/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java new file mode 100644 index 000000000..606d1d31a --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/SpeedOfferRepository.java @@ -0,0 +1,68 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.repository; + +import java.util.Collection; +import java.util.List; + +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +/** + * Repository class for Owner domain objects All method names are compliant + * with Spring Data naming conventions so this interface can easily be extended for Spring + * Data. See: + * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation + * + * @author Ken Krebs + * @author Juergen Hoeller + * @author Sam Brannen + * @author Michael Isvy + */ +public interface SpeedOfferRepository extends Repository { + + /** + * Retrieve {@link Owner}s from the data store by last name, returning all owners + * whose last name starts with the given name. + * @param lastName Value to search for + * @return a Collection of matching {@link Owner}s (or an empty Collection if none + * found) + */ + @Query("SELECT speedOffer FROM SpeedOffer speedOffer") + @Transactional(readOnly = true) + List findAllSpeedOffer(); + + /** + * Retrieve an {@link Owner} from the data store by id. + * @param id the id to search for + * @return the {@link Owner} if found + */ + @Query("SELECT speedOffer FROM SpeedOffer speedOffer WHERE id =:id") + @Transactional(readOnly = true) + SpeedOffer findById(@Param("id") Integer id); + + /** + * Save an {@link Owner} to the data store, either inserting or updating it. + * @param owner the {@link Owner} to save + */ + void save(SpeedOffer speedOffer); + +} diff --git a/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java new file mode 100644 index 000000000..186746870 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/repository/TimeOfferRepository.java @@ -0,0 +1,68 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.repository; + +import java.util.Collection; +import java.util.List; + +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.model.TimeOffer; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.Repository; +import org.springframework.data.repository.query.Param; +import org.springframework.transaction.annotation.Transactional; + +/** + * Repository class for Owner domain objects All method names are compliant + * with Spring Data naming conventions so this interface can easily be extended for Spring + * Data. See: + * https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation + * + * @author Ken Krebs + * @author Juergen Hoeller + * @author Sam Brannen + * @author Michael Isvy + */ +public interface TimeOfferRepository extends Repository { + + /** + * Retrieve {@link Owner}s from the data store by last name, returning all owners + * whose last name starts with the given name. + * @param lastName Value to search for + * @return a Collection of matching {@link Owner}s (or an empty Collection if none + * found) + */ + @Query("SELECT timeOffer FROM TimeOffer timeOffer") + @Transactional(readOnly = true) + List findAllTimeOffer(); + + /** + * Retrieve an {@link Owner} from the data store by id. + * @param id the id to search for + * @return the {@link Owner} if found + */ + @Query("SELECT timeOffer FROM TimeOffer timeOffer WHERE id =:id") + @Transactional(readOnly = true) + TimeOffer findById(@Param("id") Integer id); + + /** + * Save an {@link Owner} to the data store, either inserting or updating it. + * @param owner the {@link Owner} to save + */ + void save(TimeOffer timeOffer); + +} diff --git a/src/main/java/org/springframework/cheapy/service/FoodOfferService.java b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java new file mode 100644 index 000000000..b55207046 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/service/FoodOfferService.java @@ -0,0 +1,37 @@ +package org.springframework.cheapy.service; + +import java.util.Collection; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.repository.FoodOfferRepository; +import org.springframework.cheapy.repository.OwnerRepository; +import org.springframework.dao.DataAccessException; +import org.springframework.stereotype.Service; + +@Service +public class FoodOfferService { + private FoodOfferRepository foodOfferRepository; + + + @Autowired + public FoodOfferService(final FoodOfferRepository foodOfferRepository) { + this.foodOfferRepository = foodOfferRepository; + } + + public FoodOffer findFoodOfferById(final int id) { + return this.foodOfferRepository.findById(id); + } + + public List findAllFoodOffer() { // + return this.foodOfferRepository.findAllFoodOffer(); + + } + + public void saveOwner(final FoodOffer foodOffer) throws DataAccessException { // + this.foodOfferRepository.save(foodOffer); + + } +} diff --git a/src/main/java/org/springframework/cheapy/service/NuOfferService.java b/src/main/java/org/springframework/cheapy/service/NuOfferService.java new file mode 100644 index 000000000..1029999d5 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/service/NuOfferService.java @@ -0,0 +1,37 @@ +package org.springframework.cheapy.service; + +import java.util.Collection; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.repository.NuOfferRepository; +import org.springframework.cheapy.repository.OwnerRepository; +import org.springframework.dao.DataAccessException; +import org.springframework.stereotype.Service; + +@Service +public class NuOfferService { + private NuOfferRepository nuOfferRepository; + + + @Autowired + public NuOfferService(final NuOfferRepository nuOfferRepository) { + this.nuOfferRepository = nuOfferRepository; + } + + public NuOffer findNuOfferById(final int id) { + return this.nuOfferRepository.findById(id); + } + + public List findAllNuOffer() { // + return this.nuOfferRepository.findAllNuOffer(); + + } + + public void saveOwner(final NuOffer nuOffer) throws DataAccessException { // + this.nuOfferRepository.save(nuOffer); + + } +} diff --git a/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java new file mode 100644 index 000000000..bfc70644e --- /dev/null +++ b/src/main/java/org/springframework/cheapy/service/SpeedOfferService.java @@ -0,0 +1,35 @@ +package org.springframework.cheapy.service; + +import java.util.Collection; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.cheapy.repository.SpeedOfferRepository; +import org.springframework.dao.DataAccessException; +import org.springframework.stereotype.Service; + +@Service +public class SpeedOfferService { + private SpeedOfferRepository speedOfferRepository; + + + @Autowired + public SpeedOfferService(final SpeedOfferRepository speedOfferRepository) { + this.speedOfferRepository = speedOfferRepository; + } + + public SpeedOffer findSpeedOfferById(final int id) { + return this.speedOfferRepository.findById(id); + } + + public List findAllSpeedOffer() { // + return this.speedOfferRepository.findAllSpeedOffer(); + + } + + public void saveOwner(final SpeedOffer speedOffer) throws DataAccessException { // + this.speedOfferRepository.save(speedOffer); + + } +} diff --git a/src/main/java/org/springframework/cheapy/service/TimeOfferService.java b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java new file mode 100644 index 000000000..bb5cacbc6 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/service/TimeOfferService.java @@ -0,0 +1,37 @@ +package org.springframework.cheapy.service; + +import java.util.Collection; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cheapy.model.TimeOffer; +import org.springframework.cheapy.model.Owner; +import org.springframework.cheapy.repository.TimeOfferRepository; +import org.springframework.cheapy.repository.OwnerRepository; +import org.springframework.dao.DataAccessException; +import org.springframework.stereotype.Service; + +@Service +public class TimeOfferService { + private TimeOfferRepository timeOfferRepository; + + + @Autowired + public TimeOfferService(final TimeOfferRepository timeOfferRepository) { + this.timeOfferRepository = timeOfferRepository; + } + + public TimeOffer findTimeOfferById(final int id) { + return this.timeOfferRepository.findById(id); + } + + public List findAllTimeOffer() { // + return this.timeOfferRepository.findAllTimeOffer(); + + } + + public void saveOwner(final TimeOffer timeOffer) throws DataAccessException { // + this.timeOfferRepository.save(timeOffer); + + } +} diff --git a/src/main/java/org/springframework/cheapy/service/UserService.java b/src/main/java/org/springframework/cheapy/service/UserService.java deleted file mode 100644 index d719f8b47..000000000 --- a/src/main/java/org/springframework/cheapy/service/UserService.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2002-2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cheapy.service; - - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.dao.DataAccessException; -import org.springframework.cheapy.model.User; -import org.springframework.cheapy.repository.UsuarioRepository; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - - -/** - * Mostly used as a facade for all Petclinic controllers Also a placeholder - * for @Transactional and @Cacheable annotations - * - * @author Michael Isvy - */ - -@Service -public class UserService { -/* - private UserRepository userRepository; - - @Autowired - public UserService(UserRepository userRepository) { - this.userRepository = userRepository; - } - - @Transactional - public void saveUser(User user) throws DataAccessException { - userRepository.save(user); - } - - public Optional findUser(String username) { - return userRepository.findById(username); - } - - @Transactional - public User getCurrentUser() throws DataAccessException { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - String currentPrincipalName = authentication.getName(); //Obtiene el nombre del ususario actual - return this.userRepository.findByUsername(currentPrincipalName); //Obtiene el usuario con ese nombre - } - */ -} diff --git a/src/main/java/org/springframework/cheapy/web/OfertaController.java b/src/main/java/org/springframework/cheapy/web/OfertaController.java new file mode 100644 index 000000000..70d42fb55 --- /dev/null +++ b/src/main/java/org/springframework/cheapy/web/OfertaController.java @@ -0,0 +1,109 @@ +/* + * Copyright 2012-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.cheapy.web; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.cheapy.model.FoodOffer; +import org.springframework.cheapy.model.NuOffer; +import org.springframework.cheapy.model.SpeedOffer; +import org.springframework.cheapy.model.TimeOffer; +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.stereotype.Controller; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; + + +/** + * @author Juergen Hoeller + * @author Ken Krebs + * @author Arjen Poutsma + * @author Michael Isvy + */ +@Controller +public class OfertaController { + + //private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; + + private final FoodOfferService foodOfferService; + private final NuOfferService nuOfferService; + private final SpeedOfferService speedOfferService; + private final TimeOfferService timeOfferService; + + + + public OfertaController(final FoodOfferService foodOfferService, final NuOfferService nuOfferService, + final SpeedOfferService speedOfferService, final TimeOfferService timeOfferService) { + this.foodOfferService = foodOfferService; + this.nuOfferService = nuOfferService; + this.speedOfferService = speedOfferService; + this.timeOfferService = timeOfferService; + + } + + + @GetMapping("/offers") + public String processFindForm(BindingResult result, Map model) { + + List foodOfferLs=this.foodOfferService.findAllFoodOffer(); + List nuOfferLs=this.nuOfferService.findAllNuOffer(); + List speedOfferLs=this.speedOfferService.findAllSpeedOffer(); + List timeOfferLs=this.timeOfferService.findAllTimeOffer(); + + model.put("foodOfferLs", foodOfferLs); + model.put("nuOfferLs", nuOfferLs); + model.put("speedOfferLs", speedOfferLs); + model.put("timeOfferLs", timeOfferLs); + + return "offers/offersList"; + + } + +// @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/java/org/springframework/cheapy/web/UserController.java b/src/main/java/org/springframework/cheapy/web/UserController.java deleted file mode 100644 index 97e921a75..000000000 --- a/src/main/java/org/springframework/cheapy/web/UserController.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright 2002-2013 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cheapy.web; - -import javax.persistence.EntityNotFoundException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cheapy.model.Authorities; -import org.springframework.cheapy.model.User; -import org.springframework.cheapy.service.AuthoritiesService; -import org.springframework.cheapy.service.UserService; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.validation.BindingResult; -import org.springframework.validation.FieldError; -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.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; - -/** - * @author Juergen Hoeller - * @author Ken Krebs - * @author Arjen Poutsma - * @author Michael Isvy - */ -@Controller -public class UserController { - - private UserService userService; - - private AuthoritiesService authoritiesService; - -// @Autowired -// public UserController (UserService userService, AuthoritiesService authoritiesService, -// ClienteService clienteService, FarmaceuticoService farmaceuticoService, ProveedorService proveedorService) { -// this.userService = userService; -// this.authoritiesService = authoritiesService; -// this.clienteService = clienteService; -// this.farmaceuticoService = farmaceuticoService; -// this.proveedorService = proveedorService; -// } -// -// @InitBinder -// public void setAllowedFields(final WebDataBinder dataBinder) { -// dataBinder.setDisallowedFields("id"); -// } -// -// @GetMapping("users") -// private String showUserDetails(ModelMap model) { -// User user = this.userService.getCurrentUser(); -// Authorities authority = this.authoritiesService.findAuthoritiyByUser(user); -// -// if(authority.getAuthority().equals("cliente")) { -// Cliente cliente = this.clienteService.findClienteUser(user); -// model.addAttribute("cliente", cliente); -// }else if(authority.getAuthority().equals("proveedor")) { -// Proveedor proveedor = this.proveedorService.findProveedorUser(user); -// model.addAttribute("proveedor", proveedor); -// }else if(authority.getAuthority().equals("farmaceutico")) { -// Farmaceutico farmaceutico = this.farmaceuticoService.findFarmaceuticoByUser(user); -// model.addAttribute("farmaceutico", farmaceutico); -// } -// -// log.info("El usuario '" + user.getUsername() + "' ha mostrado su informacion personal"); -// return "users/userDetails"; -// } -// -// @GetMapping("/users/new") -// public String newUser(ModelMap model) { -// Cliente cliente = new Cliente(); -// model.addAttribute("cliente", cliente); -// model.addAttribute("dni", new String()); -// return "users/userRegister"; -// } -// -// @PostMapping("/users/new") -// public String creationUser(@ModelAttribute("cliente") Cliente cliente, final BindingResult result, ModelMap model) { -// if (result.hasErrors()) { -// return "users/userRegister"; -// } else if(cliente.getUser() == null) { -// try { -// cliente = this.clienteService.clienteDni(cliente.getDni()); -// }catch(EntityNotFoundException ex) { -// result.rejectValue("dni", "clienteNotFound"); -// return "users/userRegister"; -// } -// cliente.setUser(new User()); -// model.addAttribute("cliente", cliente); -// return "users/userRegister"; -// }else { -// this.userService.saveUser(cliente.getUser()); -// this.authoritiesService.saveAuthorities(cliente.getUser().getUsername(), "cliente"); -// this.clienteService.saveCliente(cliente); -// log.info("El cliente con dni '" + cliente.getDni() + "' se ha registrado como usuario"); -// return "redirect:../"; -// } -// } -// -// @GetMapping("/users/password") -// public String initChangePassword(ModelMap model) { -// User currentUser = this.userService.getCurrentUser(); -// UserValidate user = new UserValidate(currentUser.getUsername(), ""); -// model.addAttribute("user", user); -// return "users/passwordEdit"; -// } -// -// @PostMapping("/users/password") -// public String changePassword(@ModelAttribute("user") UserValidate user, final BindingResult result, ModelMap model) { -// if(result.hasErrors()) { -// return "users/passwordEdit"; -// }else { -// User CurrentUser = this.userService.getCurrentUser(); -// if(CurrentUser.getPassword().equals(user.getPassword()) && user.getNewPassword().equals(user.getValidPassword())) { -// if(!user.getNewPassword().isEmpty()) { -// CurrentUser.setPassword(user.getNewPassword()); -// this.userService.saveUser(CurrentUser); -// log.info("El usuario '" + CurrentUser.getUsername() + "' ha cambiado satisfactoriamente su contraseña"); -// return "redirect:../"; -// }else { -// FieldError err = new FieldError("PassException", "newPassword", "Introduce una nueva contraseña"); -// result.addError(err); -// log.warn("El usuario '" + CurrentUser.getUsername() + "' ha tenido un error 'PassException'"); -// return "users/passwordEdit"; -// } -// }else if(!CurrentUser.getPassword().equals(user.getPassword())){ -// FieldError err = new FieldError("PassException", "password", "Contraseña incorrecta"); -// result.addError(err); -// log.warn("El usuario '" + CurrentUser.getUsername() + "' ha tenido un error 'PassException'"); -// return "users/passwordEdit"; -// }else { -// FieldError err = new FieldError("PassException", "newPassword", "Las contraseñas no coinciden"); -// result.addError(err); -// log.warn("El usuario '" + CurrentUser.getUsername() + "' ha tenido un error 'PassException'"); -// return "users/passwordEdit"; -// } -// } -// } -} diff --git a/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp new file mode 100644 index 000000000..fd51ca114 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/offers/offersList.jsp @@ -0,0 +1,138 @@ +<%@ 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="cheapy" tagdir="/WEB-INF/tags" %> + + +

Ofertas por plato específico

+ + + + + + + + + + + + + + + + + + + + + + +
RestaurantePlatoFecha inicioFecha fin
+ + + + + + + + + + +
+ +

Ofertas por número de comensales

+ + + + + + + + + + + + + + + + + + + + +
RestauranteFecha inicioFecha fin
+ + + + + + + + +
+

Ofertas por plato específico

+ + + + + + + + + + + + + + + + + + + + +
RestauranteFecha inicioFecha fin
+ + + + + + + + +
+

Ofertas por plato específico

+ + + + + + + + + + + + + + + + + + + + +
RestauranteFecha inicioFecha fin
+ + + + + + + + +
+
diff --git a/src/main/webapp/WEB-INF/tags/menu.tag b/src/main/webapp/WEB-INF/tags/menu.tag index 144904a60..6963454f7 100644 --- a/src/main/webapp/WEB-INF/tags/menu.tag +++ b/src/main/webapp/WEB-INF/tags/menu.tag @@ -28,7 +28,7 @@ Home - Ver ofertas