Commit 1d1cbf00 by wuyang.zou

fix bug: 新增对接 盒马 订单录入POS接口

parent 55247d2d
...@@ -1431,6 +1431,9 @@ bool FlowControl::_ResponseHttpRequest(const QJsonObject &content,QJsonObject &d ...@@ -1431,6 +1431,9 @@ bool FlowControl::_ResponseHttpRequest(const QJsonObject &content,QJsonObject &d
case 12://推送门店营业状态 case 12://推送门店营业状态
result=_ResponseSimphony12Request(content,data,error); result=_ResponseSimphony12Request(content,data,error);
break; break;
case 21://盒马生鲜 推送订单
result=_ResponseHM21Request(content,data,error);
break;
default: default:
error =QString::fromLocal8Bit("解析Http请求actionId值不在规定的接口文档内"); error =QString::fromLocal8Bit("解析Http请求actionId值不在规定的接口文档内");
result = false; result = false;
...@@ -1757,6 +1760,44 @@ bool FlowControl::_ResponseSimphony12Request(const QJsonObject &content, QJsonOb ...@@ -1757,6 +1760,44 @@ bool FlowControl::_ResponseSimphony12Request(const QJsonObject &content, QJsonOb
return false; return false;
} }
bool FlowControl::_ResponseHM21Request(const QJsonObject &content, QJsonObject &data, QString &error)
{
QLOG_INFO()<<__FUNCTION__;
//判断当前POS插件是否登录成功: 如果没有登录成功,尝试在次登录;
bool result=true;
if(!m_bLoginResult&&content.contains("storeId")) {
result=_ResponseSimReqTryLogin(content,error);
}
//如果登录成功 or 插件正在尝试登录中:则return true 并返回相应的错误信息;
if(result){
//<1>:更新 OrderObject 中的数据;
//获取门店营业状态
QString strOpeStatus=QString::fromLocal8Bit("正常");
emit setOpeStatus(strOpeStatus);
QJsonObject hmOrderJson = content["orderDetail"].toObject();
QLOG_INFO()<<"FlowControl::_ResponseHM21Request:"<<hmOrderJson;
if(!hmOrderJson.isEmpty()){
result = true;
error=QString::fromLocal8Bit("_ResponseHM21Request Action:21:accept HM Order Success");
_OrderAnalysis(hmOrderJson);
}else{
result = false;
error=QString::fromLocal8Bit("_ResponseHM21Request Action:21:accept HM Order empty");
}
//<2>:向simphony整合订单数据:准备向POS录单【_OrderAnalysis(hmOrderJson);函数会触发simphony录单动作(退单的情况也会存入队列中)】
//result=_ResponseSimReqFristOrderData(content, data,error,content["orderId"].toString());
} else {
result = false;
if(error.isEmpty()) {
error=QString::fromLocal8Bit("Response Simphony_Script Request 01: Login Store Failed");
}
}
return result;
}
bool FlowControl::_ResponseSimReqTryLogin(const QJsonObject &content,QString &error) bool FlowControl::_ResponseSimReqTryLogin(const QJsonObject &content,QString &error)
{ {
QLOG_INFO()<<__FUNCTION__; QLOG_INFO()<<__FUNCTION__;
......
...@@ -297,76 +297,6 @@ private slots: ...@@ -297,76 +297,6 @@ private slots:
**/ **/
void _CrondClearExpireOrder(); void _CrondClearExpireOrder();
/**
*功能:FM外卖插件为响应Simphony请求准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
//bool _ResponseHttpRequest(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能: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 _ResponseOMS11Request(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);
...@@ -512,6 +442,14 @@ public slots: ...@@ -512,6 +442,14 @@ public slots:
**/ **/
bool _ResponseSimphony12Request(const QJsonObject &content, QJsonObject &data,QString &error); bool _ResponseSimphony12Request(const QJsonObject &content, QJsonObject &data,QString &error);
/**
*功能:FM外卖插件为响应盒马生鲜 推订单请求[action:21]准备返回数据
*参数:1、请求json参数;2、准备返回请求数据的Buff;3、返回错误信息;
*返回:是否准备成功;
**/
bool _ResponseHM21Request(const QJsonObject &content, QJsonObject &data,QString &error);
/** /**
*功能:FM外卖插件响应Simphony请求时,如果外卖插件未登录则进行登陆; *功能:FM外卖插件响应Simphony请求时,如果外卖插件未登录则进行登陆;
*参数:1、请求json参数;2、返回错误信息; *参数:1、请求json参数;2、返回错误信息;
......
...@@ -76,6 +76,8 @@ QString OrderObject::getChannelName() ...@@ -76,6 +76,8 @@ QString OrderObject::getChannelName()
return QString::fromLocal8Bit("百度外卖"); return QString::fromLocal8Bit("百度外卖");
}else if("MOD" == channel && 3 == orderType){ }else if("MOD" == channel && 3 == orderType){
return QString::fromLocal8Bit("客诉单"); return QString::fromLocal8Bit("客诉单");
}else if("HM" == channel){
return QString::fromLocal8Bit("盒马");
} }
else{ else{
return QString::fromLocal8Bit("未知"); return QString::fromLocal8Bit("未知");
......
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