Modificación clase Usuario

parent 64600afb
...@@ -24,7 +24,7 @@ public class Usuario { ...@@ -24,7 +24,7 @@ public class Usuario {
private int telefono; private int telefono;
private String email; private String email;
private String claveAcceso; private String claveAcceso;
private int puntuacion; private ArrayList<Integer> puntuacion;
private Rol rol; private Rol rol;
@Transient @Transient
private ArrayList<Integer> viajesOfertados; private ArrayList<Integer> viajesOfertados;
...@@ -41,7 +41,7 @@ public class Usuario { ...@@ -41,7 +41,7 @@ public class Usuario {
this.telefono = telefono; this.telefono = telefono;
this.email = email; this.email = email;
this.claveAcceso = claveAcceso; this.claveAcceso = claveAcceso;
this.puntuacion = 0; this.puntuacion = new ArrayList<>();
this.rol = rol; this.rol = rol;
if(rol == CONDUCTOR){ if(rol == CONDUCTOR){
this.viajesOfertados = new ArrayList<>(); this.viajesOfertados = new ArrayList<>();
...@@ -213,4 +213,22 @@ public class Usuario { ...@@ -213,4 +213,22 @@ public class Usuario {
return viajesDisponibles; return viajesDisponibles;
} }
public void actualizarPuntuacion(Usuario usuario, int nuevaPuntuacion) {
// Carga el usuario desde la base de datos
Usuario usuarioExistente = usuarioRepository.findById(usuario.getId()).orElse(null);
if (usuarioExistente != null) {
// Agrega la nueva puntuación
usuarioExistente.getPuntuaciones().add(nuevaPuntuacion);
// Calcula la puntuación media
List<Integer> puntuaciones = usuarioExistente.getPuntuaciones();
double puntuacionMedia = puntuaciones.stream().mapToInt(Integer::intValue).average().orElse(0.0);
usuarioExistente.setPuntuacionMedia(puntuacionMedia);
// Guarda el usuario actualizado (sin duplicar)
usuarioRepository.save(usuarioExistente);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment