julio 2017-03-13 20:45:01 +00:00
parent 1f8674f41d
commit d6da1c1879
1 changed files with 38 additions and 26 deletions

View File

@ -65,37 +65,44 @@ public class AuditInterceptor extends EmptyInterceptor {
private boolean getAuditModuleService() {
if (!AuditManager.getINSTANCE().getCheckModuleAudit()) {
return AuditManager.getINSTANCE().getCurrentService() != null ? true : false;
}
Session session = null;
try {
if (!AuditManager.getINSTANCE().getCheckModuleAudit()) {
return AuditManager.getINSTANCE().getCurrentService() != null ? true : false;
}
AuditService auditService = null;
AuditService auditService = null;
SessionFactory sessionFactory = DBUtil.getInstance().getSessionFactory();
Session session = sessionFactory.openSession();
SessionFactory sessionFactory = DBUtil.getInstance().getSessionFactory();
session = sessionFactory.openSession();
Criteria criteriaFuncionSistema = session.createCriteria(FuncionSistema.class);
criteriaFuncionSistema.add(Restrictions.eq("descruta", AuditManager.getINSTANCE().getCurrentActionService()));
FuncionSistema funcionSistema = (FuncionSistema) criteriaFuncionSistema.uniqueResult();
Criteria criteriaFuncionSistema = session.createCriteria(FuncionSistema.class);
criteriaFuncionSistema.add(Restrictions.eq("descruta", AuditManager.getINSTANCE().getCurrentActionService()));
FuncionSistema funcionSistema = (FuncionSistema) criteriaFuncionSistema.uniqueResult();
if (funcionSistema == null) {
Log.info("Função sistema " + funcionSistema + " não encontrada na base de dados.");
AuditManager.getINSTANCE().setCurrentService(auditService);
return false;
}
Criteria criteriaService = session.createCriteria(AuditService.class);
criteriaService.add(Restrictions.eq("funcionSistema", funcionSistema));
auditService = (AuditService) criteriaService.uniqueResult();
if (auditService == null) {
return false;
}
if (funcionSistema == null) {
Log.info("Função sistema " + funcionSistema + " não encontrada na base de dados.");
AuditManager.getINSTANCE().setCurrentService(auditService);
return false;
AuditManager.getINSTANCE().setCheckModuleAudit(Boolean.FALSE);
return true;
} finally {
if (session != null)
session.close();
}
Criteria criteriaService = session.createCriteria(AuditService.class);
criteriaService.add(Restrictions.eq("funcionSistema", funcionSistema));
auditService = (AuditService) criteriaService.uniqueResult();
if (auditService == null) {
return false;
}
AuditManager.getINSTANCE().setCurrentService(auditService);
AuditManager.getINSTANCE().setCheckModuleAudit(Boolean.FALSE);
return true;
}
private void genAudit(Object entity, EnumAuditAction action) {
@ -103,6 +110,8 @@ public class AuditInterceptor extends EmptyInterceptor {
return;
}
Session session = null;
try {
/**
* Ignorado caso a entidade for de auditoria e se não for encontrado o módulo no banco
@ -130,7 +139,7 @@ public class AuditInterceptor extends EmptyInterceptor {
audit.setUsuario(UsuarioLogado.getUsuarioLogado());
SessionFactory sessionFactory = DBUtil.getInstance().getSessionFactory();
Session session = sessionFactory.openSession();
session = sessionFactory.openSession();
session.persist(audit);
session.flush();
@ -140,6 +149,9 @@ public class AuditInterceptor extends EmptyInterceptor {
} catch (Exception exception) {
log.error(exception.getStackTrace());
} finally {
if (session != null)
session.close();
}
}
}