⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 order.java

📁 简单的餐厅管理系统
💻 JAVA
字号:
package beans;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import java.sql.PreparedStatement;

import util.AddZeroAhead;
import util.BaseSQL;

public class Order {
	private String orderID = "";
	private User waiter = new User();
	private int numberOfMan = 0;
	private String contractorName = "";
	private String phoneNumber = "";
	private Date orderDate = new Date();
	private Date eatDate = new Date();

	private float price = 0;
	
	private Vector<DishNumber> dishNumbers = new Vector<DishNumber>();
	//可以删除
	
	public String getMainInfor(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from `order` where orderID = '"+orderID+"'");
			String waiterID;
			if(rs.next()){
				
				this.orderID = rs.getString("orderID");
				waiterID = rs.getString("waiterID");
				this.numberOfMan = rs.getInt("numberOfMan");
				this.contractorName = rs.getString("contractor");
				this.phoneNumber = rs.getString("phoneNumber");
				this.orderDate = rs.getDate("orderDate");
				this.eatDate = rs.getTimestamp("eatTime");
				this.price = rs.getFloat("price");
				
			}else{
				return "此订单不存在!";
			}
			
			this.waiter.getWaiterData(waiterID);
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block

			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block

			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	public String deleteOrder(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from `order` where orderID = '"+orderID+"'");
			
			if(rs.next()){
				b.connection.setAutoCommit(false);
				b.statement.executeUpdate("delete from `order` where orderID = '"+orderID+"'");
				b.connection.commit();
				b.connection.setAutoCommit(true);
			}else{
				return "数据库中不存在该项!";
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	//测试通过
	public String persist(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");
			
			
			String year;
			String month;
			String date;
			
			ResultSet rs = b.statement.executeQuery(
					"select orderID from `order`");

			year = AddZeroAhead.addZeroAhead(orderDate.getYear()-100+"", 2);
			month = AddZeroAhead.addZeroAhead(orderDate.getMonth()+1+"", 2);
			date = AddZeroAhead.addZeroAhead(orderDate.getDate()+"", 2);
			orderID = year+month+date+"01";
			while(rs.next()){
				if(Integer.parseInt(orderID)==Integer.parseInt(rs.getString(1))){
					orderID = Integer.parseInt(orderID)+1+"";
				}
			}
			orderID = AddZeroAhead.addZeroAhead(orderID, 8);
			System.out.println(orderID);
			b.connection.setAutoCommit(false);

			PreparedStatement pStmt = b.connection.prepareStatement("insert into `order` values(?,?,?,?,?,?,?,?)");
			pStmt.setString(1, orderID);

			pStmt.setString(2, waiter.getUserName());
			pStmt.setInt(3, numberOfMan);
			pStmt.setString(4, contractorName);
			pStmt.setString(5, phoneNumber);
			pStmt.setDate(6, java.sql.Date.valueOf(orderDate.getYear()+1900+"-"+month+"-"+date));
			String eatYear = eatDate.getYear()+1900+"";
			String eatMonth = AddZeroAhead.addZeroAhead(eatDate.getMonth()+1+"", 2);
			String eatDay = AddZeroAhead.addZeroAhead(eatDate.getDate()+"", 2);
			String eatHour = AddZeroAhead.addZeroAhead(eatDate.getHours()+"", 2);
			String eatMinute = AddZeroAhead.addZeroAhead(eatDate.getMinutes()+"", 2);
			String eatSecond = AddZeroAhead.addZeroAhead(eatDate.getSeconds()+"", 2);
						
			pStmt.setTimestamp(7, java.sql.Timestamp.valueOf(
					eatYear+"-"+eatMonth+"-"+eatDay+" "+eatHour+":"+eatMinute+":"+eatSecond));
			pStmt.setFloat(8, price);

			pStmt.executeUpdate();

			Iterator iter = dishNumbers.iterator();
			while(iter.hasNext()){
				DishNumber dishenumber = (DishNumber)iter.next();
				String dishID = dishenumber.getDish().getDishID();
				int number = dishenumber.getNumber();
				System.out.println(orderID+" "+dishID+" "+number);
				if(b.statement.executeQuery(
						"select * from dish where dishID = '"
						+dishID+"'").next()){
					b.statement.executeUpdate("insert into order_dish values ('"
							+orderID+"','"+dishID+"',"+number+")");
				}else{
					b.connection.rollback();
					return "菜不存在,无法添加!";
				}
			}
			b.connection.commit();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block

			} 
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	//可以
	public String update(){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");
			b.connection.setAutoCommit(false);

			ResultSet rs = b.statement.executeQuery(
					"select * from `order` where orderID = '"+orderID+"'");

			if(rs.next()){
				PreparedStatement pStmt = b.connection.prepareStatement(
						"update `order` set orderID = ?,waiterID = ?,numberOfMan = ?,contractor = ?," +
						"phoneNumber = ?,orderDate = ?,eatTime = ?,price =? where orderID = ?");
				pStmt.setString(1, orderID);
				pStmt.setString(2, waiter.getUserName());
				pStmt.setInt(3, numberOfMan);
				pStmt.setString(4, contractorName);
				pStmt.setString(5, phoneNumber);
				
				String year;
				String month;
				String date;
				
				year = AddZeroAhead.addZeroAhead(orderDate.getYear()-100+"", 2);
				month = AddZeroAhead.addZeroAhead(orderDate.getMonth()+1+"", 2);
				date = AddZeroAhead.addZeroAhead(orderDate.getDate()+"", 2);
				pStmt.setDate(6, java.sql.Date.valueOf(orderDate.getYear()+1900+"-"+month+"-"+date));
				String eatYear = eatDate.getYear()+1900+"";
				String eatMonth = AddZeroAhead.addZeroAhead(eatDate.getMonth()+1+"", 2);
				String eatDay = AddZeroAhead.addZeroAhead(eatDate.getDate()+"", 2);
				String eatHour = AddZeroAhead.addZeroAhead(eatDate.getHours()+"", 2);
				String eatMinute = AddZeroAhead.addZeroAhead(eatDate.getMinutes()+"", 2);
				String eatSecond = AddZeroAhead.addZeroAhead(eatDate.getSeconds()+"", 2);
							
				pStmt.setTimestamp(7, java.sql.Timestamp.valueOf(
						eatYear+"-"+eatMonth+"-"+eatDay+" "+eatHour+":"+eatMinute+":"+eatSecond));
				pStmt.setFloat(8, price);
				pStmt.setString(9, orderID);
				pStmt.executeUpdate();
			}else{
				b.connection.rollback();
				return "数据库中不存在该项!";
			}

			Iterator iter = dishNumbers.iterator();
			
			b.statement.executeUpdate("delete from order_dish where orderID ='"+orderID+"'");
			
			while(iter.hasNext()){
				DishNumber dishenumber = (DishNumber)iter.next();
				String dishID = dishenumber.getDish().getDishID();
				int number = dishenumber.getNumber();
				if(b.statement.executeQuery(
						"select * from dish where dishID = '"
						+dishID+"'").next()){
					b.statement.executeUpdate("insert into order_dish values ('"
							+orderID+"','"+dishID+"',"+number+")");
				}else{
					b.connection.rollback();
					return "菜不存在,无法添加!";
				}
			}
			b.connection.commit();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} 
			e.printStackTrace();
			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				b.connection.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} 
			e.printStackTrace();
			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return null;		
	}
	//测试通过
	public String getData(String orderID){
		BaseSQL b = new BaseSQL();
		try {
			b.connect("eatery", "root", "123456");

			ResultSet rs = b.statement.executeQuery(
					"select * from `order` where orderID = '"+orderID+"'");
			String waiterID;
			if(rs.next()){
				
				this.orderID = rs.getString("orderID");
				waiterID = rs.getString("waiterID");
				this.numberOfMan = rs.getInt("numberOfMan");
				this.contractorName = rs.getString("contractor");
				this.phoneNumber = rs.getString("phoneNumber");
				this.orderDate = rs.getDate("orderDate");
				this.eatDate = rs.getTimestamp("eatTime");
				this.price = rs.getFloat("price");
				
			}else{
				return "此订单不存在!";
			}
			
			this.waiter.getWaiterData(waiterID);
			dishNumbers = new Vector();

			rs = b.statement.executeQuery(
					"select * from order_dish where orderID = '"+orderID+"'");

			while(rs.next()){
				Dish dish = new Dish();
				dish.getMainInfo(rs.getString(2));
				DishNumber dishNumber = new DishNumber();
				dishNumber.setNumber(rs.getInt(3));
				dishNumber.setDish(dish);
				dishNumbers.add(dishNumber);

			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block

			return "数据库操作出错!";
		} catch (Exception e) {
			// TODO Auto-generated catch block

			return "出现未知错误!";
		} finally {
			try {
				b.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block

			}
		}
		return null;
	}
	
	//可以
	public String addDishes(Dish add,int number){

		Iterator iter = dishNumbers.iterator();
		DishNumber d = new DishNumber();
		d.setDish(add);
		d.setNumber(number);
		while(iter.hasNext()){
			DishNumber dishnumber = (DishNumber)iter.next();
			if(dishnumber.getDish().equals(add.getDishID())){
				
				dishNumbers.remove(dishnumber);
				dishNumbers.add(d);
				return "此菜已存在!替换!";
			}
		}
		dishNumbers.add(d);
		return "成功增加!";	
	}
	
	//可以
	public String deleteDishes(Dish delete){
		Iterator iter = dishNumbers.iterator();
		while(iter.hasNext()){
			DishNumber dishnumber = (DishNumber)iter.next();
			if(dishnumber.getDish().equals(delete.getDishID())){
				dishNumbers.remove(dishnumber);
				return "成功删除!";	
			}
		}
		return "删除失败!此菜不存在!";
	}
	//测试通过
	public float caculatePrice(){

		Iterator<DishNumber> iterator = dishNumbers.iterator();
		price = 0;
		while(iterator.hasNext()){
			DishNumber d = iterator.next();
			price += d.getDish().getPrice()*d.getNumber();
		}
		return price;
	}
	//可以使用
	public int queryDish(String dishID){
		dishID = AddZeroAhead.addZeroAhead(dishID, 8);
		if(dishNumbers.size() == 0){
			return 0;
		}
		for(int i = 0 ; i < dishNumbers.size(); i++){
			Dish temp = (Dish)dishNumbers.get(i).getDish();
			if(temp.equals(dishID)){
				return dishNumbers.get(i).getNumber();
			}
		}
		return 0;
	}

	public boolean equals(String compare){
		if(orderID.equals(compare)){
			return true;
		}else{
			return false;
		}
	}
	
	public String getOrderID() {
		return orderID;
	}

	public void setOrderID(String orderID) {
		orderID = orderID;
	}

	public User getWaiter() {
		return waiter;
	}

	public void setWaiter(User waiter) {
		this.waiter = waiter;
	}

	public int getNumberOfMan() {
		return numberOfMan;
	}

	public void setNumberOfMan(int numberOfMan) {
		this.numberOfMan = numberOfMan;
	}

	public String getContractorName() {
		return contractorName;
	}

	public void setContractorName(String contractorName) {
		this.contractorName = contractorName;
	}

	public String getPhoneNumber() {
		return phoneNumber;
	}

	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public Date getEatDate() {
		return eatDate;
	}

	public void setEatDate(Date eatDate) {
		this.eatDate = eatDate;
	}

	public float getPrice() {
		return price;
	}

	public void setPrice(float price) {
		this.price = price;
	}

	public Vector getDishes() {
		return dishNumbers;
	}

	public void setDishes(Vector dishNumbers) {
		this.dishNumbers = dishNumbers;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -