Commit 12d87215 by guanghui.cui

1、日志按类型分文件

2、菜单缓存
3、清理超过6个月数据库记录
parent d49d5be4
...@@ -69,15 +69,15 @@ struct TakeawayOrder ...@@ -69,15 +69,15 @@ struct TakeawayOrder
struct PrinterMenu struct PrinterMenu
{ {
std::string idMenu; std::string strMenuId;
int idPrinter; int iPrinterId;
std::string device; std::string strDevice;
}; };
struct PrintDevice struct PrintDevice
{ {
int id; int id;
std::string device; std::string strDevice;
}; };
#endif #endif
\ No newline at end of file
...@@ -80,7 +80,7 @@ int MySQLService::stop() ...@@ -80,7 +80,7 @@ int MySQLService::stop()
{ {
///关闭 mysql ///关闭 mysql
if (_connect.thread_id != 0) { if (_connect.thread_id != 0) {
LOG(ERROR) << "stop mysql: " << _connect.thread_id; LOG(INFO) << "stop mysql: " << _connect.thread_id;
db_close(); db_close();
} }
if(sqlStr!=NULL){ if(sqlStr!=NULL){
......
...@@ -3,8 +3,29 @@ ...@@ -3,8 +3,29 @@
TO_FILE = true TO_FILE = true
TO_STANDARD_OUTPUT = true TO_STANDARD_OUTPUT = true
FORMAT = "[%level | %datetime] | %msg" FORMAT = "[%level | %datetime] | %msg"
FILENAME = "./logs/log_%datetime{%Y%M%d}.log" FILENAME = "./logs/log.log"
MILLISECONDS_WIDTH = 3 MILLISECONDS_WIDTH = 3
PERFORMANCE_TRACKING = false PERFORMANCE_TRACKING = false
MAX_LOG_FILE_SIZE = 1048576 MAX_LOG_FILE_SIZE = 10485760
LOG_FLUSH_THRESHOLD = 10 LOG_FLUSH_THRESHOLD = 10
* TRACE:
FILENAME = "./logs/trace_log.log"
* DEBUG:
FILENAME = "./logs/debug_log.log"
* FATAL:
ENABLED = false
* ERROR:
FILENAME = "./logs/error_log.log"
* WARNING:
FILENAME = "./logs/warning_log.log"
* INFO:
FILENAME = "./logs/info_log.log"
* VERBOSE:
ENABLED = false
\ No newline at end of file
...@@ -88,6 +88,7 @@ int COrderInfo::Init() ...@@ -88,6 +88,7 @@ int COrderInfo::Init()
mysql_free_result(mysql->_result); mysql_free_result(mysql->_result);
} }
nErrCode = AddFMTable(); nErrCode = AddFMTable();
CleanOldData();
pthread_mutex_unlock(&mutex); //解锁 pthread_mutex_unlock(&mutex); //解锁
return nErrCode; return nErrCode;
} }
...@@ -360,7 +361,8 @@ int COrderInfo::AddFMTable() ...@@ -360,7 +361,8 @@ int COrderInfo::AddFMTable()
orderid VARCHAR(15) NOT NULL ,\ orderid VARCHAR(15) NOT NULL ,\
consume_num INT,\ consume_num INT,\
original_price INT,\ original_price INT,\
pid VARCHAR(20))"); pid VARCHAR(20),\
insert_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)");
nErrCode = mysql->exec_proc(); nErrCode = mysql->exec_proc();
//设置“非码外卖按钮” //设置“非码外卖按钮”
...@@ -455,7 +457,7 @@ bool COrderInfo::GetMenuPrinter() ...@@ -455,7 +457,7 @@ bool COrderInfo::GetMenuPrinter()
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.device=mysqlDevice->_row[1]; device.strDevice=mysqlDevice->_row[1];
vecDevices.push_back(device); vecDevices.push_back(device);
} }
mysql_free_result(mysqlDevice->_result); mysql_free_result(mysqlDevice->_result);
...@@ -468,11 +470,11 @@ bool COrderInfo::GetMenuPrinter() ...@@ -468,11 +470,11 @@ bool COrderInfo::GetMenuPrinter()
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.idMenu=mysql->_row[0]; menu.strMenuId=mysql->_row[0];
menu.idPrinter=atoi(mysql->_row[1]); menu.iPrinterId=atoi(mysql->_row[1]);
for(auto dev:vecDevices){ for(auto dev:vecDevices){
if(menu.idPrinter==dev.id){ if(menu.iPrinterId==dev.id){
menu.device=dev.device; menu.strDevice=dev.strDevice;
} }
} }
vecPrinterMenus.push_back(menu); vecPrinterMenus.push_back(menu);
...@@ -494,6 +496,15 @@ std::vector<PrinterMenu>& COrderInfo::GetPOSMenu() ...@@ -494,6 +496,15 @@ std::vector<PrinterMenu>& COrderInfo::GetPOSMenu()
return vecPrinterMenus; return vecPrinterMenus;
} }
void COrderInfo::CleanOldData()
{
sprintf(mysql->sqlStr,"%s","DELETE FROM fmTakeaway WHERE insert_time < DATE_SUB(CURDATE(),INTERVAL 6 MONTH);");
mysql->remove();
sprintf(mysql->sqlStr,"%s","DELETE FROM fmTakeaway_products WHERE insert_time < DATE_SUB(CURDATE(),INTERVAL 6 MONTH);");
mysql->remove();
LOG(INFO)<<"Clean up more than six months of data";
}
//需要导出的函数,即用户在外部可以调用的接口 //需要导出的函数,即用户在外部可以调用的接口
bool GetOperationObject(void** _RtObject) bool GetOperationObject(void** _RtObject)
{ {
......
...@@ -71,6 +71,7 @@ private: ...@@ -71,6 +71,7 @@ private:
std::vector<PrinterMenu> vecPrinterMenus; //菜单-打印机 类型对应表 std::vector<PrinterMenu> vecPrinterMenus; //菜单-打印机 类型对应表
char* UTF8ToLatin1(const char *str); char* UTF8ToLatin1(const char *str);
void CleanOldData(); //清理超过六个月数据
//获取菜品对应打印机及打印设备 //获取菜品对应打印机及打印设备
bool GetMenuPrinter(); bool GetMenuPrinter();
......
...@@ -264,6 +264,10 @@ void *FunTakeaway(void* lpParamter) ...@@ -264,6 +264,10 @@ void *FunTakeaway(void* lpParamter)
// LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device; // LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device;
// } // }
std::string resJson = GetPOSMenuJson(vecMenu); std::string resJson = GetPOSMenuJson(vecMenu);
//LOG(INFO)<<"res JOSN"<<resJson.data();
// statusCode=1001;
// msg="hello world";
// std::string strReturnJson = GetTakeawayResultJson(statusCode,msg.data());
socketSendData(resJson.data(), connect_fd); socketSendData(resJson.data(), connect_fd);
} }
LOG(INFO)<<"外卖:"<<order.order_index<<" 写数据库:"<<statusCode; LOG(INFO)<<"外卖:"<<order.order_index<<" 写数据库:"<<statusCode;
......
...@@ -204,8 +204,24 @@ std::string GetTakeawayResultJson(const int statuscode,const char* msg) ...@@ -204,8 +204,24 @@ std::string GetTakeawayResultJson(const int statuscode,const char* msg)
std::string GetPOSMenuJson(std::vector<PrinterMenu> &vecMenu) std::string GetPOSMenuJson(std::vector<PrinterMenu> &vecMenu)
{ {
for(auto menu:vecMenu){ rapidjson::Document document;
LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device; document.SetObject();
rapidjson::Document::AllocatorType& allocator = document.GetAllocator();
rapidjson::Value arrayJson(rapidjson::kArrayType);
for(int i=0;i<vecMenu.size();i++){
rapidjson::Value obj(rapidjson::kObjectType);
obj.AddMember("iPrinterId", vecMenu[i].iPrinterId, 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);
arrayJson.PushBack(obj, allocator);
} }
return "123456";
document.AddMember("MenuList", arrayJson, allocator);
rapidjson::StringBuffer buffer;
rapidjson::Writer<rapidjson::StringBuffer> writer(buffer);
document.Accept(writer);
return buffer.GetString();
} }
\ No newline at end of file
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