Subversion Repositories Integrator Subversion

Rev

Rev 224 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
218 espaco 1
package br.com.ec.repository.jpa;
2
 
3
import javax.persistence.TypedQuery;
4
 
5
import org.springframework.stereotype.Repository;
6
 
7
import br.com.ec.domain.dto.UsuarioDTO;
8
import br.com.ec.domain.modal.Usuario;
9
import br.com.ec.repository.SistemaAbstractRepository;
10
import br.com.ec.repository.UsuarioRepository;
11
 
12
@Repository
13
public class UsuarioRepositoryJpaImpl extends SistemaAbstractRepository<Usuario> implements UsuarioRepository {
14
 
15
        private static final String USUARIO_INFORMADO_NAO_EXISTE_PARA_ESTA_PESSOA = "Usuįrio informado nćo existe para esta pessoa";
16
 
17
        @Override
18
        public UsuarioDTO consultarPorLogin(String login, String senha) {
19
                StringBuilder jpql = new StringBuilder();
20
                jpql.append("SELECT new br.com.ec.domain.dto.UsuarioDTO(u.login, u.nome) FROM Usuario u ");
21
//              jpql.append("LEFT JOIN FETCH u.perfis p ");
22
//              jpql.append("LEFT JOIN FETCH u.lojas l ");
23
                jpql.append("WHERE u.login = :login AND u.senha = :senha AND u.ativo is true");
24
                return getEntityManager().createQuery(jpql.toString(), UsuarioDTO.class)
25
                                        .setParameter("login", login)
26
                                        .setParameter("senha", senha)
27
                                        .getSingleResult();
28
        }
29
 
30
        @Override
31
        public Integer obterQuantidadeUsuarioDiferenteComSenhaInformada(String login, String senha) {
32
                StringBuilder jpql = new StringBuilder();
33
                jpql.append("SELECT COUNT(u) FROM Usuario u ");
34
                jpql.append("WHERE u.login != :login AND u.senha = :senha");
35
                try {
36
                        TypedQuery<Long> query = getEntityManager()
37
                                        .createQuery(jpql.toString(), Long.class)
38
                                        .setParameter("login", login)
39
                                        .setParameter("senha", senha);
40
                        return query.getSingleResult().intValue();
41
                } catch(Exception ex) {
42
                        ex.printStackTrace();
43
                }
44
                return 0;
45
        }
46
 
47
        @Override
48
        public void alterarSenha(String login, String senha) {
49
                StringBuilder sql = new StringBuilder();
50
                sql.append("UPDATE Usuario u SET u.senha = :senha ");
51
                sql.append("WHERE u.login = :login");
52
                try {
53
                        getEntityManager().createQuery(sql.toString())
54
                                .setParameter("login", login)
55
                                .setParameter("senha", senha)
56
                                .executeUpdate();
57
                        getEntityManager().flush();
58
                } catch(Exception ex) {
59
                        ex.printStackTrace();
60
                }
61
        }
62
 
63
        /*
64
        @Override
65
        protected String getColunaOrdenadora() {
66
                return "nome";
67
        }
68
 
69
        @Override
70
        public Usuario consultarPorLogin(Usuario usuario) {
71
                StringBuilder jpql = new StringBuilder();
72
                jpql.append("SELECT u FROM Usuario u ");
73
                jpql.append("LEFT JOIN FETCH u.perfis p ");
74
                jpql.append("LEFT JOIN FETCH u.lojas l ");
75
                jpql.append("WHERE u.login = :login AND u.senha = :senha AND u.ativo is true");
76
                return getEntityManager().createQuery(jpql.toString(), Usuario.class)
77
                                        .setParameter("login", usuario.getLogin())
78
                                        .setParameter("senha", usuario.getSenha())
79
                                        .getSingleResult();
80
        }
81
 
82
        @Override
83
        public Usuario consultarUsuarioPorSenha(String senha) {
84
                StringBuilder jpql = new StringBuilder();
85
                jpql.append("SELECT u FROM Usuario u ");
86
                jpql.append("LEFT JOIN FETCH u.perfis p ");
87
                jpql.append("LEFT JOIN FETCH u.lojas l ");
88
                jpql.append("WHERE u.senha = :senha");
89
                return getEntityManager().createQuery(jpql.toString(), Usuario.class)
90
                                        .setParameter("senha", senha)
91
                                        .getSingleResult();
92
        }
93
 
94
        @Override
95
        public Usuario consultarUsuarioPorPessoa(Pessoa pessoa) {
96
                StringBuilder jpql = new StringBuilder();
97
                jpql.append("SELECT u FROM Usuario u ");
98
                jpql.append("LEFT JOIN FETCH u.perfis p ");
99
                jpql.append("LEFT JOIN FETCH u.lojas l ");
100
                jpql.append("WHERE u.pessoa = :pessoa");
101
                try {
102
                        return getEntityManager().createQuery(jpql.toString(), Usuario.class)
103
                                                .setParameter("pessoa", pessoa)
104
                                                .getSingleResult();
105
                } catch (NoResultException nre) {
106
                        throw new RuntimeException(USUARIO_INFORMADO_NAO_EXISTE_PARA_ESTA_PESSOA);
107
                }
108
        }
109
 
110
        @Override
111
        public Usuario detalhar(Usuario usuario) {
112
                StringBuilder jpql = new StringBuilder();
113
                jpql.append("SELECT u FROM Usuario u ");
114
                jpql.append("LEFT JOIN FETCH u.perfis p ");
115
                jpql.append("LEFT JOIN FETCH u.lojas l ");
116
                jpql.append("WHERE u.sequencial = :sequencial");
117
                return getEntityManager().createQuery(jpql.toString(), Usuario.class).setParameter("sequencial", usuario.getSequencial()).getSingleResult();
118
        }
119
 
120
 
121
 
122
        @Override
123
        public void atualizarDataUltimoAcesso(Usuario usuario) {
124
                StringBuilder sql = new StringBuilder();
125
                sql.append("UPDATE Usuario u SET u.ultimoAcesso = now() ");
126
                sql.append("WHERE u.sequencial = :sequencial");
127
                try {
128
                        getEntityManager().createQuery(sql.toString())
129
                                .setParameter("sequencial", usuario.getSequencial())
130
                                .executeUpdate();
131
                        getEntityManager().flush();
132
                } catch(Exception ex) {
133
                        ex.printStackTrace();
134
                }
135
        }
136
 
137
 
138
        */
139
}