Commit 161b5df4 by wuyang.zou

support o2o-fulfillment auto insert option

Version: 2.2022.11.30
parent 0d527a29
Pipeline #42053 canceled with stage
in 0 seconds
......@@ -939,12 +939,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().syncOrderDataToDB orderId:%1 syncOrderRet:%2--->>>>]").arg(orderObject->id).arg(syncOrderRet);
// 更新订单的重打方式【支持补打方式】;
if ( orderObject->options.length() && orderObject->options.contains(JSON_PRINT_OPT) ) {
QJsonObject printOptions= orderObject->options[JSON_PRINT_OPT].toObject();
if ( orderObject->pluginOptions.length() && orderObject->pluginOptions.contains(JSON_PRINT_OPT) ) {
QJsonObject printOptions= orderObject->pluginOptions[JSON_PRINT_OPT].toObject();
bool reprintOrderRet = PrintMsgQueueDB::getInstance().resetPrintMsgStatus(orderObject, printOptions);
QLOG_INFO() << QString("[<<<<---PrintMsgQueueDB.getInstance().resetPrintMsgStatus orderId:%1 reprintOrderRet:%2, printOpt= --->>>>]")
.arg(orderObject->id).arg(reprintOrderRet?1:0) << printOptions;
orderObject->options = QJsonObject(); // 补打完成后,必须清空补打选项设置; 否则订单状态后续变化将会出现重复打印;
orderObject->pluginOptions = QJsonObject(); // 补打完成后,必须清空补打选项设置; 否则订单状态后续变化将会出现重复打印;
}
}
......@@ -975,12 +975,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
}
// 更新订单的重打方式【支持补打方式】;
if ( orderObject->options.length() && orderObject->options.contains(JSON_PRINT_OPT) ) {
QJsonObject printOptions= orderObject->options[JSON_PRINT_OPT].toObject();
if ( orderObject->pluginOptions.length() && orderObject->pluginOptions.contains(JSON_PRINT_OPT) ) {
QJsonObject printOptions= orderObject->pluginOptions[JSON_PRINT_OPT].toObject();
int reprintOrderRet = PrintMsgQueueDB::getInstance().resetPrintMsgStatus(orderObject, printOptions );
QLOG_INFO() << QString("[<<<<---PrintMsgQueueDB.getInstance().resetPrintMsgStatus orderId:%1 reprintOrderRet:%2, printOpt= --->>>>]")
.arg(orderObject->id).arg(reprintOrderRet) << printOptions;
orderObject->options = QJsonObject(); // 补打完成后,必须清空补打选项设置; 否则订单状态后续变化将会出现重复打印;
orderObject->pluginOptions = QJsonObject(); // 补打完成后,必须清空补打选项设置; 否则订单状态后续变化将会出现重复打印;
}
}
......@@ -1500,8 +1500,8 @@ bool FlowControl::_PullOrderDetail(const QString& orderId, const QString& channe
if ( !order.contains( JSON_SKIP_PRINT ) ) {
order.insert( JSON_SKIP_PRINT, skipPrint );
}
if ( !order.contains( JSON_PUSH_OPTIONS ) ) {
order.insert( JSON_PUSH_OPTIONS, pushOptins );
if ( !order.contains( JSON_PUSH_PLUGIN_OPTIONS ) ) {
order.insert( JSON_PUSH_PLUGIN_OPTIONS, pushOptins );
}
_OrderAnalysis(order);
}
......@@ -4176,7 +4176,7 @@ void FlowControl::onProcessRetryInputOrder(const QString &orderId)
orderPull->pullErrorCount = 0;
orderPull->callBackUrl = TempOrderObject->callBackUrl;
orderPull->skipPrint = TempOrderObject->skipPrint;
orderPull->pushOptions = TempOrderObject->options;
orderPull->pushOptions = TempOrderObject->pluginOptions;
m_orderPullList.append(orderPull);
m_PullOrderDataMutex.unlock();
}
......
......@@ -193,8 +193,8 @@ void OrderObject::FromJson(const QJsonObject &json)
}
// 更新 QJsonObject Value;
if (json.contains(JSON_PUSH_OPTIONS) ) {
options = json[JSON_PUSH_OPTIONS].toObject();
if (json.contains(JSON_PUSH_PLUGIN_OPTIONS) ) {
pluginOptions = json[JSON_PUSH_PLUGIN_OPTIONS].toObject();
}
// 转换并存储 星巴克支付方式相关信息;
......
......@@ -113,7 +113,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone)
Q_PROPERTY (QString callBackUrl READ getCallBackUrl WRITE setCallBackUrl)
Q_PROPERTY (bool skipPrint READ getSkipPrint WRITE setSkipPrint)
Q_PROPERTY (QJsonObject options READ getOptions WRITE setOptions)
Q_PROPERTY (QJsonObject pluginOptions READ getPluginOptions WRITE setPluginOptions)
public:
OrderObject(QObject *parent=0)
......@@ -266,7 +266,7 @@ public:
QString callBackUrl; // 为 Fulfillment Service 后多个OMS, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口;
bool skipPrint; // 上游推送的订单 是否跳过打印;
//上游推送插件简要消息中包含的 key->options 特殊属性值: 将此属性值存储订单对象内存中
QJsonObject options;
QJsonObject pluginOptions;
int forwardPosStatus; // 正向单入机状态: 0:未知 1: 成功 2:失败;
int negativePosStatus; // 负向单同上;
......@@ -581,8 +581,8 @@ public:
inline bool getSkipPrint()const{return skipPrint;}
inline void setSkipPrint(const bool& v){skipPrint = v;}
inline QJsonObject getOptions()const{return options;}
inline void setOptions(const QJsonObject& v){options = v;}
inline QJsonObject getPluginOptions()const{return pluginOptions;}
inline void setPluginOptions(const QJsonObject& v){pluginOptions = v;}
};
......
......@@ -169,6 +169,7 @@
#define JSON_CALL_BACK_URL "callBackUrl"
#define JSON_SKIP_PRINT "skipPrint"
#define JSON_PUSH_OPTIONS "options"
#define JSON_PUSH_PLUGIN_OPTIONS "pluginOptions"
#define JSON_PRINT_OPT "printOpt"
#define JSON_PRINT_OPT_ALL "all"
#define JSON_PRINT_OPT_SUM "summary"
......
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