Commit 0651bfaa by wuyang.zou

fix new feature:

1. Connnect Mysql DB Failed ,Will Always Retry Connect
2. Connect Reids Failed, Will Always Retry Connect

Version: 4.2021.1.8
parent 23082390
...@@ -40,6 +40,9 @@ FlowControl::FlowControl() ...@@ -40,6 +40,9 @@ FlowControl::FlowControl()
m_initSimProcOrderDBRet = true; //不使用顾默认赋值:true m_initSimProcOrderDBRet = true; //不使用顾默认赋值:true
m_initPrintSumBillPosDBRet = true; //不使用顾默认赋值:true m_initPrintSumBillPosDBRet = true; //不使用顾默认赋值:true
m_initGetAuthPosDBRet = true; //不使用顾默认赋值:true m_initGetAuthPosDBRet = true; //不使用顾默认赋值:true
m_initPmsGetStoreConfigDBRet = false;
m_initPmsOrdersDataRet = false;
m_initPmsRedisRet = false;
//初始化门店营业状态; //初始化门店营业状态;
m_eleStoreStatus = UNKNOWNSTORE; m_eleStoreStatus = UNKNOWNSTORE;
...@@ -79,24 +82,7 @@ FlowControl::FlowControl() ...@@ -79,24 +82,7 @@ FlowControl::FlowControl()
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::AutoConnection); connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::AutoConnection);
// 不用将订单录入POS顾无需使用此表来标识 正向销售单 / 退货单 是否需要入机; // 不用将订单录入POS顾无需使用此表来标识 正向销售单 / 退货单 是否需要入机;
/* // 两个数据库初始化 + 一个Redis初始化 转移到 _PmsMachineReqTryLogin()
SimProcOrderDB::getInstance();
m_initSimProcOrderDBRet = SimProcOrderDB::getInstance().initSimProcOrderDB();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::FlowControl() m_initSimProcOrderDBRet:--->>>>]")
<<m_initSimProcOrderDBRet;
*/
PmsGetStoreConfig::getInstance();
m_initPmsGetStoreConfigDBRet = PmsGetStoreConfig::getInstance().initPmsStoreConfigDB();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::FlowControl() m_initPmsGetStoreConfigDBRet:--->>>>]")
<<m_initPmsGetStoreConfigDBRet;
PmsOrdersData::getInstance();
m_initPmsOrdersDataRet = PmsOrdersData::getInstance().initPmsOrdersData();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::FlowControl() m_initPmsOrdersDataRet:--->>>>]")
<<m_initPmsOrdersDataRet;
QtRedisClient::getInstance().initQtRedisClient();
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/ /*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
localHttpServer = new LocalHttpServer(); localHttpServer = new LocalHttpServer();
...@@ -105,12 +91,10 @@ FlowControl::FlowControl() ...@@ -105,12 +91,10 @@ FlowControl::FlowControl()
//初始化登陆数据在登陆前;通过定时器触发登陆; //初始化登陆数据在登陆前;通过定时器触发登陆;
_InitDataBeforeLogin(); _InitDataBeforeLogin();
m_loginTimer->start(6*1000); m_loginTimer->start(10*1000);
m_notifyPmsPullTimer->start(1000*2); m_notifyPmsPullTimer->start(1000*2);
m_notifyPmsUpdateTimer->start(1000*2); m_notifyPmsUpdateTimer->start(1000*2);
//_TestRedis();
//_TestInsertOrderData();
} }
void FlowControl::_TestRedis(){ void FlowControl::_TestRedis(){
...@@ -2040,16 +2024,49 @@ bool FlowControl::_PmsMachineReqTryLogin() ...@@ -2040,16 +2024,49 @@ bool FlowControl::_PmsMachineReqTryLogin()
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
/********************* 从PMS Mysql数据库中读取门店信息 *****************************/ /********************* 从PMS Mysql数据库中读取门店信息 *****************************/
bool bGetStoreCnf = PmsGetStoreConfig::getInstance().GetStoreConfig(m_storeId,m_posId,m_cashierId,m_cashierName,m_pmsMachineNo); if ( !m_initPmsGetStoreConfigDBRet ) {
if(!bGetStoreCnf) { PmsGetStoreConfig::getInstance();
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() Failed:--->>>>>]");
m_initPmsGetStoreConfigDBRet = PmsGetStoreConfig::getInstance().initPmsStoreConfigDB(); m_initPmsGetStoreConfigDBRet = PmsGetStoreConfig::getInstance().initPmsStoreConfigDB();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsGetStoreConfigDBRet:--->>>>]") QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsGetStoreConfigDBRet:--->>>>]")
<<m_initPmsGetStoreConfigDBRet; <<m_initPmsGetStoreConfigDBRet;
return true; if ( !m_initPmsGetStoreConfigDBRet ) {
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsGetStoreConfigDBRet Retry Still Null, Wait Next...--->>>>>]");
return false;
}
}
if ( !m_initPmsOrdersDataRet ) {
PmsOrdersData::getInstance();
m_initPmsOrdersDataRet = PmsOrdersData::getInstance().initPmsOrdersData();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsOrdersDataRet:--->>>>]")
<<m_initPmsOrdersDataRet;
if ( !m_initPmsOrdersDataRet ) {
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsOrdersDataRet Retry Still Null, Wait Next...--->>>>>]");
return false;
}
}
bool bGetStoreCnf = PmsGetStoreConfig::getInstance().GetStoreConfig(m_storeId,m_posId,m_cashierId,m_cashierName,m_pmsMachineNo);
if(!bGetStoreCnf) {
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() GetStoreConfig Still Failed, Wait Next...--->>>>>]");
return false; // Wait Next LoginTimer Trigger Check Connect DB Success;
}
if ( !m_initPmsRedisRet ) {
m_initPmsRedisRet = QtRedisClient::getInstance().initQtRedisClient();
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsRedisRet:--->>>>]")
<<m_initPmsRedisRet;
if ( !m_initPmsRedisRet ) {
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---FlowControl::_PmsMachineReqTryLogin() m_initPmsRedisRet Retry Still Null, Wait Next...--->>>>>]");
return false; // Wait Next LoginTimer Trigger Check Connect Redis Success;
}
} }
//_TestRedis();
//_TestInsertOrderData();
// All Connect Success Will Login OMS;
if(m_bFirstRecvInfo || !m_bLoginResult) { if(m_bFirstRecvInfo || !m_bLoginResult) {
QString error = QString::fromLocal8Bit("FMOMS Plug-in Program Try Login On"); QString error = QString::fromLocal8Bit("FMOMS Plug-in Program Try Login On");
_Login(); _Login();
......
...@@ -165,6 +165,7 @@ private: ...@@ -165,6 +165,7 @@ private:
bool m_initGetAuthPosDBRet; bool m_initGetAuthPosDBRet;
bool m_initPmsGetStoreConfigDBRet; bool m_initPmsGetStoreConfigDBRet;
bool m_initPmsOrdersDataRet; bool m_initPmsOrdersDataRet;
bool m_initPmsRedisRet;
signals: signals:
// 发送信号给自己 做登陆 // 发送信号给自己 做登陆
......
...@@ -9,7 +9,10 @@ PmsGetStoreConfig::PmsGetStoreConfig() ...@@ -9,7 +9,10 @@ PmsGetStoreConfig::PmsGetStoreConfig()
bool PmsGetStoreConfig::initPmsStoreConfigDB() { bool PmsGetStoreConfig::initPmsStoreConfigDB() {
bool bRet = false; bool bRet = false;
if ( m_sqlDb.connectionName() != "PmsGetStoreConfig" ) {
m_sqlDb = QSqlDatabase::addDatabase("QMYSQL","PmsGetStoreConfig"); //数据库驱动类型为Mysql m_sqlDb = QSqlDatabase::addDatabase("QMYSQL","PmsGetStoreConfig"); //数据库驱动类型为Mysql
}
if(m_sqlDb.isValid()){ if(m_sqlDb.isValid()){
QLOG_INFO()<<"[<<<<---PmsGetStoreConfig driver is valid--->>>>]"; QLOG_INFO()<<"[<<<<---PmsGetStoreConfig driver is valid--->>>>]";
...@@ -17,7 +20,6 @@ bool PmsGetStoreConfig::initPmsStoreConfigDB() { ...@@ -17,7 +20,6 @@ bool PmsGetStoreConfig::initPmsStoreConfigDB() {
m_sqlDbPassword = ConfigManger::GetInstance().GetMysqlPasswordConfig(); m_sqlDbPassword = ConfigManger::GetInstance().GetMysqlPasswordConfig();
m_sqlDb.setHostName( m_sqlDbIp.length() ? m_sqlDbIp :"127.0.0.1"); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost) m_sqlDb.setHostName( m_sqlDbIp.length() ? m_sqlDbIp :"127.0.0.1"); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
//m_sqlDb.setHostName("localhost"); // 本地测试;
m_sqlDb.setPort(3306); //连接数据库端口号,与设置一致 m_sqlDb.setPort(3306); //连接数据库端口号,与设置一致
m_sqlDb.setDatabaseName("pms"); //连接数据库名,与设置一致 m_sqlDb.setDatabaseName("pms"); //连接数据库名,与设置一致
m_sqlDb.setUserName("oms"); //数据库用户名,与设置一致 m_sqlDb.setUserName("oms"); //数据库用户名,与设置一致
......
...@@ -14,16 +14,17 @@ PmsOrdersData::PmsOrdersData() { ...@@ -14,16 +14,17 @@ PmsOrdersData::PmsOrdersData() {
bool PmsOrdersData::initPmsOrdersData() { bool PmsOrdersData::initPmsOrdersData() {
bool bRet = false; bool bRet = false;
if ( m_sqlDb.connectionName() != "PmsOrdersData" ) {
m_sqlDb = QSqlDatabase::addDatabase("QMYSQL","PmsOrdersData"); //数据库驱动类型为Mysql m_sqlDb = QSqlDatabase::addDatabase("QMYSQL","PmsOrdersData"); //数据库驱动类型为Mysql
}
if ( m_sqlDb.isValid() ) { if ( m_sqlDb.isValid() ) {
bool supportTransact = m_sqlDb.driver()->hasFeature(QSqlDriver::Transactions); bool supportTransact = m_sqlDb.driver()->hasFeature(QSqlDriver::Transactions);
QLOG_INFO()<<"[<<<<---PmsOrdersData driver is valid and supportTransact: --->>>>]"<< supportTransact; QLOG_INFO()<<"[<<<<---PmsOrdersData driver is valid and supportTransact: --->>>>]"<< supportTransact;
m_sqlDbIp = ConfigManger::GetInstance().GetMysqlIpConfig(); m_sqlDbIp = ConfigManger::GetInstance().GetMysqlIpConfig();
m_sqlDbPassword = ConfigManger::GetInstance().GetMysqlPasswordConfig(); m_sqlDbPassword = ConfigManger::GetInstance().GetMysqlPasswordConfig();
m_sqlDb.setHostName( m_sqlDbIp.length() ? m_sqlDbIp :"127.0.0.1" ); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost) m_sqlDb.setHostName( m_sqlDbIp.length() ? m_sqlDbIp :"127.0.0.1" ); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
//m_sqlDb.setHostName("localhost"); //本地测试;
m_sqlDb.setPort(3306); //连接数据库端口号,与设置一致 m_sqlDb.setPort(3306); //连接数据库端口号,与设置一致
m_sqlDb.setDatabaseName("pms"); //连接数据库名,与设置一致 m_sqlDb.setDatabaseName("pms"); //连接数据库名,与设置一致
m_sqlDb.setUserName("oms"); //数据库用户名,与设置一致 m_sqlDb.setUserName("oms"); //数据库用户名,与设置一致
......
...@@ -10,9 +10,7 @@ QtRedisClient::QtRedisClient() ...@@ -10,9 +10,7 @@ QtRedisClient::QtRedisClient()
//m_redisPassword = ConfigManger::GetInstance().GetRedisPasswordConfig(); //m_redisPassword = ConfigManger::GetInstance().GetRedisPasswordConfig();
m_RedisConnectCnf.setHost(m_redisIp.length()? m_redisIp : "127.0.0.1"); m_RedisConnectCnf.setHost(m_redisIp.length()? m_redisIp : "127.0.0.1");
//m_RedisConnectCnf.setHost("127.0.0.1"); //本地测试;
m_RedisConnectCnf.setPort(6379); m_RedisConnectCnf.setPort(6379);
//m_RedisConnectCnf.setAuth("123456"); //本地测试;
m_pRedisConnectOperat = new RedisClient::Connection(m_RedisConnectCnf); m_pRedisConnectOperat = new RedisClient::Connection(m_RedisConnectCnf);
if (!m_pRedisConnectOperat){ if (!m_pRedisConnectOperat){
QLOG_INFO()<<"[<<<<---QtRedisClient:: ConStructure QtRedisClient m_pRedisConnectOperat Failed--->>>>]"; QLOG_INFO()<<"[<<<<---QtRedisClient:: ConStructure QtRedisClient m_pRedisConnectOperat Failed--->>>>]";
...@@ -28,9 +26,16 @@ QtRedisClient &QtRedisClient::getInstance() ...@@ -28,9 +26,16 @@ QtRedisClient &QtRedisClient::getInstance()
bool QtRedisClient::initQtRedisClient(){ bool QtRedisClient::initQtRedisClient(){
bool initRedisRet = false; bool initRedisRet = false;
if(!m_pRedisConnectOperat){ if(!m_pRedisConnectOperat){
QLOG_ERROR()<<"[<<<<---QtRedisClient::initQtRedisClient m_pRedisConnectOperat is NULL--->>>>]"; QLOG_ERROR()<<"[<<<<---QtRedisClient::initQtRedisClient m_pRedisConnectOperat is NULL, Will Retry Connect Redis--->>>>]";
m_RedisConnectCnf.setHost(m_redisIp.length()? m_redisIp : "127.0.0.1");
m_RedisConnectCnf.setPort(6379);
m_pRedisConnectOperat = new RedisClient::Connection(m_RedisConnectCnf);
if (!m_pRedisConnectOperat){
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient m_pRedisConnectOperat Retry Connect Redis Failed --->>>>]";
return initRedisRet; return initRedisRet;
} }
}
QList<QByteArray> cmdInfoAllTest; QList<QByteArray> cmdInfoAllTest;
cmdInfoAllTest.append("INFO"); cmdInfoAllTest.append("INFO");
cmdInfoAllTest.append("ALL"); cmdInfoAllTest.append("ALL");
......
...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico" ...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif #endif
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2020,8,10 FILEVERSION 4,2021,1,8
PRODUCTVERSION 4,2020,8,10 PRODUCTVERSION 4,2021,1,8
//*************************************************************************// //*************************************************************************//
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
...@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO ...@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd." VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "PMS Plugin Application" VALUE "FileDescription", "PMS Plugin Application"
VALUE "InternalName", "PmsPlugin.exe" VALUE "InternalName", "PmsPlugin.exe"
VALUE "LegalCopyright", "Copyright (C)2014-2020" VALUE "LegalCopyright", "Copyright (C)2014-2021"
VALUE "OriginalFilename", "PmsPlugin.exe" VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin" VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2020.8.10" VALUE "ProductVersion", "4.2021.1.8"
VALUE "FileVersion", "4.2020.8.10" VALUE "FileVersion", "4.2021.1.8"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
//#define APP_VERSION "4.2020.526.1" //#define APP_VERSION "4.2020.526.1"
//#define APP_VERSION "4.2020.6.29" //#define APP_VERSION "4.2020.6.29"
//#define APP_VERSION "4.2020.6.30" //#define APP_VERSION "4.2020.6.30"
#define APP_VERSION "4.2020.8.10" //#define APP_VERSION "4.2020.8.10"
#define APP_VERSION "4.2021.1.8"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn" #define SERVER_PASSWORD "posoperator@freemud.cn"
......
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