@Override public List<CalificacionDTO> getCalificacionToma(int usuarioId) { List<CalificacionDTO> calificacionDTO = new ArrayList<CalificacionDTO>(); Usuario usuario = usuarioFacade.find(usuarioId); List<Calificacion> calificaciones = calificacionFacade.getCalificacionAlquilerTomadoPorUsuario(usuario); for (Calificacion c : calificaciones) { CalificacionDTO calificacion = new CalificacionDTO(); calificacion.setComentarioCalificacion(c.getComentarioCalificador()); calificacion.setComentarioReplica(c.getComentarioReplica()); calificacion.setFechaCalificacion(c.getFechaCalificacion()); calificacion.setFechaReplica(c.getFechaReplica()); calificacion.setIdUsuarioCalificador(c.getUsuarioCalificadorFk().getUsuarioId()); calificacion.setNombreUsuarioCalificador( c.getUsuarioCalificadorFk().getLoginList().get(0).getUsername()); calificacion.setNombrePuntuacion(c.getPuntuacionFk().getNombre()); calificacion.setYaReplico(c.getFechaReplica() == null ? Boolean.FALSE : Boolean.TRUE); calificacionDTO.add(calificacion); } return calificacionDTO; }
@Override public UsuarioDTO getUsuarioReputacionPorId(int usuarioId) throws AlquilaCosasException { Usuario usuario = usuarioFacade.find(usuarioId); if (usuario == null) { throw new AlquilaCosasException("Usuario no encontrado"); } UsuarioDTO usuarioDTO = new UsuarioDTO(); usuarioDTO.setId(usuario.getUsuarioId()); usuarioDTO.setUsername(usuario.getLoginList().get(0).getUsername()); usuarioDTO.setFechaDeRegistro(usuario.getLoginList().get(0).getFechaCreacion()); if (!usuario.getDomicilioList().isEmpty()) { Domicilio d = usuario.getDomicilioList().get(0); DomicilioDTO domicilioDTO = new DomicilioDTO(); domicilioDTO.setCiudad(d.getCiudad()); domicilioDTO.setProvincia(d.getProvinciaFk().getNombre()); domicilioDTO.setPais(d.getProvinciaFk().getPaisFk().getNombre()); usuarioDTO.setDomicilio(domicilioDTO); } usuarioDTO.setCantidadAdvertencia(usuario.getAdvertenciaList().size()); usuarioDTO.setCantidadSuspencion(usuario.getSuspensionList().size()); double rating = calificacionFacade.getCalificacionByUsuario(usuarioId); rating *= 0.5; rating += 5; usuarioDTO.setUserRating(rating); Integer cantOfrece = 0; Integer cantOfreceNegativas = 0; Integer cantOfreceNeutrales = 0; Integer cantOfrecePositivas = 0; for (Calificacion c : calificacionFacade.getCalificacionAlquilerOfrecidoPorUsuario(usuario)) { if ("POSITIVO".equals(c.getPuntuacionFk().getNombre())) cantOfrecePositivas++; else if ("NEUTRAL".equals(c.getPuntuacionFk().getNombre())) cantOfreceNeutrales++; else cantOfreceNegativas++; cantOfrece++; } usuarioDTO.setUserOfrecePositivas(cantOfrecePositivas); usuarioDTO.setUserOfreceNegativas(cantOfreceNegativas); usuarioDTO.setUserOfreceNeutrales(cantOfreceNeutrales); if (cantOfrece > 0) { usuarioDTO.setUserOfrecePositivasPorcentaje( redondear((cantOfrecePositivas.doubleValue() / cantOfrece.doubleValue()) * 100)); usuarioDTO.setUserOfreceNegativasPorcentaje( redondear((cantOfreceNegativas.doubleValue() / cantOfrece.doubleValue()) * 100)); usuarioDTO.setUserOfreceNeutralesPorcentaje( redondear((cantOfreceNeutrales.doubleValue() / cantOfrece.doubleValue()) * 100)); } else { usuarioDTO.setUserOfrecePositivasPorcentaje(0); usuarioDTO.setUserOfreceNegativasPorcentaje(0); usuarioDTO.setUserOfreceNeutralesPorcentaje(0); } Integer cantToma = 0; Integer cantTomaNegativas = 0; Integer cantTomaNeutrales = 0; Integer cantTomaPositivas = 0; for (Calificacion c : calificacionFacade.getCalificacionAlquilerTomadoPorUsuario(usuario)) { if ("POSITIVO".equals(c.getPuntuacionFk().getNombre())) cantTomaPositivas++; else if ("NEUTRAL".equals(c.getPuntuacionFk().getNombre())) cantTomaNeutrales++; else cantTomaNegativas++; cantToma++; } usuarioDTO.setUserTomaPositivas(cantTomaPositivas); usuarioDTO.setUserTomaNegativas(cantTomaNegativas); usuarioDTO.setUserTomaNeutrales(cantTomaNeutrales); if (cantToma > 0) { usuarioDTO.setUserTomaPositivasPorcentaje( redondear((cantTomaPositivas.doubleValue() / cantToma.doubleValue()) * 100)); usuarioDTO.setUserTomaNegativasPorcentaje( redondear((cantTomaNegativas.doubleValue() / cantToma.doubleValue()) * 100)); usuarioDTO.setUserTomaNeutralesPorcentaje( redondear((cantTomaNeutrales.doubleValue() / cantToma.doubleValue()) * 100)); } else { usuarioDTO.setUserTomaPositivasPorcentaje(0); usuarioDTO.setUserTomaNegativasPorcentaje(0); usuarioDTO.setUserTomaNeutralesPorcentaje(0); } return usuarioDTO; }