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