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