Commit a0fce148 by wuyang.zou

fix bug: 修复部分重要bug

parent c424f3f8
...@@ -41,14 +41,15 @@ FlowControl::FlowControl() ...@@ -41,14 +41,15 @@ FlowControl::FlowControl()
m_clearTimer=new QTimer(this); m_clearTimer=new QTimer(this);
m_heartTimer=new QTimer(this); m_heartTimer=new QTimer(this);
m_pullTimer=new QTimer(this); m_pullTimer=new QTimer(this);
m_pullTimer->setSingleShot(true);
m_loginTimer=new QTimer(this); m_loginTimer=new QTimer(this);
m_notifySimPullTimer = new QTimer(this);
connect(m_loginTimer,&QTimer::timeout,this,&FlowControl::_ClickToLogin); connect(m_loginTimer,&QTimer::timeout,this,&FlowControl::_ClickToLogin);
connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrder); connect(m_notifySimPullTimer,&QTimer::timeout,this,&FlowControl::_ClickToNotifySimPullOrder);
connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrderData);
connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_CrondClearExpireOrder); connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_CrondClearExpireOrder);
connect(m_heartTimer,&QTimer::timeout,this,&FlowControl::_SendHeart); connect(m_heartTimer,&QTimer::timeout,this,&FlowControl::_SendHeart);
connect(this,&FlowControl::doPullOrder,this,&FlowControl::_GetOrder); connect(this,&FlowControl::doPullOrder,this,&FlowControl::_GetReadyForPullOrder);
connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection);
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
...@@ -65,9 +66,74 @@ FlowControl::FlowControl() ...@@ -65,9 +66,74 @@ FlowControl::FlowControl()
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/ /*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/
loaclHttpServer = new LoaclHttpServer(); loaclHttpServer = new LoaclHttpServer();
loaclHttpServer->run(); loaclHttpServer->run();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
_ClickOMSAssignArea(); /*
m_loginTimer->start(10*1000); //启动Http服务:用来响应 Http 获取订单的请求
JQHttpServer::TcpServerManage* m_tcpServerManage = new JQHttpServer::TcpServerManage(10);
m_tcpServerManage->setHttpAcceptedCallback( [this]( const QPointer< JQHttpServer::Session > &session )
{
QLOG_INFO()<< "[<<<<---FlowControl::Receive Http Request:currentThreadId:--->>>>]" << QThread::currentThreadId();
// 回调发生在新的线程内;
//解析FM外卖插件HTTP服务 与 Http 请求的会话连接是否断开: 会话连接未断开
if(!session.isNull())
{
QString recvData = QString::fromUtf8(session->requestRawData());
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FlowControl::Receive Http Request recvData: %1--->>>>]").arg(recvData);
QJsonParseError jsonError;
QJsonObject recvObject;
QJsonObject replyObject;
int status; //解析json结果
QString msg;
QJsonObject data; //回复的内容json
int iscontinue =0;
recvObject = QJsonDocument::fromJson(recvData.toUtf8(), &jsonError).object();
//解析Http Request json格式: 解析失败
if(jsonError.error != QJsonParseError::NoError)
{
status = 0;
msg = jsonError.errorString();
}
//解析Http Request json格式: 解析成功
else {
//解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据成功
if(_ResponseHttpRequest(recvObject,data, msg))
{
status = 100;
}
//解析:FM外卖插件为响应Http请求准备返回数据:准备返回数据失败
else{
status = 0;
}
//解析:等待Http获取的有效订单列表是否为空: sim有效订单列表不为空
if(!_SimValidOrdersListIsEmpty())
{
iscontinue=1;
}
}
//将FM外卖插件中的合法有效数据返回给上面Http发过来的请求
replyObject = _PackHttpReplyJson(status, msg, data,iscontinue);
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM插件回应Http拉单请求后的返回结果:--->>>>]") << replyObject;
session->replyJsonObject(replyObject);
}
//解析FM外卖插件HTTP服务 与 Http 请求的会话连接是否断开: 会话连接断开//
else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务与Http请求会话断开连接:--->>>>]");
}
} );
//FM外卖插件绑定启动HTTP服务的端口
int port = ConfigManger::GetInstance().GetHttpServerPort();
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务监听端口:%1 :--->>>>]").arg(port);
if(m_tcpServerManage->listen( QHostAddress::Any, port))
{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务 绑定端口成功:--->>>>]");
}else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务 绑定端口失败:--->>>>]");
}
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
_ClickOMSAssignArea();
m_loginTimer->start(10*1000);
} }
...@@ -93,21 +159,24 @@ QString FlowControl::_GetIpAddress() ...@@ -93,21 +159,24 @@ QString FlowControl::_GetIpAddress()
void FlowControl::_AddOrderPull(const QString &orderId, const QString &channel, const int &pageNumber, const int &pageSize) void FlowControl::_AddOrderPull(const QString &orderId, const QString &channel, const int &pageNumber, const int &pageSize)
{ {
m_PullOrderDataMutex.lock();
/***组装从FM外卖service端的拉单请求参数***/ /***组装从FM外卖service端的拉单请求参数***/
PullOrderInfo orderPull; PullOrderInfo* orderPull = new PullOrderInfo();
orderPull.orderId=orderId; orderPull->orderId=orderId;
orderPull.channel=channel; orderPull->channel=channel;
orderPull.pageNumber=pageNumber; orderPull->pageNumber=pageNumber;
orderPull.pageSize=pageSize; orderPull->pageSize=pageSize;
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_AddOrderPull orderId:%1--->>>>]").arg(orderId);
m_orderPullList.append(orderPull); m_orderPullList.append(orderPull);
m_PullOrderDataMutex.unlock();
} }
void FlowControl::_GetOrder(const QString &orderId, const QString &channel)
void FlowControl::_GetReadyForPullOrder(const QString &orderId, const QString &channel)
{ {
/***组装从FM外卖service端的拉单请求参数***/ ///组装从FM外卖service端的拉单请求参数//
_AddOrderPull(orderId,channel); _AddOrderPull(orderId,channel);
/***开始拉单***/ ///////不能上来就拉单,只能通过定时器来触发拉单动作////// //_PullOrderData();
_PullOrder();
} }
void FlowControl::_ClickOMSAssignArea() void FlowControl::_ClickOMSAssignArea()
...@@ -121,14 +190,30 @@ void FlowControl::_ClickOMSAssignArea() ...@@ -121,14 +190,30 @@ void FlowControl::_ClickOMSAssignArea()
void FlowControl::_ClickToLogin() void FlowControl::_ClickToLogin()
{ {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToLogin: m_bLoginResult:%1 m_simValidOrdersList.isEmpty():%2--->>>>>]").arg(m_bLoginResult).arg(m_simValidOrdersList.isEmpty()); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToLogin: m_bLoginResult:%1 --->>>>>]").arg(m_bLoginResult);
if(!m_bLoginResult||!m_simValidOrdersList.isEmpty()) if(!m_bLoginResult)
{ {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:FM外卖插件20s后再次尝试登陆--->>>>]"); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:FM外卖插件10s后再次尝试登陆--->>>>]");
_ClickOMSAssignArea(); _ClickOMSAssignArea();
}else{
m_loginTimer->start(1000*60);
} }
} }
void FlowControl::_ClickToNotifySimPullOrder()
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToNotifySimPullOrder: m_simValidOrdersList.isEmpty():%2--->>>>>]").arg(m_simValidOrdersList.isEmpty());
if(!m_simValidOrdersList.isEmpty())
{
m_notifySimPullTimer->start(1000*10);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FM外卖插件通知 Simphony 获取订单数据--->>>>]");
_ClickOMSAssignArea();
}else{
m_notifySimPullTimer->start(1000*50);
}
}
void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{ {
OrderObject *orderObject = NULL; OrderObject *orderObject = NULL;
...@@ -353,9 +438,10 @@ bool FlowControl::_Login() ...@@ -353,9 +438,10 @@ bool FlowControl::_Login()
emit setStoreInfo(m_storeId); emit setStoreInfo(m_storeId);
emit setCashierInfo(m_cashierId); emit setCashierInfo(m_cashierId);
m_bLoginResult= true; m_bLoginResult= true;
m_clearTimer->start(1000*60*60); // 一小时执行一次:清理两天前的插件订单; m_clearTimer->start(1000*60*30); // 一小时执行一次:清理两天前的插件订单;
m_heartTimer->start(1000*60*5); m_heartTimer->start(1000*60*5);
m_pullTimer->start(1000*10); m_pullTimer->start(1000*2);
m_notifySimPullTimer->start(10*1000);
emit doPullOrder(QString(),QString()); emit doPullOrder(QString(),QString());
} }
} }
...@@ -368,20 +454,42 @@ bool FlowControl::_Login() ...@@ -368,20 +454,42 @@ bool FlowControl::_Login()
return result; return result;
} }
void FlowControl::_PullOrder() void FlowControl::_PullOrderData()
{ {
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData ---->>>>>]";
if(m_orderPullList.isEmpty()) if(m_orderPullList.isEmpty())
return ; return ;
emit hideAlert(); emit hideAlert();
PullOrderInfo info=m_orderPullList.takeFirst();
if(info.orderId.isEmpty()) m_PullOrderDataMutex.lock();
PullOrderInfo* info = m_orderPullList.takeFirst();
if(info->orderId.isEmpty())
{ {
_PullOrderList(info.pageSize,info.pageNumber); if ( _PullOrderList(info->pageSize,info->pageNumber) ){
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderList successful---->>>>>]";
m_orderPullList.removeOne(info);
delete info;
}else {
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderList successful failed---->>>>>]";
m_orderPullList.removeOne(info);
m_orderPullList.append(info);
}
} }
else else
{ {
_PullOrderDetail(info.orderId); if (_PullOrderDetail(info->orderId) ){
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderDetail successful---->>>>>]";
m_orderPullList.removeOne(info);
delete info;
}else{
QLOG_INFO()<<"[<<<<----FlowControl::_PullOrderData _PullOrderDetail fail---->>>>>]";
m_orderPullList.removeOne(info);
m_orderPullList.append(info);
}
} }
m_PullOrderDataMutex.unlock();
return ; return ;
} }
...@@ -396,10 +504,10 @@ bool FlowControl::_PullOrderDetail(const QString& orderId) ...@@ -396,10 +504,10 @@ bool FlowControl::_PullOrderDetail(const QString& orderId)
if(ConfigManger::GetInstance().GetOrderSslConfig()) if(ConfigManger::GetInstance().GetOrderSslConfig())
{ {
m_pullOrderSocket->SetSslConfig(); m_pullOrderSocket->SetSslConfig();
QLOG_INFO()<<"load ssl"; QLOG_INFO()<<"FlowControl::_PullOrderDetai load ssl";
} }
else{ else{
QLOG_INFO()<<"load not ssl"; QLOG_INFO()<<"FlowControl::_PullOrderDetai load not ssl";
} }
QString url = ConfigManger::GetInstance().GetOrderServerUrl()+ QString url = ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDER); ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDER);
...@@ -432,11 +540,13 @@ bool FlowControl::_PullOrderDetail(const QString& orderId) ...@@ -432,11 +540,13 @@ bool FlowControl::_PullOrderDetail(const QString& orderId)
} }
} }
/*解析json数据失败则10秒后重新拉单*/ /*解析json数据失败则10秒后重新拉单*/
/*
if(!result) if(!result)
{ {
m_pullTimer->start(1000*10); m_pullTimer->start(1000*10);
_AddOrderPull(orderId); _AddOrderPull(orderId);
} }
*/
qDebug()<<"[<<<<---Pull Order Detail Result--->>>>]"<<result; qDebug()<<"[<<<<---Pull Order Detail Result--->>>>]"<<result;
return result; return result;
} }
...@@ -458,10 +568,10 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo) ...@@ -458,10 +568,10 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
if(ConfigManger::GetInstance().GetOrderSslConfig()) if(ConfigManger::GetInstance().GetOrderSslConfig())
{ {
m_pullOrderSocket->SetSslConfig(); m_pullOrderSocket->SetSslConfig();
QLOG_INFO()<<"load ssl"; QLOG_INFO()<<"FlowControl::_PullOrderList load ssl";
} }
else{ else{
QLOG_INFO()<<"load not ssl"; QLOG_INFO()<<"FlowControl::_PullOrderList load not ssl";
} }
m_pullOrderListSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+ m_pullOrderListSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDERLIST))); ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDERLIST)));
...@@ -498,15 +608,17 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo) ...@@ -498,15 +608,17 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
if(m_orderCount<ordertotalSum) if(m_orderCount<ordertotalSum)
{ {
_AddOrderPull(QString(),QString(),pageNo+1,pageSize); _AddOrderPull(QString(),QString(),pageNo+1,pageSize);
_PullOrder(); _PullOrderData();
} }
} }
} }
/*
if(!result) if(!result)
{ {
m_pullTimer->start(1000*10); m_pullTimer->start(1000*10);
_AddOrderPull(QString(),QString(),pageNo,pageSize); _AddOrderPull(QString(),QString(),pageNo,pageSize);
} }
*/
qDebug()<<"[<<<<---Pull Order List Result--->>>>]"<<result; qDebug()<<"[<<<<---Pull Order List Result--->>>>]"<<result;
return result; return result;
} }
...@@ -1111,13 +1223,16 @@ void FlowControl::onDailyReport() ...@@ -1111,13 +1223,16 @@ void FlowControl::onDailyReport()
void FlowControl::_CrondClearExpireOrder() void FlowControl::_CrondClearExpireOrder()
{ {
QDateTime currentDateTime= QDateTime::currentDateTime(); //QDateTime currentDateTime= QDateTime::currentDateTime();
QDate currentDate = QDate::currentDate();
OrderObject *order=NULL; OrderObject *order=NULL;
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
foreach (order, m_FmOrdersMap.values()) { foreach (order, m_FmOrdersMap.values()) {
QDateTime createDateTime=QDateTime::fromTime_t(order->updateTime); //QDateTime createDateTime=QDateTime::fromString(order->createTime,"yyyyMMdd 00:00:00");
qint64 days=createDateTime.daysTo(currentDateTime); QDate createDate = QDate::fromString(order->createTime,"yyyyMMdd");
if(days>=2) //qint64 days=createDateTime.daysTo(currentDateTime);
qint64 days=createDate.daysTo(currentDate);
if(days>=1)
{ {
QLOG_INFO()<<QString("[<<<<---Crond Clear Expire Order: orderID:%1--->>>>]").arg(order->id); QLOG_INFO()<<QString("[<<<<---Crond Clear Expire Order: orderID:%1--->>>>]").arg(order->id);
emit clearorder(order->id,order->orderStatus); emit clearorder(order->id,order->orderStatus);
...@@ -1130,17 +1245,17 @@ void FlowControl::_CrondClearExpireOrder() ...@@ -1130,17 +1245,17 @@ void FlowControl::_CrondClearExpireOrder()
SimProcOrderDB::getInstance().deleteOrderRecord(QDate::currentDate().addMonths(-1).toString("yyyyMMdd")); SimProcOrderDB::getInstance().deleteOrderRecord(QDate::currentDate().addMonths(-1).toString("yyyyMMdd"));
} }
bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObject &data, QString& error) bool FlowControl::_ResponseHttpRequest(const QJsonObject &content,QJsonObject &data, QString& error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result = true; bool result = true;
/****校验Simphony_Script请求参数有效性: 校验参数->actionId不存在****/ /****校验Http请求参数有效性: 校验参数->actionId不存在****/
if(!content.contains("actionId")) if(!content.contains("actionId"))
{ {
error =QString::fromLocal8Bit("解析Simphony_Script请求参数:参数中没有actionId"); error =QString::fromLocal8Bit("解析Http请求参数:参数中没有actionId");
result = false; result = false;
} }
/****校验Simphony_Script请求参数有效性: 校验参数->actionId存在****/ /****校验Http请求参数有效性: 校验参数->actionId存在****/
else{ else{
int actionId; int actionId;
if(content["actionId"].isString()) if(content["actionId"].isString())
...@@ -1150,6 +1265,7 @@ bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObjec ...@@ -1150,6 +1265,7 @@ bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObjec
else{ else{
actionId=content["actionId"].toInt(); actionId=content["actionId"].toInt();
} }
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Http请求[action:%1] --->>>>]").arg(actionId);
/****校验请求参数actionId的具体数值:****/ /****校验请求参数actionId的具体数值:****/
switch (actionId) { switch (actionId) {
case 1://simphony拉取订单 case 1://simphony拉取订单
...@@ -1167,14 +1283,14 @@ bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObjec ...@@ -1167,14 +1283,14 @@ bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObjec
case 5://simphony更新订单数据到POS本地数据库以便POS打印小票及汇总单信息 回复 case 5://simphony更新订单数据到POS本地数据库以便POS打印小票及汇总单信息 回复
result=_ResponseSimphony05Request(content,data,error); result=_ResponseSimphony05Request(content,data,error);
break; break;
case 11://推送订单 case 11://FM OMS推送订单
result=_ResponseSimphony11Request(content,data,error); result=_ResponseOMS11Request(content,data,error);
break; break;
case 12://推送门店营业状态 case 12://推送门店营业状态
result=_ResponseSimphony12Request(content,data,error); result=_ResponseSimphony12Request(content,data,error);
break; break;
default: default:
error =QString::fromLocal8Bit("解析Simphony_Script请求actionId值不在规定的接口文档内"); error =QString::fromLocal8Bit("解析Http请求actionId值不在规定的接口文档内");
result = false; result = false;
break; break;
} }
...@@ -1451,7 +1567,7 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb ...@@ -1451,7 +1567,7 @@ bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonOb
} }
bool FlowControl::_ResponseSimphony11Request(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseOMS11Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result=true; bool result=true;
...@@ -1465,7 +1581,9 @@ bool FlowControl::_ResponseSimphony11Request(const QJsonObject &content, QJsonOb ...@@ -1465,7 +1581,9 @@ bool FlowControl::_ResponseSimphony11Request(const QJsonObject &content, QJsonOb
error =QString::fromLocal8Bit("订单号不能为空"); error =QString::fromLocal8Bit("订单号不能为空");
return false; return false;
} }
emit doPullOrder(content[JSON_ORDER_ID].toString(),content[JSON_CHANNEL].toString()); // 接受到非码oms插过来的订单,进行向队列中进行添加;
_AddOrderPull(content[JSON_ORDER_ID].toString(),content[JSON_CHANNEL].toString());
/***组装从FM外卖service端的拉单请求参数***/
error = QString("success"); error = QString("success");
result = true; result = true;
} }
......
...@@ -75,6 +75,7 @@ private: ...@@ -75,6 +75,7 @@ private:
QTimer *m_heartTimer; QTimer *m_heartTimer;
QTimer *m_pullTimer; QTimer *m_pullTimer;
QTimer *m_loginTimer; QTimer *m_loginTimer;
QTimer *m_notifySimPullTimer;
// 网络通信 // 网络通信
BillSocket *m_loginSocket; BillSocket *m_loginSocket;
BillSocket *m_pullOrderSocket; BillSocket *m_pullOrderSocket;
...@@ -99,7 +100,8 @@ private: ...@@ -99,7 +100,8 @@ private:
//记录当前订单操作 //记录当前订单操作
QMap<QString, int> m_orderOperatePair; QMap<QString, int> m_orderOperatePair;
//订单拉取记录 //订单拉取记录
QList<PullOrderInfo> m_orderPullList; QList<PullOrderInfo*> m_orderPullList;
QMutex m_PullOrderDataMutex;
//订单操作互斥信号 //订单操作互斥信号
//QSemaphore semaphore; //QSemaphore semaphore;
...@@ -202,7 +204,7 @@ private slots: ...@@ -202,7 +204,7 @@ private slots:
* 参数:[1]订单编号 * 参数:[1]订单编号
* 返回:是否成功 * 返回:是否成功
* */ * */
void _PullOrder(); void _PullOrderData();
/* 功能:拉取指定订单 /* 功能:拉取指定订单
* 参数:[1]订单编号 * 参数:[1]订单编号
* 返回:是否成功 * 返回:是否成功
...@@ -270,7 +272,7 @@ private slots: ...@@ -270,7 +272,7 @@ private slots:
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息; *参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功; *返回:是否准备成功;
**/ **/
//bool _ResponseSimphonyRequest(const QJsonObject &content, QJsonObject &data,QString &error); //bool _ResponseHttpRequest(const QJsonObject &content, QJsonObject &data,QString &error);
/** /**
*功能:FM外卖插件为响应Simphony请求[action:01 -> 拉取订单]准备返回数据 *功能:FM外卖插件为响应Simphony请求[action:01 -> 拉取订单]准备返回数据
...@@ -312,7 +314,7 @@ private slots: ...@@ -312,7 +314,7 @@ private slots:
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息; *参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功; *返回:是否准备成功;
**/ **/
//bool _ResponseSimphony11Request(const QJsonObject &content, QJsonObject &data,QString &error); //bool _ResponseOMS11Request(const QJsonObject &content, QJsonObject &data,QString &error);
/** /**
*功能:FM外卖插件为响应Simphony请求[action:12 -> Sim/POS推送门店营业状态]准备返回数据 *功能:FM外卖插件为响应Simphony请求[action:12 -> Sim/POS推送门店营业状态]准备返回数据
...@@ -340,10 +342,11 @@ private slots: ...@@ -340,10 +342,11 @@ private slots:
QString _GetIpAddress(); QString _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=100); void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=100);
void _GetOrder(const QString& orderId,const QString& channel); void _GetReadyForPullOrder(const QString& orderId,const QString& channel);
//点击屏幕指定区域 //点击屏幕指定区域
void _ClickOMSAssignArea(); void _ClickOMSAssignArea();
void _ClickToLogin(); void _ClickToLogin();
void _ClickToNotifySimPullOrder();
void _OrderAnalysis(const QJsonObject &jsonObject); void _OrderAnalysis(const QJsonObject &jsonObject);
...@@ -417,7 +420,7 @@ public slots: ...@@ -417,7 +420,7 @@ public slots:
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息; *参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功; *返回:是否准备成功;
**/ **/
bool _ResponseSimphonyRequest(const QJsonObject &content, QJsonObject &data,QString &error); bool _ResponseHttpRequest(const QJsonObject &content, QJsonObject &data,QString &error);
/** /**
*功能:FM外卖插件为响应Simphony请求[action:01 -> 拉取订单]准备返回数据 *功能:FM外卖插件为响应Simphony请求[action:01 -> 拉取订单]准备返回数据
...@@ -459,7 +462,7 @@ public slots: ...@@ -459,7 +462,7 @@ public slots:
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息; *参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功; *返回:是否准备成功;
**/ **/
bool _ResponseSimphony11Request(const QJsonObject &content, QJsonObject &data,QString &error); bool _ResponseOMS11Request(const QJsonObject &content, QJsonObject &data,QString &error);
/** /**
*功能:FM外卖插件为响应Simphony请求[action:12 -> Sim/POS推送门店营业状态]准备返回数据 *功能:FM外卖插件为响应Simphony请求[action:12 -> Sim/POS推送门店营业状态]准备返回数据
......
...@@ -12,17 +12,17 @@ LoaclHttpServer::LoaclHttpServer() ...@@ -12,17 +12,17 @@ LoaclHttpServer::LoaclHttpServer()
void LoaclHttpServer::run() void LoaclHttpServer::run()
{ {
/*** 启动Http服务:用来响应Simphony_Script获取订单的请求***/ /*** 启动Http服务:用来响应Http获取订单的请求***/
QLOG_INFO()<< "[<<<<---LoaclHttpServer::Receive Simphony_Script Request:m_tcpServerManage:--->>>>]" << m_tcpServerManage; QLOG_INFO()<< "[<<<<---LoaclHttpServer::Receive Http Request:m_tcpServerManage:--->>>>]" << m_tcpServerManage;
m_tcpServerManage->setHttpAcceptedCallback( [this]( const QPointer< JQHttpServer::Session > &session ) m_tcpServerManage->setHttpAcceptedCallback( [this]( const QPointer< JQHttpServer::Session > &session )
{ {
QLOG_INFO()<< "[<<<<---LoaclHttpServer::Receive Simphony_Script Request:currentThreadId:--->>>>]" << QThread::currentThreadId(); QLOG_INFO()<< "[<<<<---LoaclHttpServer::Receive Http Request:currentThreadId:--->>>>]" << QThread::currentThreadId();
// 回调发生在新的线程内; // 回调发生在新的线程内;
/***解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接未断开***/ /***解析FM外卖插件HTTP服务与Http请求的会话连接是否断开: 会话连接未断开***/
if(!session.isNull()) if(!session.isNull())
{ {
QString recvData = QString::fromUtf8(session->requestRawData()); QString recvData = QString::fromUtf8(session->requestRawData());
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---Receive Simphony_Script Request recvData: %1--->>>>]").arg(recvData); QLOG_INFO() << QString::fromLocal8Bit("[<<<<---Receive Http Request recvData: %1--->>>>]").arg(recvData);
QJsonParseError jsonError; QJsonParseError jsonError;
QJsonObject recvObject; QJsonObject recvObject;
QJsonObject replyObject; QJsonObject replyObject;
...@@ -31,37 +31,37 @@ void LoaclHttpServer::run() ...@@ -31,37 +31,37 @@ void LoaclHttpServer::run()
QJsonObject data; //回复的内容json QJsonObject data; //回复的内容json
int iscontinue =0; int iscontinue =0;
recvObject = QJsonDocument::fromJson(recvData.toUtf8(), &jsonError).object(); recvObject = QJsonDocument::fromJson(recvData.toUtf8(), &jsonError).object();
/***解析Simphony_Script Request json格式: 解析失败***/ /***解析Http Request json格式: 解析失败***/
if(jsonError.error != QJsonParseError::NoError) if(jsonError.error != QJsonParseError::NoError)
{ {
status = 0; status = 0;
msg = jsonError.errorString(); msg = jsonError.errorString();
} }
/***解析Simphony_Script Request json格式: 解析成功***/ /***解析Http Request json格式: 解析成功***/
else { else {
/***解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据成功***/ /***解析:FM外卖插件为响应http 请求准备返回数据:准备返回数据成功***/
if(FlowControl::GetInstance()._ResponseSimphonyRequest(recvObject,data, msg)) if(FlowControl::GetInstance()._ResponseHttpRequest(recvObject,data, msg))
{ {
status = 100; status = 100;
} }
/***解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据失败***/ /***解析:FM外卖插件为响应 Http 请求准备返回数据:准备返回数据失败***/
else{ else{
status = 0; status = 0;
} }
/***解析:等待Simphony获取的有效订单列表是否为空: sim有效订单列表不为空***/ /***解析:等待Http获取的有效订单列表是否为空: sim有效订单列表不为空***/
if(!FlowControl::GetInstance()._SimValidOrdersListIsEmpty()) if(!FlowControl::GetInstance()._SimValidOrdersListIsEmpty())
{ {
iscontinue=1; iscontinue=1;
} }
} }
/***将FM外卖插件中的合法有效数据返回给上面Simphony_Script发过来的请求***/ /***将FM外卖插件中的合法有效数据返回给上面Http发过来的请求***/
replyObject = FlowControl::GetInstance()._PackHttpReplyJson(status, msg, data,iscontinue); replyObject = FlowControl::GetInstance()._PackHttpReplyJson(status, msg, data,iscontinue);
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件回应Simphony_Script拉单请求后的返回结果:--->>>>]") << replyObject; QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件回应Http拉单请求后的返回结果:--->>>>]") << replyObject;
session->replyJsonObject(replyObject); session->replyJsonObject(replyObject);
} }
/***解析FM外卖插件HTTP服务与Simphony_Script请求的会话连接是否断开: 会话连接断开***/ /***解析FM外卖插件HTTP服务与Http请求的会话连接是否断开: 会话连接断开***/
else{ else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务与Simphony_Script请求会话断开连接:--->>>>]"); QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件Http服务与Http请求会话断开链接--->>>>]");
} }
} ); } );
......
...@@ -39,7 +39,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -39,7 +39,7 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailLab0->setText(QString("[%1 # %2][%3][%4]").arg(QString::number(orderObject->orderIndex),orderObject->getChannelName(), ui->detailLab0->setText(QString("[%1 # %2][%3][%4]").arg(QString::number(orderObject->orderIndex),orderObject->getChannelName(),
orderObject->getOrderStatusDec(), orderObject->getOrderStatusDec(),
orderObject->id)); orderObject->id));
ui->detailLab1->setText(QString("%1:%2").arg(orderObject->customerName,orderObject->phone)); ui->detailLab1->setText(QString("%1:%2").arg(orderObject->consigneeName,orderObject->consigneePhone));
ui->detailLab2->setText(orderObject->deliveryTime.isEmpty()? QString::fromLocal8Bit("立即送出") : orderObject->deliveryTime); ui->detailLab2->setText(orderObject->deliveryTime.isEmpty()? QString::fromLocal8Bit("立即送出") : orderObject->deliveryTime);
ui->detailLab3->setText(orderObject->riderName.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2") ui->detailLab3->setText(orderObject->riderName.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2")
.arg(orderObject->riderName, orderObject->riderPhone)); .arg(orderObject->riderName, orderObject->riderPhone));
......
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