diff --git a/customer.cpp b/customer.cpp index 7e42d54..786ebd8 100644 --- a/customer.cpp +++ b/customer.cpp @@ -1,14 +1,13 @@ #include "customer.h" #include "ui_customer.h" -/* - * ID从数据库的提取 - */ customer::customer(QWidget *parent) : QMainWindow(parent), ui(new Ui::customer) { init(); + ResetMessage *RM = new ResetMessage; + RM->getid(id); } @@ -26,8 +25,7 @@ void customer::paintEvent(QPaintEvent*) void customer::init()//初始化 { - id = "123"; - //id = login->ui->lineEdit_account->text();崩溃 + account_roomaccount = 0;//账户订房的数量 ui->setupUi(this); this->setFixedSize(1920,1080); this->setWindowTitle("用户界面"); @@ -54,6 +52,10 @@ void customer::init()//初始化 ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//表格不可编辑 } +void customer::setid(QString str){ + id = str; +} + void customer::setmousehand()//鼠标小手 完成 { ui->search->setCursor(QCursor(Qt::PointingHandCursor)); @@ -67,6 +69,7 @@ void customer::on_checking_out1_clicked()//退房 完成 { int c = row;//总之是获取选中的行 if( ui->tableWidget->model()->index(c,6).data().toString() == id ){ + account_roomaccount = 0; QString QS = "空闲"; QSqlQuery query((db)); @@ -78,18 +81,20 @@ void customer::on_checking_out1_clicked()//退房 完成 query.prepare("UPDATE room set status=:QS where room_num = :num"); query.bindValue(":QS",QS); query.bindValue(":num",num); - query.exec(); + query.exec();//开始操作数据库 query.prepare("UPDATE room set checkout_time=NULL where room_num = :num"); query.bindValue(":num",num); query.exec(); query.prepare("UPDATE room set customer_id=NULL where room_num = :num"); query.bindValue(":num",num); - query.exec();//开始操作数据库 + query.exec(); + query.prepare("UPDATE customer set room_num=NULL where account = :a"); + query.bindValue(":a",id); + query.exec(); if(c >= 0){ QTableWidgetItem *Q1 = new QTableWidgetItem(QS); ui->tableWidget->setItem(c,4,Q1); - ui->tableWidget->setItem(c,5,NULL); ui->tableWidget->setItem(c,6,NULL); Q1->setTextAlignment(Qt::AlignCenter); QMessageBox::about(this,"提示","退房成功"); @@ -105,37 +110,46 @@ void customer::on_checking_out1_clicked()//退房 完成 void customer::on_Reservation1_clicked()//订房 完成 { int c = row;//总之是获取选中的行 - QString QS = "使用"; - QSqlQuery query((db)); - QString n = 0; - n = ui->tableWidget->model()->index(c,0).data().toString(); - QDate d = QDate::currentDate(); - - - int num = n.toInt(); - query.prepare("UPDATE room set status=:QS where room_num = :num"); - query.bindValue(":QS",QS); - query.bindValue(":num",num); - query.exec(); - query.prepare("UPDATE room set checkout_time=DATE_ADD(:d, INTERVAL 1 DAY) where room_num = :num"); - query.bindValue(":d",d); - query.bindValue(":num",num); - query.exec(); - query.prepare("UPDATE room set customer_id=:id where room_num = :num"); - query.bindValue(":id",id); - query.bindValue(":num",num); - query.exec(); - - if(c>=0){ - QTableWidgetItem *Q1 = new QTableWidgetItem(QS); - ui->tableWidget->setItem(c,4,Q1); - Q1->setTextAlignment(Qt::AlignCenter); - - QMessageBox::about(this,"提示","订房成功"); - ui->Reservation1->setEnabled(false); - ui->checking_out1->setEnabled(true); - } + if(account_roomaccount == 0){ + account_roomaccount = 1; + QString QS = "使用"; + QSqlQuery query((db)); + QString n = 0; + n = ui->tableWidget->model()->index(c,0).data().toString(); + QDate d = QDate::currentDate(); + + int num = n.toInt(); + query.prepare("UPDATE room set status=:QS where room_num = :num"); + query.bindValue(":QS",QS); + query.bindValue(":num",num); + query.exec(); + query.prepare("UPDATE room set checkout_time=DATE_ADD(:d, INTERVAL 1 DAY) where room_num = :num"); + query.bindValue(":d",d); + query.bindValue(":num",num); + query.exec(); + query.prepare("UPDATE room set customer_id=:id where room_num = :num"); + query.bindValue(":id",id); + query.bindValue(":num",num); + query.exec(); + query.prepare("UPDATE customer set room_num=:rn where account = :a"); + query.bindValue(":a",id); + query.bindValue(":rn",num); + query.exec(); + + if(c>=0){ + QTableWidgetItem *Q1 = new QTableWidgetItem(QS); + QTableWidgetItem *Q3 = new QTableWidgetItem(id); + ui->tableWidget->setItem(c,4,Q1); + ui->tableWidget->setItem(c,6,Q3); + Q1->setTextAlignment(Qt::AlignCenter); + + QMessageBox::about(this,"提示","订房成功"); + ui->Reservation1->setEnabled(false); + ui->checking_out1->setEnabled(true); + } + } + else QMessageBox::about(this,"警告","一个账户只能预定一个房间"); } @@ -197,7 +211,7 @@ void customer::flush_data(QVector>&userinfo)//插入数据 完 QW->setTextAlignment(Qt::AlignCenter);//设置中心对齐 } } - //ui->tableWidget->setHorizontalHeaderLabels({"房间号","房间类型","是否带窗","负责人","状态"});//设置表头 + ui->tableWidget->setHorizontalHeaderLabels({"房间号","房间类型","是否带窗","负责人","状态"});//设置表头 } void customer::on_tableWidget_itemClicked(QTableWidgetItem *item)//点击表格格子 获取行数 完成 diff --git a/customer.h b/customer.h index 5a0f9b7..12e36dd 100644 --- a/customer.h +++ b/customer.h @@ -1,7 +1,6 @@ #ifndef CUSTOMER_H #define CUSTOMER_H -#include "login.h" #include #include #include @@ -10,7 +9,6 @@ #include #include #include -#include namespace Ui { class customer; @@ -28,6 +26,7 @@ public: void flush_data(QVector>&userinfo); bool find_byname(QString name); void setmousehand(); + void setid(QString str); void init(); private slots: @@ -56,8 +55,8 @@ private: QSqlDatabase db; QVector>userinfo; int row; - login *login; QString id; + int account_roomaccount; }; #endif // CUSTOMER_H diff --git a/customer.ui b/customer.ui index 747b144..f1af272 100644 --- a/customer.ui +++ b/customer.ui @@ -118,7 +118,7 @@ color:rgb(255, 255, 255) - 房间检索-> + 房间检索: Qt::AlignCenter @@ -211,7 +211,7 @@ color: rgb(255, 255, 255); image:url(:/image/icon/resetcode.png); -background-color: rgb(108, 162, 162); +background-color: rgba(0, 0, 0, 0); @@ -254,19 +254,6 @@ background-color: rgb(108, 162, 162); - - - - color:rgb(255, 255, 255) - - - 交替背景色 - - - true - - - diff --git a/resetmessage.cpp b/resetmessage.cpp index e2d365d..dff2247 100644 --- a/resetmessage.cpp +++ b/resetmessage.cpp @@ -1,6 +1,6 @@ #include "resetmessage.h" -#include "qicon.h" -#include "qlabel.h" +#include "QIcon" +#include "QLabel" #include "ui_resetmessage.h" ResetMessage::ResetMessage(QWidget *parent) : @@ -12,12 +12,7 @@ ResetMessage::ResetMessage(QWidget *parent) : this->setWindowIcon(logo); setWindowTitle("宜客酒店"); this->setFixedSize(800,600); - /* - bg = new QLabel(this); - bg->setScaledContents(true); - bg->setPixmap(QPixmap(":/image/bg/sea.jpg"));//未完 - bg->lower(); - */ + QPalette q;//调色板 q.setBrush(QPalette::Window,QBrush(QPixmap("/image/bg/sea,jpg"))); this->setPalette(q); @@ -44,11 +39,6 @@ ResetMessage::~ResetMessage() delete ui; } -void ResetMessage::paintEvent(QPaintEvent*) -{ - //bg->resize(ui->ResetMessage->size()); -} - bool ResetMessage::verify(int x){ if(x==2){//密码判别 if(ui->code->text().size()<6||ui->code->text().size()>16){ @@ -105,11 +95,15 @@ void ResetMessage::on_pushButton_clicked() QMessageBox::warning(this, tr("提示"), tr("请检查身份证信息是否符合规范并重新输入!\n请注意X为大写字母")); }else{ sign_in(); - QMessageBox::information(this, tr("提示"), tr("注册成功!")); + QMessageBox::information(this, tr("提示"), tr("更新成功!")); this->hide(); } } +void ResetMessage::getid(QString str){ + id = str; +} + void ResetMessage::sign_in(){ QString gender; if(ui->radioButton_man->isChecked()){ @@ -117,8 +111,10 @@ void ResetMessage::sign_in(){ }else{ gender = "女"; } - QString sql = QString("INSERT INTO customer VALUES('%2','%3','%4','%5',NULL);").arg(ui->code->text()).arg(ui->name->text()). - arg(gender).arg(ui->ID_card->text()); + QSqlQuery query; - query.exec(sql); + query.prepare("UPDATE customer set password = :p where account = :a"); + query.bindValue(":p",ui->code->text()); + query.bindValue(":a",id); + query.exec(); } diff --git a/resetmessage.h b/resetmessage.h index ce1f8a5..340e235 100644 --- a/resetmessage.h +++ b/resetmessage.h @@ -20,8 +20,9 @@ class ResetMessage : public QDialog public: explicit ResetMessage(QWidget *parent = nullptr); ~ResetMessage(); + void getid(QString str); protected: - void paintEvent(QPaintEvent*); + private: Ui::ResetMessage *ui; @@ -29,6 +30,7 @@ private: void sign_in(); QLabel *bg; QSqlDatabase db; + QString id; private slots: void on_pushButton_clicked(); diff --git a/resetmessage.ui b/resetmessage.ui index b741bd6..47609e6 100644 --- a/resetmessage.ui +++ b/resetmessage.ui @@ -34,7 +34,7 @@ color: rgb(255, 255, 127); - 密码 + 新密码 Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter