package br.com.centralit.citcorpore.negocio; import java.util.Collection; import java.util.List; import java.util.Map; import br.com.centralit.citcorpore.bean.MenuDTO; import br.com.centralit.citcorpore.bean.PerfilAcessoMenuDTO; import br.com.centralit.citcorpore.bean.UsuarioDTO; import br.com.centralit.citcorpore.integracao.MenuDao; import br.com.centralit.citcorpore.integracao.PerfilAcessoMenuDao; import br.com.citframework.dto.IDto; import br.com.citframework.integracao.TransactionControler; import br.com.citframework.integracao.TransactionControlerImpl; import br.com.citframework.service.CrudServiceImpl; import br.com.citframework.util.UtilDatas; public class PerfilAcessoMenuServiceEjb extends CrudServiceImpl implements PerfilAcessoMenuService { private PerfilAcessoMenuDao dao; @Override protected PerfilAcessoMenuDao getDao() { if (dao == null) { dao = new PerfilAcessoMenuDao(); } return dao; } @Override public Collection<PerfilAcessoMenuDTO> restoreMenusAcesso(final IDto obj) throws Exception { return this.getDao().restoreMenusAcesso(obj); } @Override public void atualizaPerfis() throws Exception { final PerfilAcessoMenuDao perfilAcessoMenuDao = new PerfilAcessoMenuDao(); final MenuDao menuDao = new MenuDao(); final TransactionControler tc = new TransactionControlerImpl(perfilAcessoMenuDao.getAliasDB()); tc.start(); perfilAcessoMenuDao.setTransactionControler(tc); menuDao.setTransactionControler(tc); final List<PerfilAcessoMenuDTO> colecaoPerfisAcessoMenu = (List) this.getDao().list(); for (final PerfilAcessoMenuDTO perfilAcessoMenu : colecaoPerfisAcessoMenu) { final List<MenuDTO> menuPai = (List<MenuDTO>) menuDao.listarMenuPai(perfilAcessoMenu.getIdMenu()); if (menuPai != null && !menuPai.isEmpty() && menuPai.get(0).getIdMenuPai() != null && menuPai.get(0).getIdMenuPai() != 0) { final List<PerfilAcessoMenuDTO> perfilAcessoComMenuPai = (List) this.getDao().pesquisaSeJaExisteAcessoMenuPai(perfilAcessoMenu.getIdPerfilAcesso(), menuPai.get(0).getIdMenuPai()); if (perfilAcessoComMenuPai == null || perfilAcessoComMenuPai.isEmpty()) { // criar acesso para o menu pai final PerfilAcessoMenuDTO perfilAcessoMenuPaiDto = new PerfilAcessoMenuDTO(); perfilAcessoMenuPaiDto.setDataInicio(UtilDatas.getDataAtual()); perfilAcessoMenuPaiDto.setDeleta("S"); perfilAcessoMenuPaiDto.setGrava("S"); perfilAcessoMenuPaiDto.setPesquisa("S"); perfilAcessoMenuPaiDto.setIdMenu(menuPai.get(0).getIdMenuPai()); perfilAcessoMenuPaiDto.setIdPerfilAcesso(perfilAcessoMenu.getIdPerfilAcesso()); perfilAcessoMenuDao.create(perfilAcessoMenuPaiDto); } } } tc.commit(); tc.close(); } /** * Obt�m um Mapa<idMenu, List<PerfilAcessoMenu> > de todos os menus deste usu�rio * * @author thyen.chang * @since 28/01/2015 - OPERA��O USAIN BOLT */ @Override public Map<Integer, List<PerfilAcessoMenuDTO> > getPerfilAcessoBotoesMenu(UsuarioDTO usuario) throws Exception { return this.getDao().getPerfilAcessoBotoesMenu(usuario); } }