Commit 64b5e5f3 by wuyang.zou

fix bug: 新增 MSR_NO 卡号信息 + 新增 同步POS本地数据库打印信息是否成功

parent d1e25051
...@@ -45,7 +45,7 @@ FlowControl::FlowControl() ...@@ -45,7 +45,7 @@ FlowControl::FlowControl()
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_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrder);
connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_ClearOrder); 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::_GetOrder);
connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection);
...@@ -80,17 +80,17 @@ FlowControl::FlowControl() ...@@ -80,17 +80,17 @@ FlowControl::FlowControl()
} }
/***解析Simphony_Script Request json格式: 解析成功***/ /***解析Simphony_Script Request json格式: 解析成功***/
else { else {
/***?????***/ /***解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据成功***/
if(_GetReplyJson(recvObject,data, msg)) if(_ResponseSimphonyRequest(recvObject,data, msg))
{ {
status = 100; status = 100;
} }
/***?????***/ /***解析:FM外卖插件为响应Simphony请求准备返回数据:准备返回数据失败***/
else{ else{
status = 0; status = 0;
} }
/***?????***/ /***解析:等待Simphony获取的有效订单列表是否为空: sim有效订单列表不为空***/
if(!m_ordersEntryList.isEmpty()) if(!m_simValidOrdersList.isEmpty())
{ {
iscontinue=1; iscontinue=1;
} }
...@@ -174,7 +174,7 @@ void FlowControl::_ClickOMSAssignArea() ...@@ -174,7 +174,7 @@ void FlowControl::_ClickOMSAssignArea()
void FlowControl::_ClickToLogin() void FlowControl::_ClickToLogin()
{ {
if(!m_bLoginResult||!m_ordersEntryList.isEmpty()) if(!m_bLoginResult||!m_simValidOrdersList.isEmpty())
{ {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:FM外卖插件20s后再次尝试登陆--->>>>]"); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:FM外卖插件20s后再次尝试登陆--->>>>]");
_ClickOMSAssignArea(); _ClickOMSAssignArea();
...@@ -184,8 +184,8 @@ void FlowControl::_ClickToLogin() ...@@ -184,8 +184,8 @@ void FlowControl::_ClickToLogin()
void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{ {
OrderObject *orderObject = NULL; OrderObject *orderObject = NULL;
orderObject = m_simValidOrderMapQueue.value(jsonObject[JSON_ID].toString()); orderObject = m_FmOrdersMap.value(jsonObject[JSON_ID].toString());
/***<1>:待Simphony拉取的有效订单队列中不存在此订单:整合数据并插入到此订单队列中 ***/ /***<1>:FM插件维护的有效订单容器中不存在此订单:整合数据并插入到此订单容器中 ***/
if(orderObject == NULL) if(orderObject == NULL)
{ {
orderObject = new OrderObject(this); orderObject = new OrderObject(this);
...@@ -193,8 +193,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -193,8 +193,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->isPush = false; orderObject->isPush = false;
orderObject->isCancle = false; orderObject->isCancle = false;
m_simValidOrderMapQueue.insert(orderObject->id, orderObject); m_FmOrdersMap.insert(orderObject->id, orderObject);
QLOG_INFO() << QString("[<<<<---Simphony Valid Order MapQueue:Insert New Order[%1:%2]--->>>>][data:]") QLOG_INFO() << QString("[<<<<---FmTakeout Valid Orders Map:Insert New Order[%1:%2]--->>>>][data:]")
.arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject; .arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject;
if(!SimProcOrderDB::getInstance().isOrderExit(orderObject->id)) if(!SimProcOrderDB::getInstance().isOrderExit(orderObject->id))
{ {
...@@ -206,12 +206,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -206,12 +206,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
} }
emit changeOrderStatus(orderObject); emit changeOrderStatus(orderObject);
} }
/***<2>:待Simphony拉取的有效订单队列中存在此订单:更新订单队列中此订单的订单状态***/ /***<2>:FM插件维护的有效订单容器中存在此订单:更新订单容器中此订单的订单状态***/
else else
{ {
int oldStatus = orderObject->orderStatus; int oldStatus = orderObject->orderStatus;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("[<<<<---Simphony Valid Order MapQueue:Update OldOrder Status[%1:%2]--->>>>].[data:%3]") QLOG_INFO() << QString("[<<<<---FmTakeout Valid Order Map:Update OldOrder Status[%1:%2]--->>>>].[data:%3]")
.arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject; .arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject;
if(oldStatus != orderObject->orderStatus) if(oldStatus != orderObject->orderStatus)
{ {
...@@ -232,7 +232,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -232,7 +232,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{ {
orderObject->isCancle = true; orderObject->isCancle = true;
} }
QString posOrderCheckNo=m_orderIdToPosSalesIdMap.value(orderObject->id); QString posOrderCheckNo=m_orderIdToPosCheckNoMap.value(orderObject->id);
if(posOrderCheckNo.isEmpty()) if(posOrderCheckNo.isEmpty())
{ {
SimProcOrderDB::getInstance().getPosOrderCheckNo(orderObject->id,posOrderCheckNo); SimProcOrderDB::getInstance().getPosOrderCheckNo(orderObject->id,posOrderCheckNo);
...@@ -248,12 +248,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -248,12 +248,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
/***case:新订单、确认订单、已配送订单、待配送订单、完成订单、请求退单: 订单还没push到POS[POS没有模拟点单或没有返回小票号]***/ /***case:新订单、确认订单、已配送订单、待配送订单、完成订单、请求退单: 订单还没push到POS[POS没有模拟点单或没有返回小票号]***/
if(!orderObject->isPush) if(!orderObject->isPush)
{ {
orderObject->putType = 1; orderObject->pushOrderType = 1;
orderObject->putTimes = 0; orderObject->pushOrderTimes = 0;
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->id)) if(!m_simValidOrdersList.contains(orderObject->id))
{ {
m_ordersEntryList.append(orderObject->id); m_simValidOrdersList.append(orderObject->id);
} }
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
_ClickOMSAssignArea(); _ClickOMSAssignArea();
...@@ -269,7 +269,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -269,7 +269,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
if(!orderObject->isPush) if(!orderObject->isPush)
{ {
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
m_ordersEntryList.removeOne(orderObject->id); m_simValidOrdersList.removeOne(orderObject->id);
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
} }
/***case:校验此订单是否已经push到POS:订单已经push到POS***/ /***case:校验此订单是否已经push到POS:订单已经push到POS***/
...@@ -277,12 +277,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -277,12 +277,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
/***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单且返回小票号]***/ /***case:校验此订单push到POS后的小票号是否空:[POS已模拟点单且返回小票号]***/
if(!posOrderCheckNo.isEmpty()) if(!posOrderCheckNo.isEmpty())
{ {
orderObject->putType = 0; orderObject->pushOrderType = 0;
orderObject->putTimes = 0; orderObject->pushOrderTimes = 0;
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->id)) if(!m_simValidOrdersList.contains(orderObject->id))
{ {
m_ordersEntryList.append(orderObject->id); m_simValidOrdersList.append(orderObject->id);
} }
_ClickOMSAssignArea(); _ClickOMSAssignArea();
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
...@@ -586,7 +586,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId) ...@@ -586,7 +586,7 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
if(1==status) if(1==status)
{ {
int orderStatus = data[JSON_ORDERSTATUS].toInt(); int orderStatus = data[JSON_ORDERSTATUS].toInt();
OrderObject* orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject* orderObject = m_FmOrdersMap.value(orderId);
int oldOrderStatus = orderObject->orderStatus; int oldOrderStatus = orderObject->orderStatus;
orderObject->orderStatus = orderStatus; orderObject->orderStatus = orderStatus;
emit changeOrderStatus(orderObject, oldOrderStatus); emit changeOrderStatus(orderObject, oldOrderStatus);
...@@ -627,7 +627,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr ...@@ -627,7 +627,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
{ {
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("拒单成功!")); emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("拒单成功!"));
// 通知主界面移动订单 // 通知主界面移动订单
OrderObject *orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject *orderObject = m_FmOrdersMap.value(orderId);
int oldStatus = orderObject->orderStatus; int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt(); orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
emit changeOrderStatus(orderObject, oldStatus); emit changeOrderStatus(orderObject, oldStatus);
...@@ -640,7 +640,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr ...@@ -640,7 +640,7 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
bool FlowControl::_SendOrder(const QString& orderId) bool FlowControl::_SendOrder(const QString& orderId)
{ {
//TODO //TODO
// if(m_simValidOrderMapQueue.value(orderId)->riderName.isEmpty()&&m_simValidOrderMapQueue.value(orderId)->delivery_type==1) // if(m_FmOrdersMap.value(orderId)->riderName.isEmpty()&&m_FmOrdersMap.value(orderId)->delivery_type==1)
// { // {
// emit showAlert(AlertForm::MSGERROR,QString::fromLocal8Bit("配送员暂未接单,请等待")); // emit showAlert(AlertForm::MSGERROR,QString::fromLocal8Bit("配送员暂未接单,请等待"));
// return true; // return true;
...@@ -671,7 +671,7 @@ bool FlowControl::_SendOrder(const QString& orderId) ...@@ -671,7 +671,7 @@ bool FlowControl::_SendOrder(const QString& orderId)
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("送出成功!")); emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("送出成功!"));
// 通知主界面移动订单 // 通知主界面移动订单
OrderObject *orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject *orderObject = m_FmOrdersMap.value(orderId);
int oldStatus = orderObject->orderStatus; int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt(); orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
// TODO 服务器端现还未开发 // TODO 服务器端现还未开发
...@@ -711,7 +711,7 @@ bool FlowControl::_CompleteOrder(const QString& orderId) ...@@ -711,7 +711,7 @@ bool FlowControl::_CompleteOrder(const QString& orderId)
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("完成成功!")); emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("完成成功!"));
// 通知主界面移动订单 // 通知主界面移动订单
OrderObject *orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject *orderObject = m_FmOrdersMap.value(orderId);
int oldStatus = orderObject->orderStatus; int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt(); orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
emit changeOrderStatus(orderObject, oldStatus); emit changeOrderStatus(orderObject, oldStatus);
...@@ -750,7 +750,7 @@ bool FlowControl::_RefuseRefund(const QString& orderId) ...@@ -750,7 +750,7 @@ bool FlowControl::_RefuseRefund(const QString& orderId)
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("拒绝退单成功!")); emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("拒绝退单成功!"));
// 通知主界面移动订单 // 通知主界面移动订单
OrderObject *orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject *orderObject = m_FmOrdersMap.value(orderId);
int oldStatus = orderObject->orderStatus; int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt(); orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
// TODO 服务器端现还未开发 // TODO 服务器端现还未开发
...@@ -769,7 +769,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri ...@@ -769,7 +769,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
QJsonObject sendJson; QJsonObject sendJson;
QJsonObject recvJson; QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetRefundOrderData(reasonCode,reason,orderId,m_simValidOrderMapQueue.value(orderId)->channel); sendJson = DataManger::GetInstance().GetRefundOrderData(reasonCode,reason,orderId,m_FmOrdersMap.value(orderId)->channel);
emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在通信......")); emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在通信......"));
...@@ -803,7 +803,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri ...@@ -803,7 +803,7 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
if(1==status) if(1==status)
{ {
int orderStatus = data[JSON_ORDERSTATUS].toInt(); int orderStatus = data[JSON_ORDERSTATUS].toInt();
OrderObject* orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject* orderObject = m_FmOrdersMap.value(orderId);
int oldOrderStatus = orderObject->orderStatus; int oldOrderStatus = orderObject->orderStatus;
orderObject->orderStatus = orderStatus; orderObject->orderStatus = orderStatus;
emit changeOrderStatus(orderObject, oldOrderStatus); emit changeOrderStatus(orderObject, oldOrderStatus);
...@@ -829,9 +829,7 @@ QJsonObject FlowControl::_PackHttpReplyJson(const int status, const QString &msg ...@@ -829,9 +829,7 @@ QJsonObject FlowControl::_PackHttpReplyJson(const int status, const QString &msg
rObj.insert("statusCode", status); rObj.insert("statusCode", status);
rObj.insert("msg", msg); rObj.insert("msg", msg);
rObj.insert("iscontinue",iscontinue); rObj.insert("iscontinue",iscontinue);
//if(!data.isEmpty()){
rObj.insert("data", data); rObj.insert("data", data);
//}
return rObj; return rObj;
} }
...@@ -1052,37 +1050,38 @@ void FlowControl::onDailyReport() ...@@ -1052,37 +1050,38 @@ void FlowControl::onDailyReport()
} }
} }
void FlowControl::_ClearOrder() void FlowControl::_CrondClearExpireOrder()
{ {
QDateTime currentDateTime= QDateTime::currentDateTime(); QDateTime currentDateTime= QDateTime::currentDateTime();
OrderObject *order=NULL; OrderObject *order=NULL;
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
foreach (order, m_simValidOrderMapQueue.values()) { foreach (order, m_FmOrdersMap.values()) {
QDateTime createDateTime=QDateTime::fromTime_t(order->updateTime); QDateTime createDateTime=QDateTime::fromTime_t(order->updateTime);
qint64 days=createDateTime.daysTo(currentDateTime); qint64 days=createDateTime.daysTo(currentDateTime);
if(days>=2) if(days>=2)
{ {
QLOG_INFO()<<QString("[<<<<---ClearOrder: 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);
m_simValidOrderMapQueue.value(order->id)->deleteLater(); m_FmOrdersMap.value(order->id)->deleteLater();
m_ordersEntryList.removeOne(order->id); m_simValidOrdersList.removeOne(order->id);
delete m_FmOrdersMap.take(order->id);
delete m_simValidOrderMapQueue.take(order->id);
} }
} }
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
SimProcOrderDB::getInstance().deleteOrderRecord(QDate::currentDate().addMonths(-1).toString("yyyyMMdd")); SimProcOrderDB::getInstance().deleteOrderRecord(QDate::currentDate().addMonths(-1).toString("yyyyMMdd"));
} }
bool FlowControl::_GetReplyJson(const QJsonObject &content,QJsonObject &data, QString& error) bool FlowControl::_ResponseSimphonyRequest(const QJsonObject &content,QJsonObject &data, QString& error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result = true; bool result = true;
/****校验Simphony_Script请求参数有效性: 校验参数->actionId不存在****/
if(!content.contains("actionId")) if(!content.contains("actionId"))
{ {
error =QString::fromLocal8Bit("未知的请求"); error =QString::fromLocal8Bit("解析Simphony_Script请求参数:参数中没有actionId");
result = false; result = false;
} }
/****校验Simphony_Script请求参数有效性: 校验参数->actionId存在****/
else{ else{
int actionId; int actionId;
if(content["actionId"].isString()) if(content["actionId"].isString())
...@@ -1092,27 +1091,31 @@ bool FlowControl::_GetReplyJson(const QJsonObject &content,QJsonObject &data, QS ...@@ -1092,27 +1091,31 @@ bool FlowControl::_GetReplyJson(const QJsonObject &content,QJsonObject &data, QS
else{ else{
actionId=content["actionId"].toInt(); actionId=content["actionId"].toInt();
} }
/****校验请求参数actionId的具体数值:****/
switch (actionId) { switch (actionId) {
case 1://simphony拉取订单 case 1://simphony拉取订单
result=_Get01ReplyJson(content,data,error); result=_ResponseSimphony01Request(content,data,error);
break; break;
case 2://simphony确认接单 case 2://simphony确认接单
result=_Get02ReplyJson(content,data,error); result=_ResponseSimphony02Request(content,data,error);
break; break;
case 3://simphony取消接单 case 3://simphony取消接单
result=_Get03ReplyJson(content,data,error); result=_ResponseSimphony03Request(content,data,error);
break;
case 4://simphony汇报小票号信息回复
result=_ResponseSimphony04Request(content,data,error);
break; break;
case 4://simphony消息回复 case 5://simphony更新订单数据到POS本地数据库以便POS打印小票及汇总单信息 回复
result=_Get04ReplyJson(content,data,error); result=_ResponseSimphony05Request(content,data,error);
break; break;
case 11://推送订单 case 11://推送订单
result=_Get11ReplyJson(content,data,error); result=_ResponseSimphony11Request(content,data,error);
break; break;
case 12://推送门店营业状态 case 12://推送门店营业状态
result=_Get12ReplyJson(content,data,error); result=_ResponseSimphony12Request(content,data,error);
break; break;
default: default:
error =QString::fromLocal8Bit("未知的请求"); error =QString::fromLocal8Bit("解析Simphony_Script请求actionId值不在规定的接口文档内");
result = false; result = false;
break; break;
} }
...@@ -1120,27 +1123,27 @@ bool FlowControl::_GetReplyJson(const QJsonObject &content,QJsonObject &data, QS ...@@ -1120,27 +1123,27 @@ bool FlowControl::_GetReplyJson(const QJsonObject &content,QJsonObject &data, QS
return result; return result;
} }
bool FlowControl::_Get01ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseSimphony01Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result=true; bool result=true;
if(!m_bLoginResult&&content.contains("storeId")) if(!m_bLoginResult&&content.contains("storeId"))
{ {
result=_GetLoginReplyJson(content,error); result=_ResponseSimReqTryLogin(content,error);
} }
if(result/*&&content.contains("orderId")*/){ if(result/*&&content.contains("orderId")*/){
result=_GetQueryReplyJson(data,error,content["orderId"].toString()); result=_ResponseSimReqFristOrderData(data,error,content["orderId"].toString());
} }
else{ else{
result = false; result = false;
if(error.isEmpty()) if(error.isEmpty())
{ {
error=QString::fromLocal8Bit("请求参数错误"); error=QString::fromLocal8Bit("准备响应Simphony_Script请求前登陆门店失败");
} }
} }
return result; return result;
} }
bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseSimphony02Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
return true; return true;
//TODO //TODO
...@@ -1148,7 +1151,7 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1148,7 +1151,7 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data,
bool result = true; bool result = true;
if(m_bLoginResult&&content.contains("orderId")){ if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString(); QString orderId=content["orderId"].toString();
if(m_simValidOrderMapQueue.contains(orderId)) if(m_FmOrdersMap.contains(orderId))
{ {
emit doStartOperateTimer(); emit doStartOperateTimer();
emit doConfirmOrder(orderId); emit doConfirmOrder(orderId);
...@@ -1176,7 +1179,7 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1176,7 +1179,7 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data,
} }
return result;*/ return result;*/
} }
bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseSimphony03Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
return true; return true;
//TODO //TODO
...@@ -1184,7 +1187,7 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1184,7 +1187,7 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data,
bool result = true; bool result = true;
if(m_bLoginResult&&content.contains("orderId")){ if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString(); QString orderId=content["orderId"].toString();
if(m_simValidOrderMapQueue.contains(orderId)) if(m_FmOrdersMap.contains(orderId))
{ {
emit doStartOperateTimer(); emit doStartOperateTimer();
emit doRefundOrder(orderId,-1,QString::fromLocal8Bit("同意退款")); emit doRefundOrder(orderId,-1,QString::fromLocal8Bit("同意退款"));
...@@ -1214,59 +1217,59 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1214,59 +1217,59 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data,
} }
return result;*/ return result;*/
} }
bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseSimphony04Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result=true; bool result=true;
if(m_bLoginResult&&content.contains("orderId")){ if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString(); QString orderId=content["orderId"].toString();
QString posSaleId=content["posSaleId"].toString(); QString posCheckNo=content["posSaleId"].toString();
if(posSaleId.isEmpty()) if(posCheckNo.isEmpty())
{ {
posSaleId=m_orderIdToPosSalesIdMap.value(orderId); posCheckNo=m_orderIdToPosCheckNoMap.value(orderId);
} }
if(!posSaleId.isEmpty()&&!orderId.isEmpty()) if(!posCheckNo.isEmpty()&&!orderId.isEmpty())
{ {
if(!m_orderIdToPosSalesIdMap.contains(orderId)) if(!m_orderIdToPosCheckNoMap.contains(orderId))
{ {
QLOG_INFO()<<QString::fromLocal8Bit("%1订单已经成功推送给simphony").arg(orderId); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[04:返回小票号] %1订单已经成功推送给simphony:--->>>>]").arg(orderId);
m_orderIdToPosSalesIdMap.insert(orderId,posSaleId); m_orderIdToPosCheckNoMap.insert(orderId,posCheckNo);
} }
OrderObject* order_p = m_simValidOrderMapQueue.value(orderId); OrderObject* order_p = m_FmOrdersMap.value(orderId);
if (!order_p){ if (!order_p){
QLOG_ERROR()<<QString::fromLocal8Bit("%1订单并不存在m_orderMap[键值对]中;m_simValidOrderMapQueue.size()=%2").arg(orderId).arg(m_simValidOrderMapQueue.size()); QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2--->>>>]").arg(orderId).arg(m_FmOrdersMap.size());
result=false; result=false;
error=QString::fromLocal8Bit("%1订单并不存在m_orderMap[键值对]中;m_simValidOrderMapQueue.size()=%2").arg(orderId).arg(m_simValidOrderMapQueue.size()); error=QString::fromLocal8Bit("%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2").arg(orderId).arg(m_FmOrdersMap.size());
return result; return result;
} }
if(m_ordersEntryList.contains(orderId)) if(m_simValidOrdersList.contains(orderId))
{ {
if(order_p->putType==1) if(order_p->pushOrderType==1)
{ {
SimProcOrderDB::getInstance().updatePushOrderStatus(orderId,1); SimProcOrderDB::getInstance().updatePushOrderStatus(orderId,1);
SimProcOrderDB::getInstance().updatePosOrderCheckNo(orderId,posSaleId); SimProcOrderDB::getInstance().updatePosOrderCheckNo(orderId,posCheckNo);
} }
else else
{ {
SimProcOrderDB::getInstance().updateRefundOrderStatus(orderId,1); SimProcOrderDB::getInstance().updateRefundOrderStatus(orderId,1);
} }
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
m_ordersEntryList.removeOne(orderId); m_simValidOrdersList.removeOne(orderId);
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
} }
else{ else{
order_p->isCancle = false; order_p->isCancle = false;
order_p->isPush = true; order_p->isPush = true;
order_p->putType = 0; order_p->pushOrderType = 0;
order_p->putTimes=0; order_p->pushOrderTimes=0;
m_OrderEntryMutex.lock(); m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderId)) if(!m_simValidOrdersList.contains(orderId))
{ {
m_ordersEntryList.append(orderId); m_simValidOrdersList.append(orderId);
} }
m_OrderEntryMutex.unlock(); m_OrderEntryMutex.unlock();
} }
...@@ -1282,12 +1285,112 @@ bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1282,12 +1285,112 @@ bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data,
} }
return result; return result;
} }
bool FlowControl::_Get11ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error)
bool FlowControl::_ResponseSimphony05Request(const QJsonObject &content, QJsonObject &data, QString &error)
{
// 从 _ResponseSimphony04Request 函数拷贝过来;未做任何改动;【后期将用05代替04的业务】
QLOG_INFO()<<__FUNCTION__;
bool result=true;
if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString();
QString posCheckNo=content["posSaleId"].toString();
if(posCheckNo.isEmpty())
{
posCheckNo=m_orderIdToPosCheckNoMap.value(orderId);
}
if(!posCheckNo.isEmpty()&&!orderId.isEmpty())
{
if(!m_orderIdToPosCheckNoMap.contains(orderId))
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---Simphony_Script请求[05:返回小票号,同时更新POS本地数据库打印] %1订单已经成功推送给simphony:--->>>>]").arg(orderId);
m_orderIdToPosCheckNoMap.insert(orderId,posCheckNo);
}
OrderObject* order_p = m_FmOrdersMap.value(orderId);
if (!order_p){
QLOG_ERROR()<<QString::fromLocal8Bit("[<<<<---%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2--->>>>]").arg(orderId).arg(m_FmOrdersMap.size());
result=false;
error=QString::fromLocal8Bit("%1订单并不存在m_FmOrdersMap[键值对]中;m_FmOrdersMap.size()=%2").arg(orderId).arg(m_FmOrdersMap.size());
return result;
}
if(m_simValidOrdersList.contains(orderId))
{
/**** action:04:功能:目前先不使用;
if(order_p->pushOrderType==1)
{
SimProcOrderDB::getInstance().updatePushOrderStatus(orderId,1);
SimProcOrderDB::getInstance().updatePosOrderCheckNo(orderId,posCheckNo);
}
else
{
SimProcOrderDB::getInstance().updateRefundOrderStatus(orderId,1);
}
****/
/***** 更新 POS本地数据库的打印信息是否成功;begin:*********/
int retSyncOrderPrintInfo = 1;
// int retSyncOrderPrintInfo = 0;
/***** 更新 POS本地数据库的打印信息是否成功;end:********/
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:1->成功********/
if(retSyncOrderPrintInfo){
//m_OrderEntryMutex.lock();
//m_simValidOrdersList.removeOne(orderId);
//m_OrderEntryMutex.unlock();
QJsonObject rObj, cObj;
rObj.insert("fm_cmd", "");
rObj.insert("fm_ver", "1.0");
cObj.insert("pay_id", "002");
cObj.insert("pay_str", QString::fromLocal8Bit("非码外卖"));
cObj.insert("retSyncOrderPrintInfo",retSyncOrderPrintInfo); //同步POS本地数据库打印信息结果:[1:同步成功;0:同步失败]
cObj.insert("paid_trans_id",orderId);
cObj.insert("pos_sale_id", posCheckNo);
cObj.insert("products_fee", order_p->productPrice); // 商品金额
cObj.insert("discount_fee", 0); // 优惠总额
cObj.insert("msr_card_no", (order_p->msr_no.length()==0)?order_p->customerId:order_p->msr_no); // MSR卡号
rObj.insert("pay_id", cObj);
data = rObj;
}
/***** 解析 同步更新POS本地数据库是否成功:retSyncOrderPrintInfo:0->失败*****/
else{
result=false;
error=QString::fromLocal8Bit("POS本地数据库的打印信息操作失败");
}
}
else{
/**** action:04:功能:目前先不使用;
order_p->isCancle = false;
order_p->isPush = true;
order_p->pushOrderType = 0;
order_p->pushOrderTimes=0;
****/
m_OrderEntryMutex.lock();
if(!m_simValidOrdersList.contains(orderId))
{
m_simValidOrdersList.append(orderId);
}
m_OrderEntryMutex.unlock();
}
}
else{
result=false;
error=QString::fromLocal8Bit("订单号或者短号不能为空");
}
}
else{
result=false;
error=QString::fromLocal8Bit("请求参数错误");
}
return result;
}
bool FlowControl::_ResponseSimphony11Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
bool result=true; bool result=true;
if(!m_bLoginResult){ if(!m_bLoginResult){
error = QString("FMOMS未登录"); error = QString::fromLocal8Bit("FMOMS未登录");
return false; return false;
} }
else{ else{
...@@ -1302,7 +1405,7 @@ bool FlowControl::_Get11ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1302,7 +1405,7 @@ bool FlowControl::_Get11ReplyJson(const QJsonObject &content, QJsonObject &data,
} }
return result; return result;
} }
bool FlowControl::_Get12ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error) bool FlowControl::_ResponseSimphony12Request(const QJsonObject &content, QJsonObject &data, QString &error)
{ {
if(!content["storeId"].toString().compare(m_storeId)) if(!content["storeId"].toString().compare(m_storeId))
{ {
...@@ -1317,7 +1420,7 @@ bool FlowControl::_Get12ReplyJson(const QJsonObject &content, QJsonObject &data, ...@@ -1317,7 +1420,7 @@ bool FlowControl::_Get12ReplyJson(const QJsonObject &content, QJsonObject &data,
return false; return false;
} }
bool FlowControl::_GetLoginReplyJson(const QJsonObject &content,QString &error) bool FlowControl::_ResponseSimReqTryLogin(const QJsonObject &content,QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
m_storeId=content["storeId"].toString(); m_storeId=content["storeId"].toString();
...@@ -1331,7 +1434,7 @@ bool FlowControl::_GetLoginReplyJson(const QJsonObject &content,QString &error) ...@@ -1331,7 +1434,7 @@ bool FlowControl::_GetLoginReplyJson(const QJsonObject &content,QString &error)
return true; return true;
} }
bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QString &orderId) bool FlowControl::_ResponseSimReqFristOrderData(QJsonObject &data, QString &error, const QString &orderId)
{ {
QLOG_INFO()<<__FUNCTION__<<error<<orderId; QLOG_INFO()<<__FUNCTION__<<error<<orderId;
bool result=true; bool result=true;
...@@ -1340,7 +1443,7 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS ...@@ -1340,7 +1443,7 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
error = QString::fromLocal8Bit("FMOMS 未登录"); error = QString::fromLocal8Bit("FMOMS 未登录");
return false; return false;
} }
if(m_ordersEntryList.isEmpty()) if(m_simValidOrdersList.isEmpty())
{ {
error = QString::fromLocal8Bit("没有新订单待拉取"); error = QString::fromLocal8Bit("没有新订单待拉取");
result = true; result = true;
...@@ -1348,24 +1451,24 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS ...@@ -1348,24 +1451,24 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
else else
{ {
error.clear(); error.clear();
QString orderId=m_ordersEntryList.first(); QString orderId=m_simValidOrdersList.first();
int pullNum=MAXPUTTIMES; int pullNum=MAXPUTTIMES;
foreach (auto value, m_ordersEntryList) { foreach (auto value, m_simValidOrdersList) {
int num = m_simValidOrderMapQueue.value(value)->putTimes; int num = m_FmOrdersMap.value(value)->pushOrderTimes;
if(pullNum>num) if(pullNum>num)
{ {
pullNum=num; pullNum=num;
orderId=value; orderId=value;
} }
} }
OrderObject* orderObject = m_simValidOrderMapQueue.value(orderId); OrderObject* orderObject = m_FmOrdersMap.value(orderId);
if(MAXPUTTIMES==orderObject->putTimes) if(MAXPUTTIMES==orderObject->pushOrderTimes)
{ {
orderObject->putTimes = 0; orderObject->pushOrderTimes = 0;
} }
orderObject->putTimes=orderObject->putTimes+1; orderObject->pushOrderTimes=orderObject->pushOrderTimes+1;
QJsonObject rObj, cObj; QJsonObject rObj, cObj;
if(orderObject->putType==1) if(orderObject->pushOrderType==1)
{ {
rObj.insert("fm_cmd", "put_order"); rObj.insert("fm_cmd", "put_order");
} }
...@@ -1393,6 +1496,8 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS ...@@ -1393,6 +1496,8 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
cObj.insert("service_fee", /*orderObject->service_fee*/0); // 平台佣金 cObj.insert("service_fee", /*orderObject->service_fee*/0); // 平台佣金
cObj.insert("discount_fee", /*orderObject->discount_fee*/0); // 优惠总额 cObj.insert("discount_fee", /*orderObject->discount_fee*/0); // 优惠总额
cObj.insert("dis_shop_fee", /*orderObject->dis_shop_fee*/0); // 商家承担优惠金额 cObj.insert("dis_shop_fee", /*orderObject->dis_shop_fee*/0); // 商家承担优惠金额
cObj.insert("msr_card_no", (orderObject->msr_no.length()==0)?orderObject->customerId:orderObject->msr_no); // MSR卡号
cObj.insert("retSyncOrderPrintInfo",0); // 同步POS本地数据库打印信息结果:[1:同步成功;0:同步失败; 默认:0]
cObj.insert("dis_platform_fee", /*orderObject->dis_platform_fee*/0); // 平台承担优惠金额 cObj.insert("dis_platform_fee", /*orderObject->dis_platform_fee*/0); // 平台承担优惠金额
cObj.insert("send_fee", orderObject->deliveryPrice); // 配送费 cObj.insert("send_fee", orderObject->deliveryPrice); // 配送费
cObj.insert("shop_fee", /*orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee*/0); // 商户能够拿到的钱(去除平台佣金) cObj.insert("shop_fee", /*orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee*/0); // 商户能够拿到的钱(去除平台佣金)
...@@ -1526,7 +1631,7 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI ...@@ -1526,7 +1631,7 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
void FlowControl::onGetOrderDetails(const QString& orderId) void FlowControl::onGetOrderDetails(const QString& orderId)
{ {
emit hideAlert(); emit hideAlert();
emit showOrderDetails(m_simValidOrderMapQueue.value(orderId)); emit showOrderDetails(m_FmOrdersMap.value(orderId));
} }
void FlowControl::onSerachOrder(const QString &text) void FlowControl::onSerachOrder(const QString &text)
...@@ -1536,7 +1641,7 @@ void FlowControl::onSerachOrder(const QString &text) ...@@ -1536,7 +1641,7 @@ void FlowControl::onSerachOrder(const QString &text)
{ {
QMap<QString, OrderObject*>::iterator order; QMap<QString, OrderObject*>::iterator order;
for(order = m_simValidOrderMapQueue.begin(); order!=m_simValidOrderMapQueue.end(); order++) for(order = m_FmOrdersMap.begin(); order!=m_FmOrdersMap.end(); order++)
{ {
QString orderId = order.key(); QString orderId = order.key();
QString phoneId = order.value()->phone; QString phoneId = order.value()->phone;
......
...@@ -66,8 +66,8 @@ private: ...@@ -66,8 +66,8 @@ private:
BillSocket *m_pullOrderListSocket; BillSocket *m_pullOrderListSocket;
BillSocket *m_procOrderSocket; BillSocket *m_procOrderSocket;
BillSocket *m_pullDishesSocket; BillSocket *m_pullDishesSocket;
// 为Simphony在FM外卖插件中维护<有效待拉取订单>的容器 // FM外卖插件维护的有效订单容器
QMap<QString, OrderObject*> m_simValidOrderMapQueue; QMap<QString, OrderObject*> m_FmOrdersMap;
// 是否第一次获取到门店信息 // 是否第一次获取到门店信息
bool m_bFirstRecvInfo; bool m_bFirstRecvInfo;
bool m_bLoginResult; bool m_bLoginResult;
...@@ -76,10 +76,10 @@ private: ...@@ -76,10 +76,10 @@ private:
JQHttpServer::TcpServerManage* m_tcpServerManage; JQHttpServer::TcpServerManage* m_tcpServerManage;
QMap<QString, QMultiMap<QString, dishesObject> >m_dishesMap; QMap<QString, QMultiMap<QString, dishesObject> >m_dishesMap;
// 入账list //等待Simphony拉取的有效订单队列list[orderId]
QStringList m_ordersEntryList; QStringList m_simValidOrdersList;
//订单号与pos短号映射 //订单号与pos短号映射
QMap<QString,QString> m_orderIdToPosSalesIdMap; QMap<QString,QString> m_orderIdToPosCheckNoMap;
//记录当前订单操作 //记录当前订单操作
QMap<QString, int> m_orderOperatePair; QMap<QString, int> m_orderOperatePair;
//订单拉取记录 //订单拉取记录
...@@ -243,20 +243,81 @@ private slots: ...@@ -243,20 +243,81 @@ private slots:
* */ * */
QJsonObject _PackHttpReplyJson(const int status, const QString& msg, const QJsonObject& data, const int &iscontinue); QJsonObject _PackHttpReplyJson(const int status, const QString& msg, const QJsonObject& data, const int &iscontinue);
/** /**
*功能:清空订单Map里的订单 *功能:定时清空订单Map里两天前的订单
*参数:无 *参数:无
*返回:无 *返回:无
**/ **/
void _ClearOrder(); void _CrondClearExpireOrder();
bool _GetReplyJson(const QJsonObject &content, QJsonObject &data,QString &error);
bool _Get01ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); /**
bool _Get02ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); *功能:FM外卖插件为响应Simphony请求准备返回数据
bool _Get03ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); *参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
bool _Get04ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); *返回:是否准备成功;
bool _Get11ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); **/
bool _Get12ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error); bool _ResponseSimphonyRequest(const QJsonObject &content, QJsonObject &data,QString &error);
bool _GetLoginReplyJson(const QJsonObject &content, QString &error);
bool _GetQueryReplyJson(QJsonObject &data,QString &error, const QString &orderId); /**
*功能:FM外卖插件为响应Simphony请求[action:01 -> 拉取订单]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony01Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:02 -> 确认订单]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony02Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:03 -> 取消订单]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony03Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:04 -> 汇报订单Sim/POS产生的小票号]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony04Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:05 -> simphony更新订单数据到POS本地数据库以以便POS打印小票及汇总单信息]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony05Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:11 -> Sim/POS推送订单到FM插件]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony11Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[action:12 -> Sim/POS推送门店营业状态]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimphony12Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件响应Simphony请求时,如果外卖插件未登录则进行登陆;
*参数:1、请求json参数;2、返回错误信息;
*返回:是否登陆成功;
**/
bool _ResponseSimReqTryLogin(const QJsonObject &content, QString &error);
/**
*功能:FM外卖插件为响应Simphony请求[查询FM插件第一条订单数据作为返回数据]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseSimReqFristOrderData(QJsonObject &data,QString &error, const QString &orderId);
// 单位转换 // 单位转换
QString _Penny2Dollar(int penny); QString _Penny2Dollar(int penny);
......
...@@ -86,17 +86,17 @@ public: ...@@ -86,17 +86,17 @@ public:
QString watercourseId; //流水号(取餐号) QString watercourseId; //流水号(取餐号)
QString customerId; //用户编号 QString customerId; //用户编号
QString customerName;//用户名称 QString customerName;//用户名称
QString posCheckNo; QString posCheckNo; // POS小票号
QString phone; QString phone;
QString msr_no; QString msr_no; //msr卡号
QString storeId; QString storeId;
QString storeName; QString storeName;
QString storeAddress; QString storeAddress;
QString channel; QString channel;
QString payWay; QString payWay;
QString deliveryTime; QString deliveryTime; //配送时间
QString riderName; QString riderName; //骑手名
QString riderPhone; QString riderPhone; //骑手电话
QString createTime; QString createTime;
QString confirmTime; QString confirmTime;
QString sendTime; QString sendTime;
...@@ -107,8 +107,8 @@ public: ...@@ -107,8 +107,8 @@ public:
QString invoiceType; QString invoiceType;
QString invoiceTitle; QString invoiceTitle;
QString invoiceTaxpayerId; QString invoiceTaxpayerId;
QString firstName; QString firstName; //用户名字;
QString lastName; QString lastName; //用户姓;
QString longitude; QString longitude;
QString latitude; QString latitude;
QString street; QString street;
...@@ -125,8 +125,8 @@ public: ...@@ -125,8 +125,8 @@ public:
int payStatus; int payStatus;
int refundStatus; int refundStatus;
int deliveryChannel; int deliveryChannel;
int putType; int pushOrderType;
int putTimes; int pushOrderTimes;
bool isPush; bool isPush;
bool isCancle; bool isCancle;
QString getChannelName(); QString getChannelName();
......
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