/* * (non-Javadoc) * * @see * it.linksmt.corsoedoc.intranet.service.UtenteService#generateEmail(it. * linksmt.corsoedoc.intranet.common.UtenteDTO) */ @Override public String generateUsername(UtenteDTO utente) { if (utente.getId() != null) { return datiLoginRepository.getByUtenteId(utente.getId()).getUsername(); } String username = utente.getCognome(); for (int i = 0; i < utente.getNome().length(); i++) { username += utente.getNome().charAt(i); DatiLogin dati = datiLoginRepository.getByUsername(username); if (dati == null) { break; } } return username.toLowerCase(); }
@Override public void disableUtente(UtenteDTO utente) { long id = utente.getId(); List<DatiLogin> lista = datiLoginRepository.findAll(); int n = lista.size(); for (int i = 0; i < n; i++) { if (lista.get(i).getTbUtente().getId() == id) { if (lista.get(i).getAttivo() == true) { lista.get(i).setAttivo(false); datiLoginRepository.save(lista.get(i)); } } } }
@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; }
@Transactional @Override public void addUpdateUtente(UtenteInsertJobDTO dto) throws DuplicatedEmailException, DuplicatedUsernameException, ParseException { UtenteDTO udto = dto.getUtenteDTO(); Utente u = null; if (udto.getId() == null) { Mansione m = mansioneRepository.findOne(dto.getIdMansione()); u = UtenteConverter.convertToEntity(dto.getUtenteDTO()); u.setTbMansione(m); } else { u = utenteRepository.getOne(udto.getId()); u.setCapDomicilio(udto.getCapDomicilio()); u.setCapResidenza(udto.getCapResidenza()); u.setCellulare(udto.getCellulare()); u.setCf(udto.getCf()); u.setCittaDomicilio(udto.getCittaDomicilio()); u.setCittaNascita(udto.getCittaDomicilio()); u.setCittaResidenza(udto.getCittaResidenza()); u.setCognome(udto.getCognome()); u.setDataAssunzione(DateConverter.convertFromStringToDate(udto.getDataAssunzione())); u.setDataNascita(DateConverter.convertFromStringToDate(udto.getDataNascita())); u.setIndirizzoDomicilio(udto.getIndirizzoDomicilio()); u.setIndirizzoResidenza(udto.getIndirizzoResidenza()); u.setMail(udto.getMail()); u.setNome(udto.getNome()); u.setProvinciaDomicilio(udto.getProvinciaDomicilio()); u.setProvinciaNascita(udto.getProvinciaNascita()); u.setProvinciaResidenza(udto.getProvinciaResidenza()); u.setTbMansione(mansioneRepository.findOne(dto.getIdMansione())); } utenteRepository.save(u); Utente temp = utenteRepository.getByEmail(u.getMail()); if (temp != null && temp.getId().longValue() != u.getId().longValue()) { throw new DuplicatedEmailException("User modified some values on JSON object"); } // E' necessario ricercare l'insieme delle skills già presenti, se siamo // in update List<UtenteHasSkill> skills = u.getTbUtenteHasTbSkills(); List<Long> skillsPresenti = new ArrayList<Long>(); skillsPresenti.addAll(dto.getSkill()); List<Integer> skillsLivelli = new ArrayList<Integer>(); skillsLivelli.addAll(dto.getLivello()); if (skills != null) { // A partire da queste tre liste è necessario iterare per ogni skill // esistente for (int p = 0; p < skills.size(); p++) { UtenteHasSkill skill = skills.get(p); boolean presente = false; // Innanzitutto controlliamo la presenza della skill in esame // (presente mappa o meno la presenza) for (int i = 0; i < skillsPresenti.size(); i++) { Long l = skillsPresenti.get(i); if (skill.getTbSkill().getId().longValue() == l) { if (skill.getLivello() != skillsLivelli.get(i).intValue()) { skill.setLivello(skillsLivelli.get(i)); utenteSkillRepository.save(skill); } skillsPresenti.remove(i); skillsLivelli.remove(i); presente = true; break; } } if (!presente) { utenteSkillRepository.delete(skill); } } } // Una volta arrivati qui, la lista skillsPresenti ha al suo interno // solo le skills non ancora collegate, per cui passiamo all'aggiunta // delle rimanenti for (int i = 0; i < skillsPresenti.size(); i++) { Long l = skillsPresenti.get(i); Skill skill = skillRepJpa.findOne(l); UtenteHasSkill uhs = new UtenteHasSkill(); uhs.setLivello(skillsLivelli.get(i)); uhs.setTbSkill(skill); uhs.setTbUtente(u); utenteSkillRepository.save(uhs); } // Controlliamo l'esistenza di un utente con la stessa mail aziendale DatiLogin datiLogin = datiLoginRepository.getByUsername(dto.getUsername()); if (datiLogin != null && datiLogin.getTbUtente().getId().longValue() != u.getId().longValue()) { throw new DuplicatedUsernameException("Username già presente nel DB per un altro utente"); } if (datiLogin == null) { DatiLogin dL = new DatiLogin(); dL.setAttivo(!dto.getDisabled()); dL.setPassword(Utility.md5(dto.getPassword())); dL.setUsername(dto.getUsername()); dL.setTbUtente(u); Profilo p = profiloRepository.findOne(dto.getIdProfilo()); dL.setTbProfilo(p); datiLoginRepository.save(dL); } else { if (!dto.getPassword().equals("vecchiapw")) { datiLogin.setPassword(Utility.md5(dto.getPassword())); } datiLogin.setUsername(dto.getUsername()); datiLogin.setAttivo(!dto.getDisabled()); datiLogin.setTbProfilo(profiloRepository.findOne(dto.getIdProfilo())); datiLoginRepository.save(datiLogin); } LOG.warn("Insert or update "); if (curriculumRepository.getByUtente(u) == null) { Curriculum curriculum = new Curriculum(); curriculum.setUtente(u); curriculum.setEsperienze(new String()); curriculum.setFormazione(new String()); curriculum.setLingue(new String()); curriculumRepository.save(curriculum); } }
/* * (non-Javadoc) * * @see * it.linksmt.corsoedoc.intranet.service.UtenteService#isDisabled(java.lang. * Long) */ @Override public Boolean isDisabled(Long id) { if (id == null) return false; DatiLogin dati = datiLoginRepository.getByUtenteId(id); return !dati.isAttivo(); }