Funcionalidad de reseñas y boton de eliminar pedido

This commit is contained in:
xFractu 2024-05-24 08:01:19 -06:00
parent 7134e014ba
commit 5e7eebc3fb
8 changed files with 360 additions and 3 deletions

View File

@ -448,6 +448,46 @@ public class App
return responseJson.toString();
});
post("/frontend/eliminarPedido", (request, response) -> {
response.type("application/json");
String payload = request.body();
JsonElement jsonElement = JsonParser.parseString(payload);
JsonObject jsonObject = jsonElement.getAsJsonObject();
String idPedido = jsonObject.get("datosId").getAsJsonObject().get("idPedido").getAsString();
// Lógica para eliminar el pedido usando el ID
boolean eliminado = DAO.eliminarPedido(idPedido);
JsonObject respuesta = new JsonObject();
if (eliminado) {
respuesta.addProperty("msj", "Pedido eliminado exitosamente.");
} else {
respuesta.addProperty("msj", "No se encontró ningún pedido con el ID especificado.");
}
return respuesta.toString();
});
post("/frontend/actualizarEstatusPedido", (request, response) -> {
response.type("application/json");
String payload = request.body();
JsonElement jsonElement = JsonParser.parseString(payload);
JsonObject jsonObject = jsonElement.getAsJsonObject();
String idPedido = jsonObject.get("datosId").getAsJsonObject().get("idPedido").getAsString();
String nuevoEstatus = jsonObject.get("datosId").getAsJsonObject().get("nuevoEstatus").getAsString();
// Lógica para actualizar el estatus del pedido usando el ID
boolean actualizado = DAO.actualizarEstatusPedido(idPedido, nuevoEstatus);
JsonObject respuesta = new JsonObject();
if (actualizado) {
respuesta.addProperty("msj", "Pedido actualizado exitosamente.");
} else {
respuesta.addProperty("msj", "No se encontró ningún pedido con el ID especificado.");
}
return respuesta.toString();
});
post("/frontend/obtenerPedidosDePastelesAdmin", (request, response) -> {
@ -484,6 +524,96 @@ public class App
return responseJson.toString();
});
post("/frontend/agregarResenia", (request, response) -> {
response.type("application/json");
String payload = request.body();
try {
JsonElement jsonElement = JsonParser.parseString(payload);
JsonObject jsonObject = jsonElement.getAsJsonObject();
// Obtener los datos de la reseña del JSON recibido
String nombreUsuario = jsonObject.get("nombreUsuario").getAsString();
String idPastel = jsonObject.get("idPastel").getAsString();
String contenido = jsonObject.get("contenido").getAsString();
int estrellas = jsonObject.get("estrellas").getAsInt();
// Crear un nuevo objeto Reseñas y asignar los valores recibidos
Reseñas reseña = new Reseñas();
reseña.setIdReseña(UUID.randomUUID().toString());
reseña.setNombreUsuario(nombreUsuario);
reseña.setIdPastel(idPastel);
reseña.setContenido(contenido);
reseña.setEstrellas(estrellas);
// Puedes realizar acciones adicionales con la información de la reseña
System.out.println("Reseña: " + reseña);
// Lógica para agregar la reseña en la base de datos
String mensaje = DAO.agregarReseña(reseña);
// Crear la respuesta
JsonObject respuesta = new JsonObject();
respuesta.addProperty("msj", mensaje);
return gson.toJson(respuesta);
} catch (JsonSyntaxException e) {
// Manejar errores de formato JSON
System.out.println("Error en el formato JSON: " + e.getMessage());
response.status(400); // Bad Request
return gson.toJson("Error en el formato JSON");
} catch (Exception e) {
// Manejar otros errores
System.out.println("Error al agregar la reseña: " + e.getMessage());
response.status(500); // Internal Server Error
return gson.toJson("Error al agregar la reseña");
}
});
post("/frontend/obtenerReseniasPorPastel", (request, response) -> {
response.type("application/json");
// Obtener el ID del pastel desde el cuerpo de la solicitud
JsonObject requestBody = new Gson().fromJson(request.body(), JsonObject.class);
String idPastel = requestBody.get("idPastel").getAsString();
// Obtener las reseñas para el pastel
List<Reseñas> reseñas = DAO.obtenerReseñasPorPastel(idPastel);
System.out.println("ID del pastel"+idPastel);
int numeroDeReseñas = reseñas.size();
System.out.println("Número de reseñas: " + numeroDeReseñas);
// Construir un objeto JSON con las reseñas
JsonArray reseñasArray = new JsonArray();
for (Reseñas reseña : reseñas) {
JsonObject reseñaJson = new JsonObject();
reseñaJson.addProperty("id_reseña", reseña.getIdReseña());
reseñaJson.addProperty("nombre_usuario", reseña.getNombreUsuario());
reseñaJson.addProperty("id_pastel", reseña.getIdPastel());
reseñaJson.addProperty("contenido", reseña.getContenido());
reseñaJson.addProperty("estrellas", reseña.getEstrellas());
reseñasArray.add(reseñaJson);
}
// Crear el objeto final que contiene todas las reseñas
JsonObject responseJson = new JsonObject();
responseJson.add("reseñas", reseñasArray);
System.out.println(responseJson);
return responseJson.toString();
});
}

View File

