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

📄 orderdao.java

📁 基于JSF开发的一个洒店管理系,具有中文
💻 JAVA
字号:
/*
 * 创建日期 2005-10-17
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package net.husthotel.datebase;

import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;

import net.husthotel.beans.AbstractOrder;
import net.husthotel.beans.Order;

/**
 * @author 付俊杰
 * 
 * TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class OrderDAO extends DataBase {

	public OrderDAO() {

	}

	private boolean checkDate(Date tempCheckinDate, Date tempCheckoutDate,
			Date checkinDate, Date checkoutDate) {
		//System.out.println("generateRoomNoForOrder:" + tempCheckinDate.toString()+tempCheckoutDate.toString()+checkinDate.toString()+checkoutDate.toString());
		if (tempCheckoutDate.compareTo(checkinDate) < 0
				|| tempCheckinDate.compareTo(checkoutDate) > 0)
			return true;
		else
			return false;

	}

	private String generateRoomNoForOrder(String roomType, Date checkinDate,
			Date checkoutDate) throws SQLException, NoRoomAvailableException {

		String roomNo = null;
		ResultSet rst1, rst2;
		Date tempCheckinDate, tempCheckoutDate;
		boolean canAsign = false;
		String sql1 = "select roomNum from room where roomState='free' and roomType='"
				+ roomType + "'";
		//String sql2 = "select checkinDate,checkoutDate from order where roomNum='"
				//+ roomNo + "'";
		// String sql2="select roomNo from room where roomState='free' and
		// roomType='"+roomType+"'";
		System.out.println("generateRoomNoForOrder:" + sql1 ); //-----------------
		rst1 = executeQuery(sql1);
		System.out.println("generateRoomNoForOrder:"  ); //-----------------
		while (rst1.next()) {
			roomNo = rst1.getString("roomNum");
			String sql2 = "select checkinDate,checkoutDate from hotelorder where roomNum='"
				+ roomNo + "'";
			rst2 = executeQuery(sql2);
			if (!rst2.next()) {
				canAsign = true;
				//System.out.println(canAsign);//--------------
				rst2.close();
			} 
			else {
				canAsign=true;
				do {
					tempCheckinDate = rst2.getDate("checkinDate");
					tempCheckoutDate = rst2.getDate("checkoutDate");
					System.out.println("generateRoomNoForOrder:" + tempCheckinDate.toString()+tempCheckoutDate.toString()+checkinDate.toString()+checkoutDate.toString());
					if (checkDate(new java.sql.Date(tempCheckinDate.getTime()), new java.sql.Date(tempCheckoutDate.getTime()),
							checkinDate, checkoutDate))
						continue;
					else {
						canAsign = false;
						break;
					}
				} while (rst2.next());
				rst2.close();

			}
			
			if (canAsign == true) {
				System.out.println("generateRoomNoForOrder:" + roomNo);
				return roomNo;
			}

		}
		rst1.close();

		throw new NoRoomAvailableException("no room available exception.");

	}

	@SuppressWarnings({"deprecation","deprecation", "deprecation"})
	public Order create(AbstractOrder border) throws SQLException,
			NoRoomAvailableException {
		Order corder = new Order();
		String roomNo = null;
		Date date = new java.sql.Date(border.getCheckinDate().getTime());
		roomNo = generateRoomNoForOrder(border.getRoomType(), date
				, new java.sql.Date(border.getCheckoutDate().getTime()));
		String sql = "insert into hotelorder(orderNum,name,sex, telNum,bookDate, checkinDate,checkoutDate, roomType, bookNum, specialDesc,roomNum) values('"
				+ roomNo//订单号根据分配的房间号+入住日期生成 (year-1900,month-1,day
				+ date.getYear() 
				+ date.getMonth()
				+ date.getDay()
				+ "','"
				+ border.getName()
				+ "','"
				+ border.getSex()
				+ "','"
				+ border.getTelNum()
				+ "','"
				+ new java.sql.Date(border.getBookDate().getTime())
				+ "','"
				+ new java.sql.Date(border.getCheckinDate().getTime())
				+ "','"
				+ new java.sql.Date(border.getCheckoutDate().getTime())
				+ "','"
				+ border.getRoomType()
				+ "','"
				+ border.getBookNum()
				+ "','"
				+ border.getSpecialDesc()
				+ "','"
				+ roomNo				
				+ "')";
		System.out.println("generateRoomNoForOrder:"  + roomNo
				+ date.getYear() +"oooo"
				+ date.getMonth() +"iiii"
				+ date.getDay()
				+ "','");
		if (super.executeUpdate(sql)) {
			corder.setBookDate(border.getBookDate());
			corder.setBookNum("border.getBookNum()");
			corder.setCheckinDate(border.getCheckinDate());
			corder.setCheckoutDate(border.getCheckoutDate());
			corder.setName("border.getName()");
			corder.setRoomType("border.getRoomType()");
			corder.setSex("border.getSex()");
			corder.setSpecialDesc("border.getSpecialDesc()");
			corder.setTelNum("border.getTelNum()");
		}
		return corder;

	}
}

⌨️ 快捷键说明

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