From b166ae5a40350b221bb8a30d7518701167b69cf2 Mon Sep 17 00:00:00 2001 From: JotaJota96 <jjap96@gmail.com> Date: Sat, 5 Oct 2019 22:46:52 -0300 Subject: [PATCH] correccion y agregado de funciones en CUsuario --- .../nbproject/project.properties | 3 ++ .../JPAControllerClasses/BusquedaEnBDD.java | 16 ++++---- .../src/Logica/Controladores/CUsuario.java | 41 ++++++++++++++----- .../src/Logica/DatosDePrueba.java | 10 ++++- .../src/Logica/Interfaces/IUsuario.java | 9 ++++ 5 files changed, 58 insertions(+), 21 deletions(-) diff --git a/UyTube_aplicacion/nbproject/project.properties b/UyTube_aplicacion/nbproject/project.properties index 065f169..1f399e5 100644 --- a/UyTube_aplicacion/nbproject/project.properties +++ b/UyTube_aplicacion/nbproject/project.properties @@ -4,6 +4,8 @@ annotation.processing.processor.options=-Aeclipselink.canonicalmodel.use_static_ annotation.processing.processors.list= annotation.processing.run.all.processors=true annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=UyTube +application.vendor=Juan build.classes.dir=${build.dir}/classes build.classes.excludes=**/*.java,**/*.form # This directory is removed when the project is cleaned: @@ -26,6 +28,7 @@ dist.archive.excludes= dist.dir=dist dist.jar=${dist.dir}/UyTube.jar dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= excludes= file.reference.jcalendar-1.4.jar=C:\\Users\\Juan\\Desktop\\jcalendar-1.4.jar <<<<<<< HEAD diff --git a/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java b/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java index e386fc7..1e49577 100644 --- a/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java +++ b/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java @@ -55,9 +55,9 @@ public class BusquedaEnBDD implements Serializable { // Busca los Canales if (filtro == Filtrado.TODO || filtro == Filtrado.CANALES){ if (busqueda == null || busqueda.equals("")){ - q = em.createQuery("SELECT e FROM Canal e"); + q = em.createQuery("SELECT e FROM Canal e WHERE NOT e.eliminado"); }else{ - q = em.createQuery("SELECT e FROM Canal e WHERE (UPPER(e.nombre)) LIKE (UPPER(?1)) OR (UPPER(e.descripcion)) LIKE (UPPER(?1))"); + q = em.createQuery("SELECT e FROM Canal e WHERE (UPPER(e.nombre)) LIKE (UPPER(?1)) OR (UPPER(e.descripcion)) LIKE (UPPER(?1)) AND NOT e.eliminado"); q.setParameter(1, busqueda); } ret.addAll(q.getResultList()); @@ -65,10 +65,10 @@ public class BusquedaEnBDD implements Serializable { // Busca los Listas de reproduccion if (filtro == Filtrado.TODO || filtro == Filtrado.LISTAS_DE_REPRODUCCION){ if (busqueda == null || busqueda.equals("")){ - q = em.createQuery("SELECT e FROM ListaDeReproduccion e WHERE e.tipo = ?1"); + q = em.createQuery("SELECT e FROM ListaDeReproduccion e WHERE e.tipo = ? AND NOT e.eliminado"); q.setParameter(1, TipoListaDeReproduccion.PARTICULAR); }else{ - q = em.createQuery("SELECT e FROM ListaDeReproduccion e WHERE e.tipo = ?1 AND (UPPER(e.nombre)) LIKE (UPPER(?2)) "); + q = em.createQuery("SELECT e FROM ListaDeReproduccion e WHERE e.tipo = ?1 AND (UPPER(e.nombre)) LIKE (UPPER(?2)) AND NOT e.eliminado"); q.setParameter(1, TipoListaDeReproduccion.PARTICULAR); q.setParameter(2, busqueda); } @@ -77,9 +77,9 @@ public class BusquedaEnBDD implements Serializable { // Busca los Videos if (filtro == Filtrado.TODO || filtro == Filtrado.VIDEOS){ if (busqueda == null || busqueda.equals("")){ - q = em.createQuery("SELECT e FROM Video e"); + q = em.createQuery("SELECT e FROM Video e WHERE NOT e.eliminado"); }else{ - q = em.createQuery("SELECT e FROM Video e WHERE (UPPER(e.nombre)) LIKE (UPPER(?1)) OR (UPPER(e.descripcion)) LIKE (UPPER(?1))"); + q = em.createQuery("SELECT e FROM Video e WHERE (UPPER(e.nombre)) LIKE (UPPER(?1)) OR (UPPER(e.descripcion)) LIKE (UPPER(?1)) AND NOT e.eliminado"); q.setParameter(1, busqueda); } ret.addAll(q.getResultList()); @@ -125,11 +125,11 @@ public class BusquedaEnBDD implements Serializable { try { Query q; // Obtiene los videos en esa categoria - q = em.createQuery("SELECT v FROM Video v WHERE v.categoria = ?1"); + q = em.createQuery("SELECT e FROM Video e WHERE e.categoria = ?1 AND NOT e.eliminado"); q.setParameter(1, cat); ret.addAll(q.getResultList()); // obtiene las listas de reproduccion en esa categoria - q = em.createQuery("SELECT l FROM ListaDeReproduccion l WHERE l.categoria = ?1"); + q = em.createQuery("SELECT e FROM ListaDeReproduccion e WHERE e.categoria = ?1 AND NOT e.eliminado"); q.setParameter(1, cat); ret.addAll(q.getResultList()); diff --git a/UyTube_aplicacion/src/Logica/Controladores/CUsuario.java b/UyTube_aplicacion/src/Logica/Controladores/CUsuario.java index 6b46b7d..d1afc0a 100644 --- a/UyTube_aplicacion/src/Logica/Controladores/CUsuario.java +++ b/UyTube_aplicacion/src/Logica/Controladores/CUsuario.java @@ -256,12 +256,17 @@ public class CUsuario implements IUsuario { } else if (ret.get(i) instanceof DtListaDeReproduccion) { DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i); if (list.getPrivacidad() == Privacidad.PRIVADO) { - try { - // Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista - this.usuarioActual.obtenerListaDeReproduccion(list.getId()); - } catch (Exception e) { + if (list.getTipo() == TipoListaDeReproduccion.POR_DEFECTO) { ret.remove(i); i--; + } else { + try { + // Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista + this.usuarioActual.obtenerListaDeReproduccion(list.getId()); + } catch (Exception e) { + ret.remove(i); + i--; + } } } } else if (ret.get(i) instanceof DtCanal) { @@ -305,12 +310,17 @@ public class CUsuario implements IUsuario { } else if (ret.get(i) instanceof DtListaDeReproduccion) { DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i); if (list.getPrivacidad() == Privacidad.PRIVADO) { - try { - // Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista - this.usuarioActual.obtenerListaDeReproduccion(list.getId()); - } catch (Exception e) { + if (list.getTipo() == TipoListaDeReproduccion.POR_DEFECTO) { ret.remove(i); i--; + } else { + try { + // Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista + this.usuarioActual.obtenerListaDeReproduccion(list.getId()); + } catch (Exception e) { + ret.remove(i); + i--; + } } } } @@ -326,6 +336,15 @@ public class CUsuario implements IUsuario { usuarioActual = null; } + + @Override + public boolean elUsuarioSeleccionadoEsElUsuarioActual(){ + if (usuarioActual == null || usuarioSeleccionado == null){ + return false; + } + return usuarioActual.getNickname().equals(usuarioSeleccionado.getNickname()); + } + @Override public boolean existeEmail(String email) { if (email.equals("")){ @@ -443,7 +462,7 @@ public class CUsuario implements IUsuario { ArrayList<DtListaDeReproduccion> ret = usuarioSeleccionado.listarListasDeReproduccionDeCanal(false); - if (this.usuarioActual == this.usuarioSeleccionado) { + if (elUsuarioSeleccionadoEsElUsuarioActual()) { // Se incluyen las privadas pero se quitan las POR_DEFECTO segun el parametro recibido if (incluirListasPorDefecto) { // se retorna todo @@ -502,7 +521,7 @@ public class CUsuario implements IUsuario { throw new RuntimeException("El sistema no tiene un usuario seleccionado"); } ArrayList<DtVideo> ret = this.usuarioSeleccionado.listarVideosDeListaDeReproduccion(idListaSeleccionada); - if (this.usuarioActual == this.usuarioSeleccionado) { + if (elUsuarioSeleccionadoEsElUsuarioActual()) { // incluye los videos privados si y solo si son del usuario actual // dicho de otra manera: quita los videos privados que no son del usuarioActual for (int i = 0; i < ret.size(); i++) { @@ -534,7 +553,7 @@ public class CUsuario implements IUsuario { throw new RuntimeException("El sistema no tiene un usuario seleccionado"); } - if(this.usuarioActual == this.usuarioSeleccionado){ + if(elUsuarioSeleccionadoEsElUsuarioActual()){ // se incluyen todos los videos return usuarioSeleccionado.listarVideosDeCanal(); }else{ diff --git a/UyTube_aplicacion/src/Logica/DatosDePrueba.java b/UyTube_aplicacion/src/Logica/DatosDePrueba.java index dd9c96b..a5b6727 100644 --- a/UyTube_aplicacion/src/Logica/DatosDePrueba.java +++ b/UyTube_aplicacion/src/Logica/DatosDePrueba.java @@ -30,8 +30,6 @@ public class DatosDePrueba { usuSys = f.getIUsuario(); //CUsuario su = CUsuario.getInstancia(); try { - EntityManagerFactory factory = Persistence.createEntityManagerFactory("UyTubePU"); - EntityManager manager = factory.createEntityManager(); } catch (Exception e) { System.out.println("//////////////////////////"); @@ -39,10 +37,18 @@ public class DatosDePrueba { System.out.println("//////////////////////////"); } } + /* private static void mostrarLista(ArrayList<Object> lst){ // Prueba de búsqueda por categorÃa for (Object o : lst){ System.out.println("> " + o.toString()); } } + */ + private static void mostrarLista(Object lst){ + // Prueba de búsqueda por categorÃa + for (Object o : (ArrayList<Object>)lst){ + System.out.println("> " + o.toString()); + } + } } diff --git a/UyTube_aplicacion/src/Logica/Interfaces/IUsuario.java b/UyTube_aplicacion/src/Logica/Interfaces/IUsuario.java index b6a9a98..e94a489 100644 --- a/UyTube_aplicacion/src/Logica/Interfaces/IUsuario.java +++ b/UyTube_aplicacion/src/Logica/Interfaces/IUsuario.java @@ -94,6 +94,15 @@ public interface IUsuario { */ public void cerrarSesion(); + /** + * Como el nombre de la funcion lo indica, es para saber si el usuario que + * se ha seleccionado, es el usuario que tiene la inicion sesiada + * + * @return true si el usuario seleccionado es el usuario que inicio la + * sesion + */ + public boolean elUsuarioSeleccionadoEsElUsuarioActual(); + /** * Verifica si existe un usuario con el email indicado * -- GitLab