@ -5,10 +5,10 @@ import java.sql.DriverManager;
import java.sql.SQLException;
public class Conexion {
private static String url = "jdbc:mysql://127.0.0.1:3306/dbpastel";
private static String url = "jdbc:mysql://127.0.0.1:3306/dbpastel00";
private static String driverName = "com.mysql.cj.jdbc.Driver";
private static String username = "root";
private static String password = "cesarin_11";
private static String username = "pastel00";
private static String password = "pastel00";
// variable de conexion
private static Connection connection = null;

View File

@ -455,6 +455,166 @@ public static List<Pasteles> dameTodosLosPedidosDePasteles2() {
return resultado;
}
public static String agregarReseña(Reseñas reseña) {
PreparedStatement stm = null;
Connection conn = null;
String mensaje = "";
conn = Conexion.getConnection();
try {
String sql = "INSERT INTO reseñas (nombreUsuario, idPastel, contenido, estrellas) VALUES (?,?,?,?)";
stm = conn.prepareStatement(sql);
stm.setString(1, reseña.getNombreUsuario());
stm.setString(2, reseña.getIdPastel());
stm.setString(3, reseña.getContenido());
stm.setInt(4, reseña.getEstrellas());
if (stm.executeUpdate() > 0)
mensaje = "Reseña agregada con éxito";
else
mensaje = "No se pudo agregar la reseña";
} catch (SQLException e) {
System.out.println("Error al ejecutar la consulta: " + e.getMessage());
} finally {
if (stm != null) {
try {
stm.close();
} catch (SQLException e) {
System.out.println("Error al cerrar el statement: " + e.getMessage());
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
System.out.println("Error al cerrar la conexión: " + e.getMessage());
}
}
}
return mensaje;
}
public static List<Reseñas> obtenerReseñasPorPastel(String idPastel) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Reseñas> resultado = new ArrayList<>();
try {
conn = Conexion.getConnection();
String sql = "SELECT r.idReseña, r.nombreUsuario, r.idPastel, r.contenido, r.estrellas "
+ "FROM reseñas r "
+ "WHERE r.idPastel = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, idPastel);
rs = pstmt.executeQuery();
while (rs.next()) {
Reseñas reseña = new Reseñas(
rs.getString("idReseña"),
rs.getString("nombreUsuario"),
rs.getString("idPastel"),
rs.getString("contenido"),
rs.getInt("estrellas")
);
resultado.add(reseña);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return resultado;
}
public static boolean eliminarPedido(String idPedido) {
System.out.println("ENTRO AL METODO: eliminarPedido");
Statement stm = null;
Connection conn = null;
conn = Conexion.getConnection();
try {
String sql = "DELETE FROM pedidos WHERE idPedido = '" + idPedido + "'";
stm = (Statement) conn.createStatement();
int filasAfectadas = stm.executeUpdate(sql);
// Verificamos si se eliminó alguna fila
if (filasAfectadas > 0) {
System.out.println("Pedido eliminado exitosamente.");
return true;
} else {
System.out.println("No se encontró ningún pedido con el ID especificado.");
return false;
}
} catch (SQLException e) {
System.out.println("Error al eliminar el pedido: " + e);
} finally {
// Cierre de recursos
if (stm != null) {
try {
stm.close();
} catch (SQLException e) {
System.out.println(e);
}
}
}
return false;
}
public static boolean actualizarEstatusPedido(String idPedido, String nuevoEstatus) {
System.out.println("ENTRO AL METODO: actualizarEstatusPedido");
Statement stm = null;
Connection conn = null;
conn = Conexion.getConnection();
try {
String sql = "UPDATE pedidos SET estatus = '" + nuevoEstatus + "' WHERE idPedido = '" + idPedido + "'";
stm = (Statement) conn.createStatement();
int filasAfectadas = stm.executeUpdate(sql);
// Verificamos si se actualizó alguna fila
if (filasAfectadas > 0) {
System.out.println("Pedido actualizado exitosamente.");
return true;
} else {
System.out.println("No se encontró ningún pedido con el ID especificado.");
return false;
}
} catch (SQLException e) {
System.out.println("Error al actualizar el pedido: " + e);
} finally {
// Cierre de recursos
if (stm != null) {
try {
stm.close();
} catch (SQLException e) {
System.out.println(e);
}
}
try {
conn.close();
} catch (SQLException e) {
System.out.println(e);
}
}
return false;
}
}

View File

@ -0,0 +1,67 @@
package mx.uv;
public class Reseñas {
String idReseña;
String nombreUsuario;
String idPastel;
String contenido;
int estrellas;
public String getIdReseña() {
return idReseña;
}
public void setIdReseña(String idReseña) {
this.idReseña = idReseña;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getIdPastel() {
return idPastel;
}
public void setIdPastel(String idPastel) {
this.idPastel = idPastel;
}
public String getContenido() {
return contenido;
}
public void setContenido(String contenido) {
this.contenido = contenido;
}
public int getEstrellas() {
return estrellas;
}
public void setEstrellas(int estrellas) {
this.estrellas = estrellas;
}
public String toString() {
return "Reseñas [idReseña=" + idReseña + ", nombreUsuario=" + nombreUsuario + ", idPastel=" + idPastel + ", contenido=" + contenido + ", estrellas=" + estrellas + "]";
}
public Reseñas(){
}
public Reseñas(String idReseña, String nombreUsuario, String idPastel, String contenido, int estrellas) {
this.idReseña = idReseña;
this.nombreUsuario = nombreUsuario;
this.idPastel = idPastel;
this.contenido = contenido;
this.estrellas = estrellas;
}
}

Binary file not shown.