WS 10
This commit is contained in:
@@ -1,14 +1,27 @@
|
||||
package dev.service;
|
||||
|
||||
import dev.dao.UserDao;
|
||||
import dev.database.DatabaseConnection;
|
||||
import dev.model.OrderDetail;
|
||||
import dev.model.User;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.Objects;
|
||||
|
||||
public class AuthService {
|
||||
|
||||
UserDao userDao = new UserDao();
|
||||
|
||||
public boolean register(String username, String password, String email) {
|
||||
|
||||
// TODO:
|
||||
// Validate and register user
|
||||
|
||||
User user = userDao.findByUsername(username);
|
||||
if (user == null) {
|
||||
return userDao.save(new User(-1, username, password, email));
|
||||
}
|
||||
else System.out.println("Username already exists.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -16,8 +29,11 @@ public class AuthService {
|
||||
|
||||
// TODO:
|
||||
// Authenticate user
|
||||
User user = userDao.findByUsername(username);
|
||||
|
||||
return null;
|
||||
if (user == null) System.out.println("Username was not found.");
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,31 @@
|
||||
package dev.service;
|
||||
|
||||
import dev.dao.MenuItemDao;
|
||||
import dev.database.DatabaseConnection;
|
||||
import dev.model.MenuItem;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.List;
|
||||
|
||||
public class MenuService {
|
||||
|
||||
MenuItemDao menuItemDao = new MenuItemDao();
|
||||
|
||||
public void showMenu() {
|
||||
|
||||
// TODO:
|
||||
// Display menu items
|
||||
|
||||
List<MenuItem> Items = menuItemDao.findAll();
|
||||
|
||||
System.out.println("Available Items:");
|
||||
for (MenuItem i : Items) {
|
||||
System.out.println(i.getId() + " | " + i.getName() + " | " + i.getDescription() + " | " + "$" + i.getPrice());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,91 @@
|
||||
package dev.service;
|
||||
|
||||
import dev.dao.MenuItemDao;
|
||||
import dev.dao.OrderDao;
|
||||
import dev.dao.OrderDetailDao;
|
||||
import dev.database.DatabaseConnection;
|
||||
import dev.model.MenuItem;
|
||||
import dev.model.Order;
|
||||
import dev.model.OrderDetail;
|
||||
|
||||
import java.sql.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class OrderService {
|
||||
|
||||
OrderDetailDao orderDetailDao = new OrderDetailDao();
|
||||
OrderDao orderDao = new OrderDao();
|
||||
MenuItemDao menuItemDao = new MenuItemDao();
|
||||
|
||||
public void placeOrder(int userId) {
|
||||
|
||||
// TODO:
|
||||
// Create order
|
||||
|
||||
System.out.println("[Placing Order]");
|
||||
|
||||
int order_id = orderDao.save(new Order(-1, userId, LocalDateTime.now(), 0));
|
||||
if (order_id == -1) {
|
||||
System.out.println("Order id was not found.");
|
||||
return;
|
||||
}
|
||||
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
while (true){
|
||||
System.out.print("\nEnter the ID of the item to add (or 0 to finish): ");
|
||||
int itemId = scanner.nextInt();
|
||||
|
||||
if (itemId == 0) {
|
||||
|
||||
try (Connection c = DatabaseConnection.getConnection()) {
|
||||
|
||||
double total = 0.0;
|
||||
String selectQuery = "SELECT * FROM order_details";
|
||||
try (Statement stmt = c.createStatement();
|
||||
ResultSet rs = stmt.executeQuery(selectQuery)) {
|
||||
|
||||
while (rs.next()) {
|
||||
int orderId = rs.getInt("order_id");
|
||||
if (orderId == order_id) {
|
||||
double price = rs.getDouble("unit_price");
|
||||
int quantity = rs.getInt("quantity");
|
||||
total += price * quantity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String insertQuery = "UPDATE orders SET total_price = ? WHERE id = ? ";
|
||||
try (PreparedStatement pstmt = c.prepareStatement(insertQuery)) {
|
||||
pstmt.setDouble(1, total);
|
||||
pstmt.setInt(2, order_id);
|
||||
pstmt.executeUpdate();
|
||||
}
|
||||
}
|
||||
catch (SQLException e) {
|
||||
//
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
System.out.print("\nEnter quantity: ");
|
||||
int quantity = scanner.nextInt();
|
||||
System.out.println();
|
||||
|
||||
orderDetailDao.save(new OrderDetail(-1, order_id, itemId, quantity, 0));
|
||||
|
||||
MenuItem item = menuItemDao.findById(itemId);
|
||||
|
||||
System.out.println("Added " + quantity + "x " + item.getName() + " to your cart. \n");
|
||||
}
|
||||
|
||||
printReceipt(order_id);
|
||||
|
||||
System.out.println("Order saved successfully!");
|
||||
|
||||
}
|
||||
|
||||
public void printReceipt(int orderId) {
|
||||
@@ -14,6 +93,47 @@ public class OrderService {
|
||||
// TODO:
|
||||
// Print order receipt
|
||||
|
||||
System.out.println("[Order Summary / Receipt]");
|
||||
|
||||
try (Connection c = DatabaseConnection.getConnection()) {
|
||||
|
||||
double total_price = 1.0;
|
||||
String selectQuery1 = "SELECT * FROM orders";
|
||||
try (Statement stmt1 = c.createStatement();
|
||||
ResultSet rs1 = stmt1.executeQuery(selectQuery1)) {
|
||||
|
||||
boolean isInOrders = false;
|
||||
while (rs1.next()) {
|
||||
int OrderId = rs1.getInt("id");
|
||||
if (orderId == OrderId) {
|
||||
isInOrders = true;
|
||||
total_price = rs1.getDouble("total_price");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isInOrders) {
|
||||
System.out.println("Order was not found.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
List<OrderDetail> orderDetails = orderDetailDao.findByOrderId(orderId);
|
||||
|
||||
System.out.println("Item | Unit Price | Quantity | Total");
|
||||
System.out.println("---------------------------------------");
|
||||
for (OrderDetail od : orderDetails) {
|
||||
MenuItem menuItem = menuItemDao.findById(od.getMenuItemId());
|
||||
System.out.println(menuItem.getName() + " | " + "$" + od.getPrice() +
|
||||
" | " + od.getQuantity() + " | " + "$" + od.getPrice() * od.getQuantity());
|
||||
System.out.println("---------------------------------------");
|
||||
}
|
||||
System.out.println("Final Total: " + "$" + total_price + "\n");
|
||||
|
||||
}
|
||||
catch (SQLException e) {
|
||||
System.err.println("Error in connection with database: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void showOrderHistory(int userId) {
|
||||
@@ -21,6 +141,13 @@ public class OrderService {
|
||||
// TODO:
|
||||
// Display user's order history
|
||||
|
||||
List<Order> orders = orderDao.findByUserId(userId);
|
||||
|
||||
System.out.println("Order Id | Date & Time | Total Price");
|
||||
for (Order o : orders) {
|
||||
System.out.println(o.getId() + " | " + o.getCreatedAt() + " | " + "$" + o.getTotalPrice());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user