-
-
€
-
{{ producto.precio }}
+
+
+
+
{{ producto.nombre }}
+
-
-
PUNTUACIÓN
-
{{ producto.valoracion }}
+
+
-
-
CATEGORIA
-
{{ producto.categoria }}
+
+
+ {{ producto.precio }}€
+ {{ producto.categoria }}
+
+
+
+
-
-
-
-
diff --git a/clientes-app/src/app/producto/producto.component.ts b/clientes-app/src/app/producto/producto.component.ts
index 5a6d0f8..cb9f034 100644
--- a/clientes-app/src/app/producto/producto.component.ts
+++ b/clientes-app/src/app/producto/producto.component.ts
@@ -75,13 +75,16 @@ export class ProductoComponent implements OnInit {
productoCantidad.idProducto = this.producto.id;
productoCantidad.cantidad = 1;
-
this.cesta.productoCantidad.push(productoCantidad);
console.log(this.cesta.productoCantidad.length);
- this.cestaService.incluirEnCesta(this.cesta).subscribe(
- respuesta => {this.cesta=respuesta
- this.router.navigate(['cesta'])}
- );
+ this.cestaService.incluirEnCesta(this.cesta).subscribe((respuesta) => {
+ this.cesta = respuesta;
+ this.router.navigate(['cesta']);
+ });
});
}
+
+ tienePermisos(role: string): boolean {
+ return this.personaServices.hasRole(role);
+ }
}
diff --git a/clientes-app/src/app/producto/producto.service.ts b/clientes-app/src/app/producto/producto.service.ts
index bf7585a..eb6d862 100644
--- a/clientes-app/src/app/producto/producto.service.ts
+++ b/clientes-app/src/app/producto/producto.service.ts
@@ -6,6 +6,7 @@ import { Producto } from './producto.model';
import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http';
import { catchError, map, switchAll } from 'rxjs/operators';
import swal from 'sweetalert2';
+import { Tienda } from '../configuracion/tienda.model';
@Injectable({ providedIn: 'root' })
export class ServiceNameService {
@@ -21,9 +22,21 @@ export class ProductoService {
private urlProductoNuevo: string =
'http://localhost:8090/api/productos/producto/nuevo';
private urlEndPoint: string = 'http://localhost:8090/api/productos/producto';
+ private urlEliminarProducto: string =
+ 'http://localhost:8090/api/productos/producto/borrar';
+ private urlEliminarImagen: string =
+ 'http://localhost:8090/api/productos/producto/borrar-imagen';
+ private urlCambiarNombre: string =
+ 'http://localhost:8090/api/productos/tienda/cambia-tienda';
+ private urlNombre: string =
+ 'http://localhost:8090/api/productos/tienda/nombre';
private httpHeaders = new HttpHeaders({ 'Content-Type': 'application/json' });
+ busqueda: string;
+
+
+
constructor(
private http: HttpClient,
private router: Router,
@@ -107,6 +120,7 @@ export class ProductoService {
);
}
+
private isNoAutorizado(e: { status: number }): boolean {
if (e.status == 401) {
if (this.personaServices.isAuthenticated()) {
@@ -117,10 +131,74 @@ export class ProductoService {
}
if (e.status == 403) {
- swal.fire('Error', 'Acceso Denegaod', 'warning')
+ swal.fire('Error', 'Acceso Denegaod', 'warning');
return true;
}
return false;
}
+
+ setFiltro(busqueda: string) {
+ this.busqueda = busqueda;
+ }
+
+ getFiltro(busqueda: string) {
+ return this.busqueda;
+ }
+
+ eliminarProducto(id: number): Observable
{
+ return this.http
+ .delete(`${this.urlEliminarProducto}/${id}`, {
+ headers: this.agregarAuthorizationHeader(),
+ })
+ .pipe(
+ catchError((e) => {
+ console.error(e.error.mensaje);
+ swal.fire('No se pudo borra el producto', e.error.mensaje, 'error');
+ return throwError(e);
+ })
+ );
+ }
+ eliminarImagen(imagen: string): Observable {
+ console.log(this.urlEliminarImagen+'/'+imagen)
+ return this.http
+ .delete(`${this.urlEliminarImagen}/${imagen}`, {
+ headers: this.agregarAuthorizationHeader(),
+ })
+ .pipe(
+ catchError((e) => {
+ console.error(e.error.mensaje);
+ swal.fire('No se pudo borra el producto', e.error.mensaje, 'error');
+ return throwError(e);
+ })
+ );
+ }
+
+ setNombreTienda(tienda: Tienda): Observable{
+ return this.http
+ .post(this.urlCambiarNombre, tienda, {
+ headers: this.agregarAuthorizationHeader(),
+ })
+ .pipe(
+ catchError((e) => {
+ swal.fire('Error al guardar el nombre de la tienda', e.error.mensaje, 'error');
+ this.isNoAutorizado(e);
+ console.error(e.error.mensaje);
+ return throwError(e);
+ })
+ );
+
+
+
+ }
+ getNombreTienda(): Observable{
+ return this.http
+ .get(`${this.urlNombre}`, {
+ headers: this.httpHeaders,
+ })
+ .pipe(
+
+ );
+
+ }
}
diff --git a/clientes-app/src/app/productosgrid/productosgrid.component.html b/clientes-app/src/app/productosgrid/productosgrid.component.html
index 088a4fc..4ddf330 100644
--- a/clientes-app/src/app/productosgrid/productosgrid.component.html
+++ b/clientes-app/src/app/productosgrid/productosgrid.component.html
@@ -3,8 +3,6 @@
-
-
-
-
-
-
-
-
+
diff --git a/clientes-app/src/app/productosgrid/productosgrid.component.ts b/clientes-app/src/app/productosgrid/productosgrid.component.ts
index 4f29f5b..b683cb9 100644
--- a/clientes-app/src/app/productosgrid/productosgrid.component.ts
+++ b/clientes-app/src/app/productosgrid/productosgrid.component.ts
@@ -19,14 +19,13 @@ export class ProductosgridComponent implements OnInit {
this.productoService.getProductos().subscribe(
productos => this.productos= productos
)
-
}
agregarProducto(producto: Producto){
this.productos.push(producto);
}
- buscarProductosPorNombre(event: Event): void {
- }
+
+
}
diff --git a/config/application.properties b/config/application.properties
index 4c29dfe..70a26d5 100644
--- a/config/application.properties
+++ b/config/application.properties
@@ -1,3 +1,14 @@
config.security.oauth.client.id=frontendapp
config.security.oauth.client.secret=12345
-config.security.oauth.jwt.key=12345
\ No newline at end of file
+config.security.oauth.jwt.key=12345
+
+spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce
+spring.datasource.username=postgres
+spring.datasource.password=ruben
+spring.datasource.driver-class-name=org.postgresql.Driver
+spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
+spring.jpa.hibernate.ddl-auto=create
+
+logging.level.org.hibernate.SQL=debug
+
+spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
\ No newline at end of file
diff --git a/config/servicio-compras.properties b/config/servicio-compras.properties
deleted file mode 100644
index 4d160fb..0000000
--- a/config/servicio-compras.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce
-spring.datasource.username=postgres
-spring.datasource.password=ruben
-spring.datasource.driver-class-name=org.postgresql.Driver
-spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
-spring.jpa.hibernate.ddl-auto=create
-
-logging.level.org.hibernate.SQL=debug
-
-spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
\ No newline at end of file
diff --git a/config/servicio-personas.properties b/config/servicio-personas.properties
deleted file mode 100644
index 4d160fb..0000000
--- a/config/servicio-personas.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-spring.datasource.url=jdbc:postgresql://localhost:5432/db_ecommerce
-spring.datasource.username=postgres
-spring.datasource.password=ruben
-spring.datasource.driver-class-name=org.postgresql.Driver
-spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
-spring.jpa.hibernate.ddl-auto=create
-
-logging.level.org.hibernate.SQL=debug
-
-spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
\ No newline at end of file
diff --git a/config/servicio-productos.properties b/config/servicio-productos.properties
deleted file mode 100644
index d011abd..0000000
--- a/config/servicio-productos.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-spring.datasource.url=jdbc:postgresql://localhost:5432/db_springboot_cloud
-spring.datasource.username=postgres
-spring.datasource.password=sasa
-spring.datasource.driver-class-name=org.postgresql.Driver
-spring.jpa.database-platform=org.hibernate.dialect.PostgreSQL95Dialect
-spring.jpa.hibernate.ddl-auto=create
-
-logging.level.org.hibernate.SQL=debug
-
-spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
\ No newline at end of file
diff --git a/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java b/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java
index 1da9a78..e7650b0 100644
--- a/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java
+++ b/ectemplate-service-zuul-server/src/main/java/net/ectemplate/app/zuul/oauth/ResourceServerConfig.java
@@ -39,6 +39,7 @@ public void configure(HttpSecurity http) throws Exception {
.antMatchers("/api/security/oauth/**").permitAll()
.antMatchers(HttpMethod.GET,"/api/productos/producto/**").permitAll()
.antMatchers(HttpMethod.POST,"/api/personas/crea-cliente").permitAll()
+ .antMatchers(HttpMethod.GET,"/api/productos/tienda/nombre").permitAll()
.antMatchers("/api/productos/cesta/**").permitAll()
.antMatchers("/api/productos/producto/nuevo").hasRole("ADMIN")
.antMatchers("/api/productos/producto/imagen").hasRole("ADMIN")
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java
index 0111c11..435e012 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/CestaController.java
@@ -12,12 +12,15 @@
import net.ostemplate.app.productos.models.entity.Cesta;
import net.ostemplate.app.productos.models.service.CestaServiceImpl;
+import net.ostemplate.app.productos.models.service.ImagenProductoI;
@RestController
public class CestaController {
@Autowired
private CestaServiceImpl cestaServiceImpl;
+
+
@GetMapping("/cesta/recupera-cesta/{idUsuario}")
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java
index e269f2c..f248520 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/PedidoController.java
@@ -39,5 +39,17 @@ public Pedido actualizaPedido (@RequestBody Pedido pedido) {
public void actualizaPedido (@PathVariable Long id) {
pedidoServiceI.borraPedido(id);
}
+
+ @GetMapping("/pedidos/pedidos-estado/{estado}")
+ public List recuperaPedidoId(@PathVariable String estado) {
+ return pedidoServiceI.recuperaPedidosPorEstado(estado);
+
+ }
+
+ @GetMapping("/pedidos/lista")
+ public List recuperaPedidos() {
+ return pedidoServiceI.recuperaPedidos();
+
+ }
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java
index 47581ce..cc493ce 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/ProductoController.java
@@ -1,5 +1,6 @@
package net.ostemplate.app.productos.controllers;
+import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.nio.file.Files;
@@ -20,7 +21,6 @@
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -35,6 +35,7 @@
import net.ostemplate.app.productos.models.entity.ImagenProducto;
import net.ostemplate.app.productos.models.entity.Producto;
import net.ostemplate.app.productos.models.entity.ProductoCaracteristicas;
+import net.ostemplate.app.productos.models.service.ImagenProductoI;
import net.ostemplate.app.productos.models.service.ProductoServiceI;
@RestController
@@ -45,6 +46,9 @@ public class ProductoController {
@Autowired
private ProductoServiceI productoService;
+ @Autowired
+ private ImagenProductoI imagenProductoI;
+
@GetMapping("/lista")
public List listar(){
return productoService.findAll();
@@ -63,7 +67,7 @@ public Producto insertarProducto (@RequestBody Producto producto) {
}
@DeleteMapping("/producto/borrar/{id}")
- public void borrarProducto (@RequestBody Long id) {
+ public void borrarProducto (@PathVariable Long id) {
productoService.borrarProducto(id);
}
@@ -127,6 +131,13 @@ public ResponseEntity> subidaImagen (@RequestParam ("archivo") MultipartFile a
}
+
+ @DeleteMapping("producto/borrar-imagen/{imagen}")
+ public void eliminarImagen(@PathVariable("imagen")String imagen) {
+ imagenProductoI.borrarImagen(imagen);
+
+ }
+
@GetMapping("/producto/imagen/{nombreFoto:.+}")
public ResponseEntity verFoto (@PathVariable String nombreFoto){
Path rutaArchivo = Paths.get("uploads").resolve(nombreFoto).toAbsolutePath();
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java
new file mode 100644
index 0000000..c272ba5
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/controllers/TiendaController.java
@@ -0,0 +1,34 @@
+package net.ostemplate.app.productos.controllers;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import net.ostemplate.app.productos.models.entity.Tienda;
+import net.ostemplate.app.productos.models.service.TiendaServiceI;
+
+@RestController
+public class TiendaController {
+
+ @Autowired
+ private TiendaServiceI tiendaServiceI;
+
+ @GetMapping("/tienda/nombre")
+ public Tienda getNombreTienda() {
+ return tiendaServiceI.getNombreDeTienda();
+ }
+
+ @PostMapping("/tienda/cambia-nombre/{nombre}")
+ public String cambiaNombre(@PathVariable String nombre) {
+ return tiendaServiceI.actualizaTienda(nombre);
+ }
+
+ @PostMapping("/tienda/cambia-tienda")
+ public Tienda cambiaNombre(@RequestBody Tienda tienda) {
+ return tiendaServiceI.guardaTienda(tienda);
+ }
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java
new file mode 100644
index 0000000..cb654a3
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ImagenProductoDao.java
@@ -0,0 +1,11 @@
+package net.ostemplate.app.productos.models.dao;
+
+import org.springframework.data.repository.CrudRepository;
+
+import net.ostemplate.app.productos.models.entity.ImagenProducto;
+
+public interface ImagenProductoDao extends CrudRepository{
+
+ void deleteByImagen(String imagen);
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java
index 7229c0b..15e46b0 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/PedidoRepository.java
@@ -9,5 +9,7 @@
public interface PedidoRepository extends CrudRepository {
List findByIdUsuario (Long idUsuario);
+
+ List findByEstado(String estado);
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java
new file mode 100644
index 0000000..d0396cd
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/ProductoCantidadRepository.java
@@ -0,0 +1,15 @@
+package net.ostemplate.app.productos.models.dao;
+
+import java.util.List;
+
+import org.springframework.data.repository.CrudRepository;
+
+import net.ostemplate.app.productos.models.entity.ProductoCantidad;
+
+public interface ProductoCantidadRepository extends CrudRepository {
+
+ void deleteAllByIdProducto (Long idProducto);
+
+ List findAllByIdProducto(Long idProducto);
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java
new file mode 100644
index 0000000..597ae44
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/dao/TiendaRepository.java
@@ -0,0 +1,9 @@
+package net.ostemplate.app.productos.models.dao;
+
+import org.springframework.data.repository.CrudRepository;
+
+import net.ostemplate.app.productos.models.entity.Tienda;
+
+public interface TiendaRepository extends CrudRepository {
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java
index 64a77f2..db36579 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/entity/Tienda.java
@@ -21,6 +21,15 @@ public class Tienda implements Serializable{
@Column(name="id")
private Long id;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
public String getNombreTienda() {
return nombreTienda;
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java
index 92451f7..99ae4af 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceI.java
@@ -20,4 +20,7 @@ public interface CestaServiceI {
void eliminaCesta(Cesta cesta);
+
+ void eliminarUnProductoDeLasCestas(Long idProducto);
+
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java
index 181c50b..a145138 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/CestaServiceImpl.java
@@ -8,6 +8,7 @@
import org.springframework.stereotype.Service;
import net.ostemplate.app.productos.models.dao.ComprasRepository;
+import net.ostemplate.app.productos.models.dao.ProductoCantidadRepository;
import net.ostemplate.app.productos.models.entity.Cesta;
import net.ostemplate.app.productos.models.entity.ProductoCantidad;
@@ -16,6 +17,9 @@ public class CestaServiceImpl implements CestaServiceI {
@Autowired
private ComprasRepository comprasRepository;
+
+ @Autowired
+ private ProductoCantidadRepository productoCantidadRepository;
@Override
@Transactional
@@ -65,6 +69,12 @@ public Cesta eliminarDeLaCesta(Long idUsuario, Long idProducto) {
cesta.setProductoCesta(listaProductoCantidad);
return guardaCesta(cesta);
+ }
+ @Override
+ @Transactional
+ public void eliminarUnProductoDeLasCestas(Long idProducto) {
+ productoCantidadRepository.deleteAllByIdProducto(idProducto);
+
}
private ProductoCantidad incrementa(ProductoCantidad productoCantidad) {
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java
new file mode 100644
index 0000000..7901618
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoI.java
@@ -0,0 +1,8 @@
+package net.ostemplate.app.productos.models.service;
+
+public interface ImagenProductoI {
+
+
+ void borrarImagen(String imagen);
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java
new file mode 100644
index 0000000..65d816b
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ImagenProductoServiceImpl.java
@@ -0,0 +1,33 @@
+package net.ostemplate.app.productos.models.service;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import javax.transaction.Transactional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import net.ostemplate.app.productos.models.dao.ImagenProductoDao;
+import net.ostemplate.app.productos.models.entity.ImagenProducto;
+
+@Service
+public class ImagenProductoServiceImpl implements ImagenProductoI {
+
+ @Autowired
+ private ImagenProductoDao imagenProductoDao;
+
+ @Override
+ @Transactional
+ public void borrarImagen (String imagen) {
+ Path rutaFotoAnterior = Paths.get("uploads").resolve(imagen).toAbsolutePath();
+ File archivoFotoAnterior = rutaFotoAnterior.toFile();
+ if(archivoFotoAnterior.exists() && archivoFotoAnterior.canRead()) {
+ archivoFotoAnterior.delete();
+ }
+ imagenProductoDao.deleteByImagen(imagen);
+
+ }
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java
index 5710720..e0e3cfc 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceI.java
@@ -13,6 +13,10 @@ public interface PedidoServiceI {
Pedido findById(Long id);
void borraPedido(Long id);
+
+ List recuperaPedidosPorEstado(String estado);
+
+ List recuperaPedidos();
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java
index 5d3d5c6..7076f08 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/PedidoServiceImpl.java
@@ -40,5 +40,17 @@ public void borraPedido (Long id){
pedidoRepository.deleteById(id);
}
+ @Override
+ @Transactional(readOnly = true)
+ public List recuperaPedidosPorEstado(String estado){
+ return pedidoRepository.findByEstado(estado);
+
+ }
+ @Override
+ @Transactional(readOnly = true)
+ public List recuperaPedidos(){
+ return (List) pedidoRepository.findAll();
+
+ }
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java
index 9fc995f..100897a 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceI.java
@@ -51,6 +51,8 @@ public interface ProductoServiceI {
* @return producto
*/
public Producto modificarProducto(Producto producto);
+
+ void borrarUnProducto(Producto producto);
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java
index ba2a4dc..ce64138 100644
--- a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/ProductoServiceImpl.java
@@ -6,6 +6,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import net.ostemplate.app.productos.models.dao.ProductoCantidadRepository;
import net.ostemplate.app.productos.models.dao.ProductoRepository;
import net.ostemplate.app.productos.models.entity.Producto;
@@ -15,6 +16,12 @@ public class ProductoServiceImpl implements ProductoServiceI {
@Autowired
private ProductoRepository productoRepository;
+ @Autowired
+ private ProductoCantidadRepository productoCantidadRepository;
+
+ @Autowired
+ private CestaServiceI cestaServiceI;
+
@Override
@Transactional(readOnly = true)
public List findAll() {
@@ -30,13 +37,15 @@ public Producto findById(Long id) {
@Override
@Transactional
public Producto insertProducto(Producto producto) {
- System.out.println("descripcion---" +producto.getProductoCaracteristicas().getDescripcion());
+ System.out.println("descripcion---" + producto.getProductoCaracteristicas().getDescripcion());
return productoRepository.save(producto);
}
@Override
@Transactional
public void borrarProducto(Long id) {
+ if (!productoCantidadRepository.findAllByIdProducto(id).equals(null))
+ cestaServiceI.eliminarUnProductoDeLasCestas(id);
productoRepository.deleteById(id);
}
@@ -59,7 +68,14 @@ public Producto modificarProducto(Producto producto) {
return productoRepository.save(producto);
return producto;
}
-
-
+
+ @Override
+ @Transactional
+ public void borrarUnProducto(Producto producto) {
+ if (!productoCantidadRepository.findAllByIdProducto(producto.getId()).equals(null))
+ cestaServiceI.eliminarUnProductoDeLasCestas(producto.getId());
+ productoRepository.delete(producto);
+
+ }
}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java
new file mode 100644
index 0000000..3f6d795
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceI.java
@@ -0,0 +1,14 @@
+package net.ostemplate.app.productos.models.service;
+
+import net.ostemplate.app.productos.models.entity.Tienda;
+
+public interface TiendaServiceI {
+
+
+ String actualizaTienda(String nombreTienda);
+
+ Tienda getNombreDeTienda();
+
+ Tienda guardaTienda(Tienda tienda);
+
+}
diff --git a/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java
new file mode 100644
index 0000000..3ef9557
--- /dev/null
+++ b/ectemplate-servicio-productos/src/main/java/net/ostemplate/app/productos/models/service/TiendaServiceImpl.java
@@ -0,0 +1,40 @@
+package net.ostemplate.app.productos.models.service;
+
+import javax.transaction.Transactional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import net.ostemplate.app.productos.models.dao.TiendaRepository;
+import net.ostemplate.app.productos.models.entity.Tienda;
+
+@Service
+public class TiendaServiceImpl implements TiendaServiceI {
+
+ @Autowired
+ private TiendaRepository tiendaRepository;
+
+ @Override
+ @Transactional
+ public String actualizaTienda(String nombreTienda) {
+ Tienda tienda = new Tienda();
+ tienda.setId(1L);
+ tienda.setNombreTienda(nombreTienda);
+ tienda = tiendaRepository.save(tienda);
+ return tienda.getNombreTienda();
+
+ }
+ @Override
+ @Transactional
+ public Tienda guardaTienda(Tienda tienda) {
+ return tiendaRepository.save(tienda);
+
+ }
+
+ @Override
+ @Transactional
+ public Tienda getNombreDeTienda() {
+ return tiendaRepository.findById(1L).orElse(null);
+ }
+
+}