@Override public List<UtenteDTO> findAllAttivi() { List<Utente> listaUtentiAttivi = new ArrayList<Utente>(); Map<String, SearchDTO> andMap = new HashMap<String, SearchDTO>(); SearchDTO so = new SearchDTO(); so.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); so.setValue(true); andMap.put("attivo", so); ISpecifications<DatiLogin> u = new ISpecifications<DatiLogin>(); Specification<DatiLogin> spec = u.findByCriteria(andMap, null); /* * Ottengo una lista delle tuple di dati login in cui l'utente รจ attivo */ List<DatiLogin> datiLogin = datiLoginRepository.findAll(spec); List<Utente> utentiAttivi = new ArrayList<Utente>(); for (DatiLogin d : datiLogin) { utentiAttivi.add(utenteRepository.findOne(d.getTbUtente().getId())); } return null; }
@Override public void removeSkill(SkillDTO skill, UtenteDTO utente) { Map<String, SearchDTO> andMap = new HashMap<String, SearchDTO>(); SearchDTO so = new SearchDTO(); so.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); long idSkill = skill.getId(); long idUtente = utente.getId(); so.setValue(idSkill); so.setValue(idUtente); andMap.put("tbSkill", so); andMap.put("tbUtente", so); ISpecifications<UtenteHasSkill> u = new ISpecifications<UtenteHasSkill>(); Specification<UtenteHasSkill> spec = u.findByCriteria(andMap, null); UtenteHasSkill utenteHasSkill = utenteSkillRepository.findOne(spec); utenteSkillRepository.delete(utenteHasSkill.getId()); LOG.warn("Skill rimossa dall'utente"); }
@Override public List<UtenteDTO> getByCompetenze(String competenza, Integer livello) { // cerco l'id corrispondente all'id della competenza Map<String, SearchDTO> andMap = new HashMap<String, SearchDTO>(); SearchDTO so = new SearchDTO(); so.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); so.setValue(competenza); andMap.put("descrizione", so); ISpecifications<Skill> u = new ISpecifications<Skill>(); Specification<Skill> spec = u.findByCriteria(andMap, null); Skill skill = skillRepJpa.findOne(spec); long idSkill = skill.getId(); // cerco gli utenti idonei una cerca competenza e un certo livello Map<String, SearchDTO> andMap2 = new HashMap<String, SearchDTO>(); SearchDTO so2 = new SearchDTO(); so2.setOperatore(it.linksmt.corsoedoc.intranet.enumeration.Operator.EQUAL); so2.setValue(idSkill); andMap.put("tb_skill_id", so2); so2.setValue(livello); andMap.put("livello", so2); ISpecifications<UtenteHasSkill> uS = new ISpecifications<UtenteHasSkill>(); Specification<UtenteHasSkill> spec2 = uS.findByCriteria(andMap2, null); List<UtenteHasSkill> listaUtentiHasSkill = utenteSkillRepository.findAll(spec2); // riempio una lista con tutti gli utenti DTO idonei List<Utente> utentiIdonei = new ArrayList<Utente>(); for (UtenteHasSkill utenteHasSkill : listaUtentiHasSkill) { utentiIdonei.add(utenteRepository.findOne(utenteHasSkill.getId())); } return UtenteConverter.convertListToDTO(utentiIdonei); }