Commit 90d893ca by guanghui.cui

菜单缓存添加字段

parent 12d87215
...@@ -69,15 +69,24 @@ struct TakeawayOrder ...@@ -69,15 +69,24 @@ struct TakeawayOrder
struct PrinterMenu struct PrinterMenu
{ {
std::string strMenuId; std::string strMenuId; //菜品ID
int iPrinterId; int iPrinterId; //打印机ID(厨房)
std::string strDevice; std::string strDevice; //打印机端口(厨房)
int iBaud; //波特率(厨房)
std::string strTitle; //打印标题(厨房)
int iOrderPrinterId; //打印机ID(上菜单)
std::string strOrderDevice; //打印机端口(上菜单)
int iOrderBaud; //波特率(上菜单)
std::string strOrderTitle; //打印标题(上菜单)
}; };
struct PrintDevice struct PrintDevice
{ {
int id; int id; //打印机id
std::string strDevice; std::string strDevice; //打印端口
int iBaud; //波特率
int iPrintQ; //打印类型(上菜单、厨房等)
std::string strTitle; //打印标题
}; };
#endif #endif
\ No newline at end of file
#!/bin/bash #!/bin/bash
CMDClient="/home/fm/monitor" CMDName="/home/czl/monitor/bin/monitor"
PIDClient="./pidClient.txt" PIDFile="/home/czl/monitor/bin/pidMonitor.txt"
# --------------------------------------------------- # ---------------------------------------------------
# 启动函数 # 启动函数
function startClient { function startClient {
$CMDClient 2>&1 & $CMDName 2>&1 &
mypgmpid=$! mypgmpid=$!
echo $mypgmpid > $PIDClient echo $mypgmpid > $PIDFile
echo "startClient [ok]" echo "startClient [ok]"
} }
# 停止函数 # 停止函数
function stopClient { function stopClient {
kill `cat $PIDClient` kill `cat $PIDFile`
rm $PIDClient rm $PIDFile
echo "stopClient [ok]" echo "stopClient [ok]"
} }
# -------------------------------------------------- # --------------------------------------------------
echo "$CMDClient $1" echo "$CMDName $1"
case "$1" in case "$1" in
start) start)
if [ -f $PIDFile ] ; then
stopClient
sleep 4
fi
startClient startClient
;; ;;
restart) restart)
if [ -f $PIDClient ] ; then if [ -f $PIDFile ] ; then
stopClient stopClient
sleep 4 sleep 4
fi fi
...@@ -35,8 +39,8 @@ stop) ...@@ -35,8 +39,8 @@ stop)
esac esac
for (( c=0 ; ; c++ )) for (( c=0 ; ; c++ ))
do do
if [ -f $PIDClient ] ; then if [ -f $PIDFile ] ; then
mypgmpid=`cat $PIDClient` mypgmpid=`cat $PIDFile`
cmdex="ps uh -p$mypgmpid" cmdex="ps uh -p$mypgmpid"
psrtn=`$cmdex` psrtn=`$cmdex`
if [ -z "$psrtn" ]; then if [ -z "$psrtn" ]; then
......
...@@ -17,5 +17,5 @@ serverip=192.168.0.102 ...@@ -17,5 +17,5 @@ serverip=192.168.0.102
#守护进程脚本 #守护进程脚本
[SH] [SH]
monitor=/home/fm/daemon_monitor.sh start & #monitor=/home/fm/daemon_monitor.sh start &
takeout=/home/fm/daemon_takeout.sh start & takeout=/home/fm/daemon_takeout.sh start &
\ No newline at end of file
...@@ -452,29 +452,67 @@ bool COrderInfo::GetMenuPrinter() ...@@ -452,29 +452,67 @@ bool COrderInfo::GetMenuPrinter()
dbDevice.interactive_timeout=5; dbDevice.interactive_timeout=5;
MySQLService *mysqlDevice=new MySQLService(&dbDevice); MySQLService *mysqlDevice=new MySQLService(&dbDevice);
sprintf(mysqlDevice->sqlStr,"%s","SELECT Printer,Device FROM tbl_PrintDevice;"); sprintf(mysqlDevice->sqlStr,"%s","SELECT PrintQ,Name3,Printer FROM tbl_PrintQueue;");
nErrCode = mysqlDevice->query();
while ((mysqlDevice->_row = mysql_fetch_row(mysqlDevice->_result)) != NULL){
PrintDevice device;
device.iPrintQ=atoi(mysqlDevice->_row[0]);
device.strTitle=mysqlDevice->_row[1];
device.id=atoi(mysqlDevice->_row[2]);
vecDevices.push_back(device);
}
mysql_free_result(mysqlDevice->_result);
LOG(INFO)<<"-------------------------------------------------";
std::vector<PrintDevice> vecPrinterInfo;
sprintf(mysqlDevice->sqlStr,"%s","SELECT Printer,Device,BaudRate FROM tbl_PrintDevice;");
nErrCode = mysqlDevice->query(); nErrCode = mysqlDevice->query();
while ((mysqlDevice->_row = mysql_fetch_row(mysqlDevice->_result)) != NULL){ while ((mysqlDevice->_row = mysql_fetch_row(mysqlDevice->_result)) != NULL){
PrintDevice device; PrintDevice device;
device.id=atoi(mysqlDevice->_row[0]); device.id=atoi(mysqlDevice->_row[0]);
device.strDevice=mysqlDevice->_row[1]; device.strDevice=mysqlDevice->_row[1];
vecDevices.push_back(device); device.iBaud=atoi(mysqlDevice->_row[2]);
vecPrinterInfo.push_back(device);
}
for(auto &dev:vecDevices){
for(auto printer:vecPrinterInfo){
if(dev.id==printer.id){
dev.strDevice=printer.strDevice;
dev.iBaud=printer.iBaud;
}
} }
}
mysql_free_result(mysqlDevice->_result); mysql_free_result(mysqlDevice->_result);
delete mysqlDevice; delete mysqlDevice;
if(nErrCode==-1) if(nErrCode==-1)
return false; return false;
//查询菜单数据 //查询菜单数据
sprintf(mysql->sqlStr,"%s","SELECT Item,PrintQ1 FROM tbl_Menu;"); //PrintQ1:厨房打印机 PrintQ5:上菜单打印机
sprintf(mysql->sqlStr,"%s","SELECT Item,PrintQ1,PrintQ5 FROM tbl_Menu;");
nErrCode = mysql->query(); nErrCode = mysql->query();
while ((mysql->_row = mysql_fetch_row(mysql->_result)) != NULL){ while ((mysql->_row = mysql_fetch_row(mysql->_result)) != NULL){
PrinterMenu menu; PrinterMenu menu;
menu.strMenuId=mysql->_row[0]; menu.strMenuId=mysql->_row[0];
menu.iPrinterId=atoi(mysql->_row[1]); menu.iPrinterId=atoi(mysql->_row[1]);
for(auto dev:vecDevices){ for(auto dev:vecDevices){
if(menu.iPrinterId==dev.id){ if(menu.iPrinterId==dev.iPrintQ){
menu.strDevice=dev.strDevice; menu.strDevice=dev.strDevice;
menu.iBaud=dev.iBaud;
menu.strTitle=dev.strTitle;
break;
}
}
menu.iOrderPrinterId=atoi(mysql->_row[2]);
for(auto dev:vecDevices){
if(menu.iOrderPrinterId==dev.iPrintQ){
menu.strOrderDevice=dev.strDevice;
menu.iOrderBaud=dev.iBaud;
menu.strOrderTitle=dev.strTitle;
break;
} }
} }
vecPrinterMenus.push_back(menu); vecPrinterMenus.push_back(menu);
...@@ -485,14 +523,13 @@ bool COrderInfo::GetMenuPrinter() ...@@ -485,14 +523,13 @@ bool COrderInfo::GetMenuPrinter()
// for(auto menu:vecPrinterMenus){ // for(auto menu:vecPrinterMenus){
// LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device; // LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device;
// } // }
return true; return true;
} }
std::vector<PrinterMenu>& COrderInfo::GetPOSMenu() std::vector<PrinterMenu>& COrderInfo::GetPOSMenu()
{ {
if(!GetMenuPrinter()) if(!GetMenuPrinter())
LOG(INFO)<<"Get menu info failed!"; LOG(ERROR)<<"Get menu info failed!";
return vecPrinterMenus; return vecPrinterMenus;
} }
......
...@@ -259,7 +259,6 @@ void *FunTakeaway(void* lpParamter) ...@@ -259,7 +259,6 @@ void *FunTakeaway(void* lpParamter)
else if(order.fm_cmd == "get_menu"){ else if(order.fm_cmd == "get_menu"){
LOG(INFO)<<"------get pos menu------"; LOG(INFO)<<"------get pos menu------";
std::vector<PrinterMenu> &vecMenu = dbOperation->GetPOSMenu(); std::vector<PrinterMenu> &vecMenu = dbOperation->GetPOSMenu();
LOG(INFO)<<"------get pos menu------111111";
// for(auto menu:vecMenu){ // for(auto menu:vecMenu){
// LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device; // LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device;
// } // }
......
...@@ -215,6 +215,12 @@ std::string GetPOSMenuJson(std::vector<PrinterMenu> &vecMenu) ...@@ -215,6 +215,12 @@ std::string GetPOSMenuJson(std::vector<PrinterMenu> &vecMenu)
obj.AddMember("iPrinterId", vecMenu[i].iPrinterId, allocator); obj.AddMember("iPrinterId", vecMenu[i].iPrinterId, allocator);
obj.AddMember("strMenuId", rapidjson::Value(vecMenu[i].strMenuId.c_str(), document.GetAllocator()), allocator); obj.AddMember("strMenuId", rapidjson::Value(vecMenu[i].strMenuId.c_str(), document.GetAllocator()), allocator);
obj.AddMember("strDevice", rapidjson::Value(vecMenu[i].strDevice.c_str(), document.GetAllocator()), allocator); obj.AddMember("strDevice", rapidjson::Value(vecMenu[i].strDevice.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iBaud", vecMenu[i].iBaud, allocator);
obj.AddMember("strTitle", rapidjson::Value(vecMenu[i].strTitle.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iOrderPrinterId", vecMenu[i].iOrderPrinterId, allocator);
obj.AddMember("strOrderDevice", rapidjson::Value(vecMenu[i].strOrderDevice.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iOrderBaud", vecMenu[i].iOrderBaud, allocator);
obj.AddMember("strOrderTitle", rapidjson::Value(vecMenu[i].strOrderTitle.c_str(), document.GetAllocator()), allocator);
arrayJson.PushBack(obj, allocator); arrayJson.PushBack(obj, allocator);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment