#include "Manager.h"
#include "items.h"
int Manager::select_Unreturn(string &date,Chaxun & se)//未归还书本查询
{
MYSQL_RES * point;
int bb[2]={14,14};
string aa="select items.book_name as '书名', concat(concat(loans.ISBN,'-'),char(ascii(FLOOR(loans.number/10)))) as '书号' from items,loans where items.ISBN=loans.ISBN and loans.return_time <= '";
aa=aa+date+"' and (loans.number-FLOOR(loans.number/10)*10)=1;";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询未归还书本成功!');";
//cout<<aa<<endl;
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::select_Unreturn_now(Chaxun & se)//超期未还查询
{
select_Unreturn(way->Now(),se);
return 0;
}
int Manager::item_Chang(Chaxun & se)//修改图书信息
{
Items item;
cout<<"**************************************"<<endl;
cout<<"* 请输入你要修改的图书的ISBN号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string isbn;
cin>>isbn;
item.Get_item_news(isbn,se);
item.Change_item_news();
item.Delete_item(isbn,se);
item.Input_item(se);
isbn="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员修改图书"+isbn+"信息成功!');";
way->Show_judge(se.Run(isbn.c_str()));
cout<<"**************************************"<<endl;
return 0;
}
int Manager::select_Library_one(Chaxun & se)//查询图书信息
{
cout<<"**************************************"<<endl;
cout<<"* 请输入你要查询的图书的书名 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string name;
cin>>name;
MYSQL_RES * point;
int bb[7]={14,14,5,14,12,4,4};
string aa="select book_name as '书名',ISBN,writer as '作者',publish as '出版社',publish_time as '出版日期', price as '价格',maxbook-number as '可借量' from items where book_name= '";
aa=aa+name+"';";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询图书《"+name+"》信息成功!');";
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::select_Library_all(Chaxun & se)//图书馆书籍总查询
{
MYSQL_RES * point;
int bb[7]={14,14,5,14,12,4,4};
string aa="select book_name as '书名',ISBN,writer as '作者',publish as '出版社',publish_time as '出版日期', price as '价格',maxbook-number as '可借量' from items";
point=se.Demand(aa.c_str());
way->Show_data(point,bb);
aa="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员查询图书馆所有图书信息成功!');";
way->Show_judge(se.Run(aa.c_str()));
return 0;
}
int Manager::return_Book(Chaxun & se)//还书操作
{
cout<<"**************************************"<<endl;
cout<<"* 请输入书本编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1;
cin>>id;
id1="select Read_id from loans where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
id="update loans set number = (FLOOR(number/10)*10 + 2) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
int i=se.Run(id.c_str());
way->Show_judge(i);
se.Demand_str(id1.c_str());
string id2(se.data);
delete se.data;
//cout<<id2<<endl;
int ii=id2.find('|',0);
id1=id2.substr(0,ii);
//cout<<id1<<endl;
id1="update reader set number = (number - 1) where read_id='"+id1+"';";
ii=se.Run(id1.c_str());
way->Show_judge(ii);
id1="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','管理员为读者"+id1+"还书成功!');";
way->Show_judge(se.Run(id1.c_str()));
return 0;
}
int Manager::lend_Book(Chaxun & se)//借书操作
{
cout<<"**************************************"<<endl;
cout<<"* 请输入借书学生学号及图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,book_id,id1,id2;
cin>>id>>book_id;
id2=book_id;
int i=book_id.rfind('-',book_id.length());
id1="update reader set number = number + 1 where read_id = '"+id+"';";
way->Show_judge(se.Run(id1.c_str()));
id1="select read_type from reader where read_id= '"+id+"';";
se.Demand_str(id1.c_str());
string aaa(se.data);
delete se.data;
aaa.erase(aaa.find('|',0));
int j=atoi(aaa.c_str());
id1=id2;
id1.erase(i);
id2.erase(0,i+1);
id1="insert into loans values ( '"+Manager_id+"','"+id+"','"+way->Now()+"','"+id1+"','"+id2+"1"+"','"+way->Now(0,1,0)+"');";
way->Show_judge(se.Run(id1.c_str()));
id1="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','"+id+"借书"+book_id+"成功!');";
way->Show_judge(se.Run(id1.c_str()));
cout<<"借阅成功!"<<endl;
return 0;
}
int Manager::pwd_Chang(Chaxun & se)//更改密码操作
{
string pwd1,pwd2;
cout<<"**************************************"<<endl;
cout<<"* 请输入你的新密码 *"<<endl;
cin>>pwd1;
cout<<"* 请再次确认密码 *"<<endl;
cin>>pwd2;
if(pwd1==pwd2)
{
pwd1="update manager set manager_pwd = '" + pwd1 +"' where manage_id= '"+Manager_id+"';";
way->Show_judge(se.Run(pwd1.c_str()));
pwd1="input into manager_do values ( '"+Manager_id+"','"+pwd1+"','"+way->Now_time()+"','将密码改为:"+pwd1+"成功!');";
way->Show_judge(se.Run(pwd1.c_str()));
}
else
pwd_Chang(se);
return 0;
}
int Manager::report_Lost(Chaxun & se)//图书挂失
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1;
cin>>id;
id1=id;
id="update loans set number= (FLOOR(number/10)*10 + 3) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
way->Show_judge(se.Run(id.c_str()));
id="input into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成图书:"+id1+"挂失成功!');";
way->Show_judge(se.Run(id.c_str()));
return 0;
}
int Manager::return_Lost(Chaxun & se)//挂失图书归还
{
cout<<"**************************************"<<endl;
cout<<"* 请输入图书编号 *"<<endl;
cout<<"*------------------------------------*"<<endl;
string id,id1,id2;
cin>>id;
id2=id;
id1="select Read_id from loans where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and (number-FLOOR(number/10)*10)=1;";
id="update loans set number= (FLOOR(number/10)*10 + 2) where concat(concat(ISBN,'-'),char(ascii(FLOOR(number/10))))='"+id+"' and floor(number - floor(number/10)*10)=3;";
//cout<<id<<endl;
way->Show_judge(se.Run(id.c_str()));
se.Demand_str(id1.c_str());
string id3(se.data);
delete se.data;
int ii=id3.find('|',0);
id1=id3.substr(0,ii);
id1="update reader set number = (number - 1) where read_id='"+id1+"';";
se.Run(id1.c_str());
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成图书:"+id2+"挂失成功!');";
way->Show_judge(se.Run(id.c_str()));
return 0;
}
int Manager::process_reserva_Book(Chaxun & se)//处理读者预约
{
string id="select reader_id as '读者ID',book_name as '书名' from reserve where state=0;";
MYSQL_RES *point;
point=se.Demand(id.c_str());
id="";
long j = mysql_num_fields(point);
MYSQL_ROW row;
while( row = mysql_fetch_row(point))
{
for(int l=0 ; l< j;l++)
{
if(row[l]==NULL || !strlen(row[l]))
cout<<"NULL";
else
{
if(l==0)
{
cout<<"*------------------------------------*"<<endl;
cout<<"读者:";
cout<<std::setw(14)<<row[l]<<" ";
}
else if(l==1)
{
cout<<"预约图书《"<<row[l]<<"》-是否同意?"<<endl;
cout<<"1.同意 2.不同意"<<endl;
int i;
cin>>i;
if(i==2)
{
id=id+string(row[0])+"|"+string(row[1])+"@";
id="insert into manager_do values ( '"+Manager_id+"','"+way->Now_time()+"','完成对读者:"+row[0]+"对图书《"+row[1]+"》的预约批准操作!