Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
María Hidalgo
/
carpooling-dae
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ed4507a0
authored
Jan 25, 2024
by
María Hidalgo
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Transacciones
parent
2a04addb
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
16 deletions
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioUsuarios.java
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioViajes.java
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
View file @
ed4507a0
...
@@ -68,7 +68,7 @@ public class Usuario implements Serializable {
...
@@ -68,7 +68,7 @@ public class Usuario implements Serializable {
String
clave
;
String
clave
;
// Viajes creados por el conductor
// Viajes creados por el conductor
@OneToMany
(
fetch
=
FetchType
.
EAGER
,
cascade
=
CascadeType
.
ALL
)
@OneToMany
(
fetch
=
FetchType
.
LAZY
,
cascade
=
CascadeType
.
ALL
)
// @JoinColumn(name = "usuario_dni")
// @JoinColumn(name = "usuario_dni")
List
<
Viaje
>
viajesComoConductor
;
List
<
Viaje
>
viajesComoConductor
;
...
...
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
View file @
ed4507a0
...
@@ -61,7 +61,7 @@ public class Viaje {
...
@@ -61,7 +61,7 @@ public class Viaje {
EstadoViaje
estado
;
EstadoViaje
estado
;
// Lista de usuarios que son confirmados en un viaje
// Lista de usuarios que son confirmados en un viaje
@ManyToMany
(
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
EAGER
)
@ManyToMany
(
cascade
=
CascadeType
.
ALL
,
fetch
=
FetchType
.
EAGER
)
@JoinColumn
(
name
=
"confirmado_usuario_dni"
)
@JoinColumn
(
name
=
"confirmado_usuario_dni"
)
public
List
<
Usuario
>
usuariosConfirmados
;
public
List
<
Usuario
>
usuariosConfirmados
;
...
...
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioUsuarios.java
View file @
ed4507a0
...
@@ -26,8 +26,8 @@ public class RepositorioUsuarios {
...
@@ -26,8 +26,8 @@ public class RepositorioUsuarios {
public
void
guardar
(
Usuario
usuario
)
{
public
void
guardar
(
Usuario
usuario
)
{
em
.
persist
(
usuario
);
em
.
persist
(
usuario
);
}
}
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
void
actualizarUsuario
(
Usuario
usuario
){
public
void
actualizarUsuario
(
Usuario
usuario
){
em
.
merge
(
usuario
);
em
.
merge
(
usuario
);
}
}
...
...
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioViajes.java
View file @
ed4507a0
...
@@ -35,6 +35,8 @@ public class RepositorioViajes {
...
@@ -35,6 +35,8 @@ public class RepositorioViajes {
em
.
persist
(
viaje
);
em
.
persist
(
viaje
);
}
}
// @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public
List
<
Viaje
>
buscar
(
String
origen
,
String
destino
,
LocalDateTime
fecha
)
{
public
List
<
Viaje
>
buscar
(
String
origen
,
String
destino
,
LocalDateTime
fecha
)
{
List
<
Viaje
>
viajes
=
new
ArrayList
<>();
List
<
Viaje
>
viajes
=
new
ArrayList
<>();
...
@@ -51,8 +53,8 @@ public class RepositorioViajes {
...
@@ -51,8 +53,8 @@ public class RepositorioViajes {
return
viajes
;
return
viajes
;
}
}
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
void
actualizarViajes
(
Viaje
viaje
)
{
public
void
actualizarViajes
(
Viaje
viaje
)
{
em
.
merge
(
viaje
);
em
.
merge
(
viaje
);
}
}
...
...
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
View file @
ed4507a0
...
@@ -12,6 +12,7 @@ import java.util.List;
...
@@ -12,6 +12,7 @@ import java.util.List;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
...
@@ -68,14 +69,14 @@ public class SistemaCarpooling {
...
@@ -68,14 +69,14 @@ public class SistemaCarpooling {
* @return el objeto de la clase Viaje asociado
* @return el objeto de la clase Viaje asociado
*/
*/
public
Optional
<
Usuario
>
loginUsuario
(
@NotBlank
String
dni
,
@NotBlank
String
clave
)
{
public
Optional
<
Usuario
>
loginUsuario
(
@NotBlank
String
dni
,
@NotBlank
String
clave
)
{
Optional
<
Usuario
>
usuarioLogin
=
repositorioUsuarios
.
buscar
(
dni
)
Optional
<
Usuario
>
usuarioLogin
=
repositorioUsuarios
.
buscar
(
dni
)
.
filter
((
cliente
)
->
cliente
.
claveValida
(
clave
));
.
filter
((
cliente
)
->
cliente
.
claveValida
(
clave
));
return
usuarioLogin
;
return
usuarioLogin
;
}
}
@Transactional
public
void
agregarViaje
(
@NotNull
Usuario
conductor
,
@NotNull
Viaje
viaje
)
{
public
void
agregarViaje
(
@NotNull
Usuario
conductor
,
@NotNull
Viaje
viaje
)
{
// Agregar el viaje al repositorio de viajes
// Agregar el viaje al repositorio de viajes
repositorioViajes
.
guardarViaje
(
viaje
);
repositorioViajes
.
guardarViaje
(
viaje
);
...
@@ -87,7 +88,7 @@ public class SistemaCarpooling {
...
@@ -87,7 +88,7 @@ public class SistemaCarpooling {
repositorioUsuarios
.
actualizarUsuario
(
conductor
);
repositorioUsuarios
.
actualizarUsuario
(
conductor
);
}
}
/**
/**
qqq2
* Buscar viaje
* Buscar viaje
*
*
* @param origen donde empieza el viaje
* @param origen donde empieza el viaje
...
@@ -96,7 +97,8 @@ public class SistemaCarpooling {
...
@@ -96,7 +97,8 @@ public class SistemaCarpooling {
* @return viajes encontrados con esos datos
* @return viajes encontrados con esos datos
*/
*/
public
List
<
Viaje
>
buscarViajes
(
@NotBlank
String
origen
,
@NotBlank
String
destino
,
@NotNull
LocalDateTime
fecha
)
{
public
List
<
Viaje
>
buscarViajes
(
@NotBlank
String
origen
,
@NotBlank
String
destino
,
@NotNull
LocalDateTime
fecha
)
{
List
<
Viaje
>
listaViajes
=
repositorioViajes
.
buscar
(
origen
,
destino
,
fecha
);
List
<
Viaje
>
listaViajes
=
repositorioViajes
.
buscar
(
origen
,
destino
,
fecha
);
...
@@ -110,7 +112,7 @@ public class SistemaCarpooling {
...
@@ -110,7 +112,7 @@ public class SistemaCarpooling {
* @param conductor el usuario conductor
* @param conductor el usuario conductor
* @return lista de viajes pendientes del conductor
* @return lista de viajes pendientes del conductor
*/
*/
// @Transactional
public
List
<
Viaje
>
obtenerViajesPendientesConductor
(
@NotNull
Usuario
conductor
)
{
public
List
<
Viaje
>
obtenerViajesPendientesConductor
(
@NotNull
Usuario
conductor
)
{
// Filtrar los viajes del conductor que aún no han sido realizados
// Filtrar los viajes del conductor que aún no han sido realizados
return
conductor
.
getViajesComoConductor
().
stream
()
return
conductor
.
getViajesComoConductor
().
stream
()
...
@@ -124,15 +126,14 @@ public class SistemaCarpooling {
...
@@ -124,15 +126,14 @@ public class SistemaCarpooling {
*
*
* @param viaje al que se envía la solicitud
* @param viaje al que se envía la solicitud
*/
*/
@Transactional
public
void
enviarSolicitudViaje
(
@NotNull
Viaje
viaje
,
@NotNull
Usuario
pasajero
)
{
public
void
enviarSolicitudViaje
(
@NotNull
Viaje
viaje
,
@NotNull
Usuario
pasajero
)
{
// Llamar a la función en viaje para enviar la solicitud
// Llamar a la función en viaje para enviar la solicitud
viaje
.
enviarSolicitudParaSerPasajero
(
viaje
,
pasajero
);
viaje
.
enviarSolicitudParaSerPasajero
(
viaje
,
pasajero
);
repositorioViajes
.
actualizarViajes
(
viaje
);
repositorioViajes
.
actualizarViajes
(
viaje
);
}
}
@Transactional
public
void
aceptarPasajeroViaje
(
@NotNull
Viaje
viaje
,
@NotNull
Usuario
pasajero
,
public
void
aceptarPasajeroViaje
(
@NotNull
Viaje
viaje
,
@NotNull
Usuario
pasajero
,
@NotNull
Usuario
conductor
)
{
@NotNull
Usuario
conductor
)
{
...
@@ -147,7 +148,7 @@ public class SistemaCarpooling {
...
@@ -147,7 +148,7 @@ public class SistemaCarpooling {
* @return lista de solicitudes pendientes del viaje
* @return lista de solicitudes pendientes del viaje
*/
*/
public
List
<
Usuario
>
obtenerSolicitudesPendientes
(
@NotNull
Viaje
viaje
)
{
public
List
<
Usuario
>
obtenerSolicitudesPendientes
(
@NotNull
Viaje
viaje
)
{
// Verificar que el viaje esté en estado PENDIENTE
// Verificar que el viaje esté en estado PENDIENTE
if
(
viaje
.
getEstado
()
!=
EstadoViaje
.
PENDIENTE
)
{
if
(
viaje
.
getEstado
()
!=
EstadoViaje
.
PENDIENTE
)
{
...
@@ -164,7 +165,7 @@ public class SistemaCarpooling {
...
@@ -164,7 +165,7 @@ public class SistemaCarpooling {
* @param viaje el viaje del que se obtendrán los pasajeros
* @param viaje el viaje del que se obtendrán los pasajeros
* @return lista de pasajeros confirmados del viaje
* @return lista de pasajeros confirmados del viaje
*/
*/
public
List
<
Usuario
>
obtenerPasajeros
(
@NotNull
Viaje
viaje
)
{
public
List
<
Usuario
>
obtenerPasajeros
(
@NotNull
Viaje
viaje
)
{
//Podemos ver los pasajeros antes y después del viaje
//Podemos ver los pasajeros antes y después del viaje
if
(
viaje
.
getEstado
()
!=
EstadoViaje
.
PENDIENTE
&&
viaje
.
getEstado
()
!=
EstadoViaje
.
REALIZADO
)
{
if
(
viaje
.
getEstado
()
!=
EstadoViaje
.
PENDIENTE
&&
viaje
.
getEstado
()
!=
EstadoViaje
.
REALIZADO
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment