Commit d0b8fbed by wuyang.zou

fix Redis Server offline ,then recover, then use,then main pthread dump

check order object data right
parent 52084c97
......@@ -165,7 +165,7 @@ void FlowControl::_TestInsertOrderData(){
bool FlowControl::_AppendOrderInfo2Redis(const OrderObject* orderObject) {
QLOG_INFO() << QString("[<<<<---FlowControl:: _AppendOrderInfo2Redis() orderId:%1 Begin --->>>>]").arg(orderObject->id);
QLOG_INFO() << QString("[<<<<---FlowControl:: _AppendOrderInfo2Redis() orderId:%1 Begin...... --->>>>]").arg(orderObject->id);
return QtRedisClient::getInstance().pushOrder2Redis(orderObject);
}
......@@ -499,6 +499,10 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{
OrderObject *orderObject = nullptr;
bool bRetOrderUpdateMutex = false;
if ( ! jsonObject.contains(JSON_ID) ) {
QLOG_ERROR() << QString("[<<<<---FlowControl::_OrderAnalysis: Json Object No Has Import Key -> OrderId , JsonObject Is Illegal , Abandon This Object --->>>>]") << jsonObject;
return ;
}
orderObject = m_FmOrdersMap.value(jsonObject[JSON_ID].toString());
/***<1>:FM插件维护的有效订单容器中不存在此订单:整合数据并插入到此订单容器中 ***/
if(orderObject == nullptr)
......@@ -925,8 +929,7 @@ bool FlowControl::_PullOrderDetail(const QString& orderId, const QString& channe
QUrl TempQUrl = url;
m_pullOrderSocket->SetUrl(TempQUrl);
result = m_pullOrderSocket->GetRequest(recvJson, error);
QLOG_INFO() << QString("[<<<<---Pull Order Detail Finsh--->>>>][result:%1][msg:%2]")
.arg(result).arg(error)<<recvJson;
QLOG_INFO() << QString("[<<<<---Pull Order Detail Finsh--->>>>][result:%1][msg:%2]").arg(result).arg(error)<<recvJson;
if(!result) {
if ( !skipErrorDisplay ) {
emit setNetStatus(QString::fromLocal8Bit("<font color='#ff0000'>网络不稳定,正在重试</font>"));
......
......@@ -249,8 +249,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(orderObj->consigneePhone); // --收货者名称
query.addBindValue(orderObj->deliveryPrice * 0.01); // --配送费
query.addBindValue(orderObj->deliveryDiscount * 0.01); // --配送费折扣
if ( orderObj->deliveryTime.isEmpty() ) {
orderObj->deliveryTime = QString("1970-01-01 00:00:00");
}
query.addBindValue(orderObj->deliveryTime); // --订单预计送达时间
query.addBindValue(orderObj->estimation); // --订单预计制作时间 estimation;
if ( orderObj->finishTime.isEmpty() ) {
orderObj->finishTime = QString("1970-01-01 00:00:00");
}
query.addBindValue(orderObj->finishTime); // --订单预计完成时间 makeFinishDate;
query.addBindValue(orderObj->isPackage); // --订单是否打包;
query.addBindValue(""); // --最后支付时间 lastPayTime;
......@@ -259,6 +265,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(orderObj->msr_no); // --MSR 卡号;
query.addBindValue(""); // --消费者生日 birthday;
query.addBindValue(orderObj->cancelReason); // --取消原因 cancelReason;
if ( orderObj->confirmTime.isEmpty() ) {
orderObj->confirmTime = QString("1970-01-01 00:00:00");
}
query.addBindValue(orderObj->confirmTime); // --确认订单时间 confirmTime;
query.addBindValue(orderObj->customerId); // --消费者ID;
QString temp_customerSex = "";
......@@ -300,6 +309,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
}
query.addBindValue( tempBusinessType ); // --订单业务类型
if ( orderObj->expectDate.isEmpty() ) {
orderObj->expectDate = QString("1970-01-01 00:00:00");
}
query.addBindValue(orderObj->expectDate); // --订单预约时间
query.addBindValue( QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime ); // --订单预约提醒模板
query.addBindValue(orderObj->subStoreId); // --母子门店的子门店编号;
......
......@@ -50,15 +50,23 @@ bool QtRedisClient::initQtRedisClient(){
if ( m_pRedisConnectOperat->isConnected() || m_pRedisConnectOperat->connect() ) {
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]";
} else {
while ( 1 ) {
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Failed, Sleep 5s Then Retry Connect... --->>>>]";
Sleep(5*1000);
int retryCount = 0;
while ( retryCount < 3 ) {
QLOG_INFO()<<QString("[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Failed, Sleep 1 s RetryCount: %1 (MaxCount=3), Then Retry Connect... --->>>>]").arg(retryCount+1);
Sleep(1*1000);
if ( m_pRedisConnectOperat->connect() )
break;
else
else {
retryCount++;
continue;
}
}
if ( retryCount < 3 ) {
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]";
} else {
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Until The Last Failed--->>>>]";
return initRedisRet;
}
QLOG_INFO()<<"[<<<<---QtRedisClient:: initQtRedisClient Connect Redis Success --->>>>]";
}
} catch ( const RedisClient::Connection::Exception& e ) {
QLOG_ERROR() << "QtRedisClient::initQtRedisClient Connect Redis Occur Exception:" << e.what();
......@@ -126,6 +134,8 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
QJsonDocument orderStatusDoc = QJsonDocument(orderStatusObj);
cmdString.append(orderStatusDoc.toJson());
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Begin...... --->>>>]").arg(orderObj->id);
if ( !m_pRedisConnectOperat ) {
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 m_pRedisConnectOperat Pointer Is Null, Wait Retry Init --->>>>]").arg(orderObj->id);
return bPushOrderSuc;
......@@ -137,8 +147,15 @@ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
try {
auto result = m_pRedisConnectOperat->command(cmdString);
if ( result.results().size() ) {
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1, Command Run Status:--->>>>]").arg(orderObj->id)
<<" Finished: "<< result.isFinished() << " Running: "<< result.isRunning() << " Paused: "<< result.isPaused() ;
} else {
return bPushOrderSuc;
}
QVariant val = result.result().value();
if(val.toInt()) {
if ( val.toInt() ) {
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]").arg(orderObj->id).arg(orderObj->orderStatus).arg(val.toString());
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Redis Context:%2--->>>>]").arg(orderObj->id).arg( QString(orderStatusDoc.toJson()) );
bPushOrderSuc = true;
......
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