📄 checkoutclick.java
字号:
import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class CheckOutClick extends DBAccess implements ActionListener//定义一个类实现退房功能
{
static JFrame fm;//控件的声明
static JLabel user;
static JTextField usertype;
static JLabel pwd;
static TextField password;
static JButton ok,cancel;
CheckOutClick()
{
super();
}
public void show(){
fm = new JFrame("旅客退房");
fm.setSize(300, 180);
fm.setLayout(null);
fm.setAlwaysOnTop(true);
fm.setResizable(false);
user=new JLabel("请输入旅客姓名:");
user.setBounds(40, 15, 100, 32);
usertype=new JTextField(10);
usertype.setBounds(150, 17, 70, 25);
fm.add(user);fm.add(usertype);
pwd=new JLabel("请输入您退房的房号:");
pwd.setBounds(10, 40, 130, 47);
password=new TextField(10);
password.setBounds(150, 50, 70, 25);
fm.add(pwd);
fm.add(password);
ok=new JButton("退房");
cancel=new JButton("取消");
ok.setBounds(50, 90, 70, 30);
cancel.setBounds(155, 90, 70, 30);
fm.add(cancel);
fm.add(ok);
fm.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
fm.dispose();
}
});
cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
fm.dispose();
}
});
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
String name=usertype.getText().trim().toString();//输入的姓名
String roomnum=password.getText().trim().toString();//房间号
try {
String status=getValue("select * from Room where RoomNum='"+roomnum+"'","Status");//房间状态
if(status.trim().equalsIgnoreCase("有客")|| status.trim().equalsIgnoreCase("预定"))
{
String status1=getValue("select * from Customer where 登记房号='"+roomnum+"'","姓名");//把预定或者入住的顾客姓名赋给status1
if(status1.trim().equalsIgnoreCase(name))
{
st.executeUpdate("update Customer set 离开时间=getdate() where 姓名='"+name+"'"); //写入离开时间
st.executeUpdate("update Customer set 用户状态='离开' where 姓名='"+name+"'"); //更新Customer表中旅客状态为离开
st.executeUpdate("update Room set Status='空闲' where RoomNum='"+roomnum+"'");//更新Room表中房间状态为空闲
st.executeUpdate("insert into HistoryCustomer ( 姓名 ,性别 ,年龄 ,生日 ,藉贯 ,工作单位,联系电话,身份证号码 ,登记房号,用户状态,预定时间 ,入住时间 ,离开时间 )select * from Customer where Customer.姓名='"+name+"'"); //将退店旅客信息加入历史信息表中
st.executeUpdate("delete Customer where 姓名='"+name+"'");//从Customer表中删除离店旅客信息
String RigisterDate=new String();//预定或者入住房间的日期
String CheckoutDate=new String();//退房日期
String CheckoutHour=new String();//入住的时间
if(status.trim().equalsIgnoreCase("预定")){
RigisterDate=getValue("select DATEPART(day , 预定时间) as date from HistoryCustomer where 姓名='"+name+"'","date").trim();
}
else{
RigisterDate=getValue("select DATEPART(day , 入住时间) as date from HistoryCustomer where 姓名='"+name+"'","date").trim(); //获取入店时间
}
CheckoutDate=getValue("select DATEPART(day , 离开时间) as date from HistoryCustomer where 姓名='"+name+"'","date").trim(); //获取离店天数
CheckoutHour=getValue("select DATEPART(hour , 离开时间) as date from HistoryCustomer where 姓名='"+name+"'","date").trim(); //获取离店小时
float day;
if(Integer.parseInt(CheckoutDate)==Integer.parseInt(RigisterDate))
day=1; //如果当天订当天退算是一天
else{
//退店日减去入住日
day=Integer.parseInt(CheckoutDate)-Integer.parseInt(RigisterDate);
if (Integer.parseInt(CheckoutHour)<=12)
day=(float) (day+0.5); //12点前退房算半价
else
day++; //12点后退房算全价
}
String dayCount=getValue("select * from Room where RoomNum='"+roomnum+"'","Price").trim();//房价(元/每天)
float fee=day*Integer.parseInt(dayCount);//顾客消费金额
st.executeUpdate("update HistoryCustomer set 消费金额='"+fee+"' where 姓名='"+name+"'"); //更新HistoryCustomer表中旅客的消费金额
javax.swing.JOptionPane.showMessageDialog(fm, "旅客 "+name+",您已经退掉"+roomnum+"号房间.您本次消费金额"+fee+"元.欢迎您下次入住本店!!");
fm.dispose();
}
else
{
JOptionPane.showMessageDialog(fm, "您没有入住本房间");
fm.dispose();
}
}
else
{
System.out.println("else");
JOptionPane.showMessageDialog(fm, "您没有入住本房间");
fm.dispose();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
fm.setLocation(
(screen.width - fm.getWidth()) / 2,
(screen.height - fm.getHeight()) / 2);
fm.setVisible(true);
}
public void actionPerformed(ActionEvent arg0) {
show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -