|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
#include "administration.h"
|
|
|
|
|
#include "ui_administration.h"
|
|
|
|
|
#include "registers.h"
|
|
|
|
|
#include "add_administration.h"
|
|
|
|
|
|
|
|
|
|
administration::administration(QWidget *parent) :
|
|
|
|
|
QMainWindow(parent),
|
|
|
|
@ -37,11 +38,16 @@ void administration::paintEvent(QPaintEvent*)
|
|
|
|
|
ui->AcounTable->hide();
|
|
|
|
|
ui->HotelTable->hide();
|
|
|
|
|
on_Hman_clicked();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void administration::init_account(){
|
|
|
|
|
findall2();
|
|
|
|
|
flush_data2(userinfo);
|
|
|
|
|
value_customer = ui->AcounTable->model()->rowCount();
|
|
|
|
|
findall3();
|
|
|
|
|
flush_data3(userinfo);
|
|
|
|
|
|
|
|
|
|
ui->AcounTable->setHorizontalHeaderLabels({"客户账号","密码","姓名","性别","身份证"});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -115,19 +121,14 @@ void administration::on_Add_clicked()
|
|
|
|
|
else if(tool == 1){
|
|
|
|
|
int cols=ui->HotelTable->columnCount();
|
|
|
|
|
int rows=ui->HotelTable->rowCount();
|
|
|
|
|
qDebug()<<rows;
|
|
|
|
|
ui->HotelTable->insertRow(rows);
|
|
|
|
|
for(int i=0;i<cols;i++)
|
|
|
|
|
{
|
|
|
|
|
ui->HotelTable->setItem(rows,i,new QTableWidgetItem(""));
|
|
|
|
|
}
|
|
|
|
|
ui->HotelTable->selectRow(rows);
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
query.prepare("INSERT into room VALUES(:n,1,1,1,1,NULL,NULL);");
|
|
|
|
|
query.bindValue(":n",QRandomGenerator::global()->bounded(10000));
|
|
|
|
|
query.exec();
|
|
|
|
|
QMessageBox::information(this,tr("提示"),("添加成功"));
|
|
|
|
|
init_hotel();
|
|
|
|
|
add_administration *ad = new add_administration;
|
|
|
|
|
ad->show();
|
|
|
|
|
}
|
|
|
|
|
else QMessageBox::about(this,"警告","出错");
|
|
|
|
|
}
|
|
|
|
@ -136,17 +137,36 @@ void administration::on_Add_clicked()
|
|
|
|
|
void administration::on_Del_clicked()
|
|
|
|
|
{
|
|
|
|
|
if(tool == 0){
|
|
|
|
|
//if(row <= value_customer-userinfo.size()+1){
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
QTableWidgetItem *item = ui->AcounTable->currentItem();
|
|
|
|
|
QString n = 0;
|
|
|
|
|
n = ui->AcounTable->model()->index(item->row(),0).data().toString();//n是房间号
|
|
|
|
|
n = ui->AcounTable->model()->index(item->row(),0).data().toString();
|
|
|
|
|
int num = n.toInt();
|
|
|
|
|
query.prepare("DELETE from customer where account = :num ");
|
|
|
|
|
query.bindValue(":num",num);
|
|
|
|
|
query.bindValue(":num",n);
|
|
|
|
|
query.exec();
|
|
|
|
|
query.prepare("DELETE from employee where account = :num ");
|
|
|
|
|
query.bindValue(":num",n);
|
|
|
|
|
query.exec();
|
|
|
|
|
if(item==Q_NULLPTR)return;
|
|
|
|
|
ui->AcounTable->removeRow(item->row());
|
|
|
|
|
QMessageBox::information(this,tr("提示"),("删除成功"));
|
|
|
|
|
init_account();
|
|
|
|
|
// }
|
|
|
|
|
/* else if(row > value_customer-userinfo.size()){
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
QTableWidgetItem *item = ui->AcounTable->currentItem();
|
|
|
|
|
QString n = 0;
|
|
|
|
|
n = ui->AcounTable->model()->index(item->row(),0).data().toString();//n是房间号
|
|
|
|
|
int num = n.toInt();
|
|
|
|
|
|
|
|
|
|
if(item==Q_NULLPTR)return;
|
|
|
|
|
ui->AcounTable->removeRow(item->row());
|
|
|
|
|
QMessageBox::information(this,tr("提示"),("删除成功"));
|
|
|
|
|
init_account();
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(tool == 1){
|
|
|
|
@ -167,11 +187,12 @@ void administration::on_Del_clicked()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//修改操作//???
|
|
|
|
|
//修改操作
|
|
|
|
|
void administration::on_Modify_clicked()
|
|
|
|
|
{
|
|
|
|
|
int c = row;
|
|
|
|
|
if(tool == 0){
|
|
|
|
|
//if(row <= value_customer-userinfo.size()){
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
QString n1 = 0;
|
|
|
|
|
n1 = ui->AcounTable->model()->index(c,0).data().toString();//n是房间号
|
|
|
|
@ -180,27 +201,43 @@ void administration::on_Modify_clicked()
|
|
|
|
|
n2 = ui->AcounTable->model()->index(c,1).data().toString();
|
|
|
|
|
query.prepare("UPDATE customer set password=:QS where account = :num");
|
|
|
|
|
query.bindValue(":QS",n2);
|
|
|
|
|
query.bindValue(":num",num);
|
|
|
|
|
query.bindValue(":num",n1);
|
|
|
|
|
query.exec();
|
|
|
|
|
QString n3 = 0;
|
|
|
|
|
n3 = ui->AcounTable->model()->index(c,2).data().toString();
|
|
|
|
|
query.prepare("UPDATE customer set name=:QS where account = :num");
|
|
|
|
|
query.bindValue(":QS",n3);
|
|
|
|
|
query.bindValue(":num",num);
|
|
|
|
|
query.bindValue(":num",n1);
|
|
|
|
|
query.exec();
|
|
|
|
|
QString n4 = 0;
|
|
|
|
|
n4 = ui->AcounTable->model()->index(c,3).data().toString();
|
|
|
|
|
query.prepare("UPDATE customer set gender=:QS where account = :num");
|
|
|
|
|
query.bindValue(":QS",n4);
|
|
|
|
|
query.bindValue(":num",num);
|
|
|
|
|
query.bindValue(":num",n1);
|
|
|
|
|
query.exec();
|
|
|
|
|
QString n5 = 0;
|
|
|
|
|
n5 = ui->AcounTable->model()->index(c,4).data().toString();
|
|
|
|
|
query.prepare("UPDATE customer set id=:QS where account = :num");
|
|
|
|
|
query.bindValue(":QS",n5);
|
|
|
|
|
query.bindValue(":num",num);
|
|
|
|
|
query.bindValue(":num",n1);
|
|
|
|
|
query.exec();
|
|
|
|
|
query.prepare("UPDATE employee set password=:QS where account = :num");
|
|
|
|
|
query.bindValue(":QS",n2);
|
|
|
|
|
query.bindValue(":num",n1);
|
|
|
|
|
query.exec();
|
|
|
|
|
init_account();
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
/* else if(row > value_customer-userinfo.size()){
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
QString n1 = 0;
|
|
|
|
|
n1 = ui->AcounTable->model()->index(row,0).data().toString();//n是房间号
|
|
|
|
|
num = n1.toInt();
|
|
|
|
|
QString n2 = "0";
|
|
|
|
|
n2 = ui->AcounTable->model()->index(row,1).data().toString();
|
|
|
|
|
|
|
|
|
|
init_account();*/
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(tool == 1){
|
|
|
|
@ -274,6 +311,33 @@ void administration::flush_data(QVector<QVector<QString>>&userinfo)//插入数
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void administration::flush_data3(QVector<QVector<QString>>&userinfo)//插入数据 完成
|
|
|
|
|
{
|
|
|
|
|
//ui->AcounTable->clear();
|
|
|
|
|
if(!userinfo.size())return;
|
|
|
|
|
ui->AcounTable->setRowCount(userinfo.size()+ui->AcounTable->model()->rowCount());//行
|
|
|
|
|
//ui->AcounTable->setColumnCount(5);//列
|
|
|
|
|
for(int i=0;i<userinfo.size();i++)
|
|
|
|
|
{
|
|
|
|
|
for(int j=0;j<userinfo[0].size();j++)
|
|
|
|
|
{
|
|
|
|
|
QTableWidgetItem *QW = new QTableWidgetItem(userinfo[i][j]);
|
|
|
|
|
QTableWidgetItem *QW2 = new QTableWidgetItem("/");
|
|
|
|
|
QTableWidgetItem *QW3 = new QTableWidgetItem("/");
|
|
|
|
|
QTableWidgetItem *QW4 = new QTableWidgetItem("/");
|
|
|
|
|
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),j,QW);//行 列 内容
|
|
|
|
|
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),2,QW2);
|
|
|
|
|
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),3,QW3);
|
|
|
|
|
ui->AcounTable->setItem(i+ui->AcounTable->model()->rowCount()-userinfo.size(),4,QW4);
|
|
|
|
|
QW->setTextAlignment(Qt::AlignCenter);//设置中心对齐
|
|
|
|
|
QW2->setTextAlignment(Qt::AlignCenter);
|
|
|
|
|
QW3->setTextAlignment(Qt::AlignCenter);
|
|
|
|
|
QW4->setTextAlignment(Qt::AlignCenter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//搜索
|
|
|
|
|
void administration::findall()//显示全部 完成
|
|
|
|
|
{
|
|
|
|
@ -313,35 +377,60 @@ void administration::findall2()//显示全部 完成
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void administration::on_Search_clicked()
|
|
|
|
|
void administration::findall3()//显示全部 完成
|
|
|
|
|
{
|
|
|
|
|
userinfo.clear();//清楚存储向量rec的向量的数据
|
|
|
|
|
QSqlQuery query((db));
|
|
|
|
|
query.prepare("select * from employee");
|
|
|
|
|
|
|
|
|
|
if(query.exec())
|
|
|
|
|
{
|
|
|
|
|
while (query.next()) {
|
|
|
|
|
QVector<QString>rec;
|
|
|
|
|
for(int i=0;i<query.record().count();i++)
|
|
|
|
|
{
|
|
|
|
|
rec.push_back(query.record().value(i).toString());//将sql搜索到的一行记录塞入rec向量
|
|
|
|
|
}
|
|
|
|
|
userinfo.push_back(rec);//将rec向量塞入向量
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void administration::on_Search_clicked()
|
|
|
|
|
{
|
|
|
|
|
QString number=ui->lineEdit->text();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(number == NULL && tool == 0){
|
|
|
|
|
findall2();
|
|
|
|
|
flush_data2(userinfo);
|
|
|
|
|
init_account();
|
|
|
|
|
}
|
|
|
|
|
else if(number == NULL && tool == 1){
|
|
|
|
|
findall();
|
|
|
|
|
flush_data(userinfo);
|
|
|
|
|
init_hotel();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(find_byname2(number) && tool == 0)
|
|
|
|
|
{
|
|
|
|
|
flush_data2(userinfo);
|
|
|
|
|
userinfo.clear();
|
|
|
|
|
if(ui->AcounTable->model()->index(0,0).data().toString() != NULL)condition_search = 1;
|
|
|
|
|
|
|
|
|
|
if(condition_search == 0 && find_byname3(number) && tool == 0){
|
|
|
|
|
flush_data2(userinfo);
|
|
|
|
|
userinfo.clear();
|
|
|
|
|
}
|
|
|
|
|
condition_search = 0;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else if(find_byname(number) && tool == 1){
|
|
|
|
|
flush_data(userinfo);
|
|
|
|
|
userinfo.clear();
|
|
|
|
|
}
|
|
|
|
|
else QMessageBox::critical(nullptr, "错误", "未知的错误", QMessageBox::Retry);
|
|
|
|
|
ui->AcounTable->setHorizontalHeaderLabels({"客户账号","密码","姓名","性别","身份证"});
|
|
|
|
|
ui->HotelTable->setHorizontalHeaderLabels({"房间号","房间类型","是否带窗","负责人","状态"});//设置表头
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool administration::find_byname(QString n)//搜索 完成
|
|
|
|
|
{
|
|
|
|
|
int number = n.toInt();
|
|
|
|
@ -360,7 +449,6 @@ bool administration::find_byname(QString n)//搜索 完成
|
|
|
|
|
rec.push_back(query.record().value("status").toString());
|
|
|
|
|
rec.push_back(query.record().value("checkout_time").toString());
|
|
|
|
|
rec.push_back(query.record().value("customer_id").toString());
|
|
|
|
|
|
|
|
|
|
userinfo.push_back(rec);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
@ -390,6 +478,25 @@ bool administration::find_byname2(QString n)//搜索
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool administration::find_byname3(QString n)//搜索
|
|
|
|
|
{
|
|
|
|
|
userinfo.clear();
|
|
|
|
|
QSqlQuery query(db);
|
|
|
|
|
query.prepare("select * from employee where account like :number;");//以开头搜索 不行
|
|
|
|
|
query.bindValue(":number",n);
|
|
|
|
|
if(query.exec())
|
|
|
|
|
{
|
|
|
|
|
while (query.next()) {
|
|
|
|
|
QVector<QString>rec;
|
|
|
|
|
rec.push_back(query.record().value("account").toString());
|
|
|
|
|
rec.push_back(query.record().value("password").toString());
|
|
|
|
|
userinfo.push_back(rec);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void administration::on_AcounTable_itemClicked(QTableWidgetItem *item)
|
|
|
|
|
{
|
|
|
|
|
row = item->row();
|
|
|
|
@ -403,3 +510,4 @@ void administration::on_HotelTable_itemClicked(QTableWidgetItem *item)
|
|
|
|
|
qDebug() << "当前选中行: " << row;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|