This commit is contained in:
2026-06-25 00:38:34 +04:30
parent 00f990c653
commit 976b779736
22 changed files with 637 additions and 128 deletions
+17 -1
View File
@@ -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());
}
}
}
+127
View File
@@ -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());
}
}
}