Subversion Repositories Integrator Subversion

Rev

Rev 106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.domain.service.usuario.impl;
2
 
3
import org.springframework.beans.factory.annotation.Autowired;
4
import org.springframework.stereotype.Service;
5
 
195 espaco 6
import br.com.ec.core.exception.NegocioException;
7
import br.com.ec.core.generic.AbstractService;
8
import br.com.ec.core.generic.GenericRepository;
9
import br.com.ec.core.util.VerificadorUtil;
10
import br.com.ec.core.validador.Validador;
106 espaco 11
import br.com.ec.domain.model.Pessoa;
12
import br.com.ec.domain.model.Usuario;
13
import br.com.ec.domain.service.parametro.ParametroService;
14
import br.com.ec.domain.service.usuario.UsuarioService;
15
import br.com.ec.domain.shared.CriptografiaMD5;
16
import br.com.ec.infrastructure.repository.UsuarioRepository;
17
 
18
@Service
19
public class UsuarioServiceImpl extends AbstractService<Usuario> implements UsuarioService {
20
 
21
        private static final String USUARIO_INFORMADO_NAO_EXISTE = "Usuário informado não existe";
22
        private final UsuarioRepository usuarioRepository;
23
        private ParametroService parametroService;
24
 
25
        @Autowired
26
        public UsuarioServiceImpl(ParametroService parametroService, UsuarioRepository usuarioRepository, Validador validador) {
27
                super(validador);
28
                this.parametroService = parametroService;
29
                this.usuarioRepository = usuarioRepository;
30
        }
31
 
32
        @Override
33
        protected GenericRepository<Usuario> getRepository() {
34
                return this.usuarioRepository;
35
        }
36
 
37
        @Override
38
        protected void regrasNegocioCadastrar(Usuario usuario) {
39
                usuario.setSenha(CriptografiaMD5.criptografaSenha(usuario.getSenha()));
40
                usuario.setAtivo(true);
41
        }
42
 
43
        @Override
44
        public Usuario efetuarLogin(Usuario usuario) {
45
                if (VerificadorUtil.naoEstaNuloOuVazio(usuario.getSenha())) {
46
                        if (usuario.getSenha().length() < 6) {
47
                                throw new RuntimeException("Senha inválida");
48
                        }
49
                } else {
50
                        throw new RuntimeException("Senha inválida");
51
                }
52
                try {
53
                        criptografarSenhaUsuarioEmMD5(usuario);
54
                        Usuario usuarioConsultado = usuarioRepository.consultarPorLogin(usuario);
55
                        if (VerificadorUtil.naoEstaNulo(usuarioConsultado)) {
56
                                usuarioRepository.atualizarDataUltimoAcesso(usuarioConsultado);
57
                        }
58
                        usuarioConsultado.setParametros(parametroService.listarParametrosAtivos());
59
                        return usuarioConsultado;
60
                } catch (Exception e) {
61
                        throw new RuntimeException(USUARIO_INFORMADO_NAO_EXISTE);
62
                }
63
        }
64
 
65
        private void criptografarSenhaUsuarioEmMD5(Usuario usuario) {
66
                usuario.setSenha(CriptografiaMD5.criptografaSenha(usuario.getSenha()));
67
        }
68
 
69
        @Override
70
        public Usuario consultarUsuarioPorSenha(String senha) {
71
                try {
72
                        senha = CriptografiaMD5.criptografaSenha(senha);
73
                        return usuarioRepository.consultarUsuarioPorSenha(senha);
74
                } catch (Exception e) {
75
                        throw new RuntimeException(USUARIO_INFORMADO_NAO_EXISTE);
76
                }
77
        }
78
 
79
        @Override
80
        public Usuario consultarUsuarioPorPessoa(Pessoa pessoa) {
81
                return usuarioRepository.consultarUsuarioPorPessoa(pessoa);
82
        }
83
 
84
        @Override
85
        public Usuario detalhar(Usuario usuario) {
86
                return usuarioRepository.detalhar(usuario);
87
        }
88
 
89
        @Override
90
        public void alterarSenhaUsuario(Usuario usuario) {
91
                if (VerificadorUtil.estaNuloOuVazio(usuario.getSenha())) {
92
                        throw new NegocioException("Senha inválida");
93
                }
94
                if (usuario.getSenha().length() < 6) {
95
                        throw new NegocioException("A senha deve ter 6 dígitos, no mínimo");
96
                }
97
                usuario.setSenha(CriptografiaMD5.criptografaSenha(usuario.getSenha()));
98
                if (senhaJaExiste(usuario.getSenha())) {
99
                        throw new NegocioException("Senha inválida, tente outra");
100
                }
101
                usuarioRepository.alterarSenha(usuario);
102
        }
103
 
104
        @Override
105
        public Boolean senhaJaExiste(String senha) {
106
                return usuarioRepository.obterQuantidadeUsuarioComSenha(senha) > 0 ? true : false;
107
        }
108
 
109
}