From 7bf44bf54124ddd6895473c285d6547abc1cd271 Mon Sep 17 00:00:00 2001 From: Falucho <german.faller@pcunix71.fing.edu.uy> Date: Mon, 24 Jun 2019 12:23:09 -0300 Subject: [PATCH] Mas Modelo --- .../central/db/dao/score/ScoreDAOBean.java | 52 +++++++++++++++++++ .../central/db/dao/score/ScoreDaoLocal.java | 11 ++++ .../tse/central/db/dao/user/UserDAOBean.java | 8 ++- .../tse/central/db/dao/user/UserDaoLocal.java | 9 +--- .../tse/central/db/entity/Calificacion.java | 4 ++ .../fing/tse/central/db/entity/UsuarioBO.java | 3 +- .../fing/tse/central/business/Business.java | 4 ++ .../tse/central/business/BusinessBean.java | 12 +++++ .../business/security/SecurityBean.java | 2 +- .../tse/central/business/startup/Config.java | 50 +++++++++++++++++- 10 files changed, 144 insertions(+), 11 deletions(-) create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java create mode 100644 central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java new file mode 100644 index 0000000..3f7a648 --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java @@ -0,0 +1,52 @@ +package uy.edu.fing.tse.central.db.dao.score; + +import uy.edu.fing.tse.central.db.entity.Calificacion; +import uy.edu.fing.tse.central.db.mapper.MyMapper; +import uy.edu.fing.tse.dto.Score; + +import javax.annotation.PostConstruct; +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import java.util.List; +import java.util.stream.Collectors; + +@Stateless +public class ScoreDAOBean implements ScoreDaoLocal { + + @PersistenceContext(unitName = "central") + private EntityManager em; + + @PostConstruct + void init() { + //Despues del constructor hace esto + } + + @Override + public void create(Score elem) { + final var r = MyMapper.INSTANCE.convert(elem); + em.persist(r); + em.flush(); + } + + @Override + public Score find(String key) { + final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class); + query.setParameter("val", key); + final var r = query.getSingleResult(); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public Score find(Long id) { + final var r = em.find(Calificacion.class, id); + return MyMapper.INSTANCE.convert(r); + } + + @Override + public List<Score> findAll() { + final var query = em.createNamedQuery("Calificacion.findAll", Calificacion.class); + final List<Calificacion> r = query.getResultList(); + return r.stream().map(MyMapper.INSTANCE::convert).collect(Collectors.toList()); + } +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java new file mode 100644 index 0000000..d904c08 --- /dev/null +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDaoLocal.java @@ -0,0 +1,11 @@ +package uy.edu.fing.tse.central.db.dao.score; + +import uy.edu.fing.tse.central.db.dao.GenericDao; +import uy.edu.fing.tse.dto.Score; + +import javax.ejb.Local; + +@Local +public interface ScoreDaoLocal extends GenericDao<Score> { + +} diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java index 711f76a..43569f1 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java @@ -27,7 +27,7 @@ public class UserDAOBean implements UserDaoLocal { @Override - public void register(User user) { + public void create(User user) { if (user instanceof UserBO) _register((UserBO) user); else _register((UserFO) user); } @@ -58,6 +58,12 @@ public class UserDAOBean implements UserDaoLocal { return MyMapper.INSTANCE.convert(usuario); } + @Override + public User find(Long id) { + final var e = em.find(Usuario.class, id); + return MyMapper.INSTANCE.convert(e); + } + @Override public List<User> findAll() { final var query = em.createNamedQuery("Usuario.findAll", Usuario.class); diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java index 0849cb6..2fc4226 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDaoLocal.java @@ -1,16 +1,11 @@ package uy.edu.fing.tse.central.db.dao.user; +import uy.edu.fing.tse.central.db.dao.GenericDao; import uy.edu.fing.tse.dto.User; import javax.ejb.Local; -import java.util.List; @Local -public interface UserDaoLocal { +public interface UserDaoLocal extends GenericDao<User> { - void register(User user); - - User find(String mail); - - List<User> findAll(); } diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java index 7a91670..423e8a0 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/Calificacion.java @@ -6,6 +6,10 @@ import javax.persistence.*; * Esta es la que puede ser vergonzosa, verdad a media, verdad, falsa */ @Entity +@NamedQueries({ + @NamedQuery(name = "Calificacion.findAll", query = "select e from Calificacion e"), + @NamedQuery(name = "Calificacion.findByValue", query = "select e from Calificacion e where e.value = :val") +}) public final class Calificacion { @Id diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java index b0126c1..035fe97 100644 --- a/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java +++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/entity/UsuarioBO.java @@ -2,6 +2,7 @@ package uy.edu.fing.tse.central.db.entity; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.ManyToOne; @Entity @@ -13,7 +14,7 @@ public class UsuarioBO extends Usuario { @Column(nullable = false) private String password; - @ManyToOne + @ManyToOne(fetch = FetchType.EAGER) private Rol role; public String getSalt() { diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java index 1092ee4..be44412 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/Business.java @@ -19,5 +19,9 @@ public interface Business extends Serializable { void altaRol(Role role); void altaEstado(State state); + + List<Role> listarRoles(); + + void altaCalificacion(Score e); } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java index 88af433..cd54e94 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/BusinessBean.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import uy.edu.fing.tse.central.db.dao.fact.FactDaoLocal; import uy.edu.fing.tse.central.db.dao.role.RoleDaoLocal; +import uy.edu.fing.tse.central.db.dao.score.ScoreDaoLocal; import uy.edu.fing.tse.central.db.dao.state.StateDaoLocal; import uy.edu.fing.tse.central.db.dao.user.UserDaoLocal; import uy.edu.fing.tse.dto.*; @@ -28,6 +29,8 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { private StateDaoLocal estados; @EJB private RoleDaoLocal roles; + @EJB + private ScoreDaoLocal calificacion; @PostConstruct void init() { @@ -65,5 +68,14 @@ public class BusinessBean implements BusinessLocal, BusinessRemote { roles.create(role); } + @Override + public List<Role> listarRoles() { + return roles.findAll(); + } + + @Override + public void altaCalificacion(Score e) { + calificacion.create(e); + } } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java index 5d835dc..febfcb0 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/security/SecurityBean.java @@ -32,7 +32,7 @@ public class SecurityBean implements SecurityLocal, SecurityRemote { p.setSalt(salt); final var newPassword = Secure.encriptPBKDF(p.getPassword(), salt); p.setPassword(newPassword); - dao.register(p); + dao.create(p); return dao.find(p.getMail()); } diff --git a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java index 9378471..9867e16 100644 --- a/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java +++ b/central-ejb/src/main/java/uy/edu/fing/tse/central/business/startup/Config.java @@ -23,7 +23,9 @@ public class Config { @PostConstruct public void start() { initRole(); - //initUsers(); + initUsers(); + initEstados(); + initScore(); //initFacts(); } @@ -73,6 +75,52 @@ public class Config { users.register(u); } + private void initEstados() { + //Nuevo, aComprobar, enProceso, Verificado, Publicado, Cancelado + State e = new State(); + e.setValue("Nuevo"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("A Comprobar"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("En Proceso"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Verificado"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Publicado"); + negocio.altaEstado(e); + + e = new State(); + e.setValue("Cancelado"); + negocio.altaEstado(e); + } + + private void initScore() { + //vergonzosa, verdad a media, verdad, falsa + Score e = new Score(); + e.setValue("vergonzosa"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Verdad a medias"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Verdad"); + negocio.altaCalificacion(e); + + e = new Score(); + e.setValue("Falsa"); + negocio.altaCalificacion(e); + } + private void initFacts() { String[] titulos = new String[10]; String[] descripciones = new String[10]; -- GitLab