Commit bc2bf128 by wuyang.zou

1、变更母子门店 模式;

2、优化完成 WSG 定义字典组合;

3、额外扩展券的张数到 14张;
parent cd77de45
Pipeline #21101 failed with stage
in 12 seconds
...@@ -302,6 +302,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -302,6 +302,8 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->deliveryDiscount = 0; orderObject->deliveryDiscount = 0;
orderObject->forwardPosStatus =0; orderObject->forwardPosStatus =0;
orderObject->negativePosStatus =0; orderObject->negativePosStatus =0;
orderObject->businessType = "0";
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
orderObject->pushOrderType=0; orderObject->pushOrderType=0;
...@@ -676,6 +678,10 @@ bool FlowControl::_Login() ...@@ -676,6 +678,10 @@ bool FlowControl::_Login()
//必须在登录请求的时候才能去实时获取POS的IP地址;否则可能会出现 127.0.0.1的情况出现; //必须在登录请求的时候才能去实时获取POS的IP地址;否则可能会出现 127.0.0.1的情况出现;
_GetIpAddress(); _GetIpAddress();
m_subStoreId = ConfigManger::GetInstance().GetSubStoreId();
// 同时校验 配置的 子门店 与 母门店的前三位是否一致;增加安全保护机制;
m_storeId = (m_subStoreId.length() && m_subStoreId.left(3) == m_storeId.left(3) )?m_subStoreId:m_storeId;
sendJson = DataManger::GetInstance().GetLoginData(ConfigManger::GetInstance().GetPartnerId(),m_storeId, sendJson = DataManger::GetInstance().GetLoginData(ConfigManger::GetInstance().GetPartnerId(),m_storeId,
m_password, m_posId, m_cashierId,m_ipPortAddress); m_password, m_posId, m_cashierId,m_ipPortAddress);
emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在登录......")); emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在登录......"));
...@@ -2478,7 +2484,7 @@ bool FlowControl::_ResponseHM21Request(const QJsonObject &content, QJsonObject & ...@@ -2478,7 +2484,7 @@ bool FlowControl::_ResponseHM21Request(const QJsonObject &content, QJsonObject &
bool FlowControl::_ResponseSimReqTryLogin(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(); //未登陆成功前 storeId;
m_posId=content["posId"].toString(); m_posId=content["posId"].toString();
m_cashierId=content["operatorId"].toString(); m_cashierId=content["operatorId"].toString();
m_cashierName=content["operatorName"].toString(); m_cashierName=content["operatorName"].toString();
...@@ -2493,7 +2499,6 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2493,7 +2499,6 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
{ {
QLOG_INFO()<<__FUNCTION__<<error<<orderId; QLOG_INFO()<<__FUNCTION__<<error<<orderId;
m_storeId=content["storeId"].toString();
m_posId=content["posId"].toString(); m_posId=content["posId"].toString();
m_cashierId=content["operatorId"].toString(); m_cashierId=content["operatorId"].toString();
m_cashierName=content["operatorName"].toString(); m_cashierName=content["operatorName"].toString();
...@@ -2606,7 +2611,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2606,7 +2611,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
// MOP自测订单 在下方处理;星巴克-预约订单:在下方处理; // MOP自测订单 在下方处理;星巴克-预约订单:在下方处理;
// OMS提供的数据://订单渠道: 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP; // OMS提供的数据://订单渠道: 星巴克-MOD,百度外卖,饿了么APP,美团外卖,星巴克-MOP;
// MOD渠道对应的业务逻辑 ; // MOD渠道对应的业务逻辑 ;
else if("MOD" == orderObject->channel) { else if ( "MOD" == orderObject->channel ) {
// platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat 【businessType:10-预约 20-WSG, 30-拼团】; 5 口碑; // platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat 【businessType:10-预约 20-WSG, 30-拼团】; 5 口碑;
if ( "4" == orderObject->platformSource ) { if ( "4" == orderObject->platformSource ) {
if ( "20" == orderObject->businessType ) { if ( "20" == orderObject->businessType ) {
...@@ -2641,8 +2646,22 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2641,8 +2646,22 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
tempSbkAppPayType = -1; tempSbkAppPayType = -1;
tempSbkAppPayValue = "-1"; tempSbkAppPayValue = "-1";
} }
} // MOP渠道对应的业务逻辑;
else if("MOP" == orderObject->channel){ } // 兼容渠道名称不统一问题
else if ( "WSG-MOD" == orderObject->channel ) {
// platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat 【businessType:10-预约, 30-拼团】; 5 口碑;
if ( "4" == orderObject->platformSource ) {
tempOrderType = 31;
} else {
tempOrderType = 9;
}
tempOrderPayType = 84;
tempSbkAppPayType = -1;
tempSbkAppPayValue = "-1";
}// MOP渠道对应的业务逻辑;
else if ( "MOP" == orderObject->channel ){
// 区别:口碑-MOP / App-MOP; // 区别:口碑-MOP / App-MOP;
if ( "5" == orderObject->platformSource ){ if ( "5" == orderObject->platformSource ){
tempOrderType = 29; tempOrderType = 29;
...@@ -2651,7 +2670,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2651,7 +2670,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
} }
tempOrderPayType = 84; tempOrderPayType = 84;
//星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3); //星巴克App端支付方式: 1:支付宝; 2:微信; 3:银联; 4:SVC卡; 5/7:MOP使用券或星星抵扣 0元支付; 8:IStore订单; 9:银联支付(=3);
if(4 == orderObject->payWay){ if ( 4 == orderObject->payWay ) {
tempSbkAppPayType = 14 ; tempSbkAppPayType = 14 ;
//svc卡支付时传交易流水号协定: //svc卡支付时传交易流水号协定:
if(OrderObject::Refunded == orderObject->orderStatus ||OrderObject::SimExceptRefund == orderObject->orderStatus){ if(OrderObject::Refunded == orderObject->orderStatus ||OrderObject::SimExceptRefund == orderObject->orderStatus){
...@@ -2702,7 +2721,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2702,7 +2721,7 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
if("ELE" == orderObject->channel) { if("ELE" == orderObject->channel) {
tempOrderType = 16; tempOrderType = 16;
} }
else if("MOD" == orderObject->channel) { else if ( "MOD" == orderObject->channel ) {
// platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat【businessType:10-预约 20-WSG, 30-拼团】; 5 口碑; // platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat【businessType:10-预约 20-WSG, 30-拼团】; 5 口碑;
if ( "4" == orderObject->platformSource ) { if ( "4" == orderObject->platformSource ) {
if ( "20" == orderObject->businessType ) { if ( "20" == orderObject->businessType ) {
...@@ -2713,6 +2732,15 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2713,6 +2732,15 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
} else { } else {
tempOrderType = 17; tempOrderType = 17;
} }
} // 兼容渠道名称不统一问题
else if ( "WSG-MOD" == orderObject->channel ) {
// platformSource:平台来源:1 app; 2 ele; 3 ors; 4 WeChat 【businessType:10-预约, 30-拼团】; 5 口碑;
if ( "4" == orderObject->platformSource ) {
tempOrderType = 32;
} else {
tempOrderType = 17;
}
} }
else if ( "MOP" == orderObject->channel ) { else if ( "MOP" == orderObject->channel ) {
// 区分: 口碑-MOP / App-MOP; // 区分: 口碑-MOP / App-MOP;
...@@ -2956,7 +2984,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso ...@@ -2956,7 +2984,8 @@ bool FlowControl::_ResponseSimReqFristOrderData(const QJsonObject &content, QJso
//声明临时栈对象: 单个券关联商品; //声明临时栈对象: 单个券关联商品;
QJsonObject tCoupProductObj; QJsonObject tCoupProductObj;
tCoupProductObj.insert("couponSeq", QString::number(i+1) ); tCoupProductObj.insert("couponSeq", QString::number(i+1) );
tCoupProductObj.insert("consume_num", 1); int tempQty = coupon->skus[tempSkuSeq]->qty >1 ? coupon->skus[tempSkuSeq]->qty : 1;
tCoupProductObj.insert("consume_num", tempQty);
tCoupProductObj.insert("pid", coupon->skus[tempSkuSeq]->code); tCoupProductObj.insert("pid", coupon->skus[tempSkuSeq]->code);
//如果单品是券menuItem: 手动将商品单价赋值为 1元 (100分); //如果单品是券menuItem: 手动将商品单价赋值为 1元 (100分);
//需要考虑 门店券 蛋糕的Combo头开始会限定后续蛋糕子项的价格后面的价格是否会都是0; //需要考虑 门店券 蛋糕的Combo头开始会限定后续蛋糕子项的价格后面的价格是否会都是0;
......
...@@ -91,6 +91,7 @@ private: ...@@ -91,6 +91,7 @@ private:
private: private:
// 门店信息 // 门店信息
QString m_storeId; QString m_storeId;
QString m_subStoreId;
QString m_ipAddress; // 门店POS的 IP 地址 QString m_ipAddress; // 门店POS的 IP 地址
QString m_ipPortAddress; // 门店POS的 IP+端口 地址 QString m_ipPortAddress; // 门店POS的 IP+端口 地址
QString m_password; QString m_password;
......
...@@ -129,6 +129,11 @@ QString ConfigManger::GetPartnerId() ...@@ -129,6 +129,11 @@ QString ConfigManger::GetPartnerId()
return m_config->value(INI_PARTNERID).toString(); return m_config->value(INI_PARTNERID).toString();
} }
QString ConfigManger::GetSubStoreId()
{
return m_config->value(INI_SUBSTOREID).toString();
}
int ConfigManger::GetUpdDishesInterval() int ConfigManger::GetUpdDishesInterval()
{ {
return m_config->value(INI_INTERVAL).toInt(); return m_config->value(INI_INTERVAL).toInt();
......
...@@ -116,6 +116,12 @@ public: ...@@ -116,6 +116,12 @@ public:
* */ * */
QString GetPartnerId(); QString GetPartnerId();
/* 功能:获取子门店号
* 参数:NULL
* 返回:前缀
* */
QString GetSubStoreId();
/* 功能:获取同步库存的间隔 /* 功能:获取同步库存的间隔
* 参数:NULL * 参数:NULL
* 返回:前缀 * 返回:前缀
......
...@@ -31,6 +31,12 @@ void DataManger::SetStoreId(const QString &storeId) ...@@ -31,6 +31,12 @@ void DataManger::SetStoreId(const QString &storeId)
m_storeId = storeId; m_storeId = storeId;
} }
void DataManger::SetSubStoreId(const QString &subStoreId)
{
m_subStoreId = subStoreId;
}
void DataManger::SetPosIpAddress(const QString &posIpAddress) void DataManger::SetPosIpAddress(const QString &posIpAddress)
{ {
m_posIpAddress = posIpAddress; m_posIpAddress = posIpAddress;
......
...@@ -20,6 +20,13 @@ public: ...@@ -20,6 +20,13 @@ public:
* */ * */
void SetStoreId(const QString& storeId); void SetStoreId(const QString& storeId);
/* 功能:设置子门店号
* 参数:[1]门店号
* 返回:NULL
* */
void SetSubStoreId(const QString& subStoreId);
/* 功能:设置POS IP Address; /* 功能:设置POS IP Address;
* 参数:[1]posIpAddress * 参数:[1]posIpAddress
* 返回:NULL * 返回:NULL
...@@ -130,6 +137,7 @@ private: ...@@ -130,6 +137,7 @@ private:
// token // token
QString m_token; QString m_token;
QString m_storeId; QString m_storeId;
QString m_subStoreId;
QString m_partnerId; QString m_partnerId;
QString m_posIpAddress; QString m_posIpAddress;
......
...@@ -135,7 +135,8 @@ bool PrintCupStickPosDB::insertOrderProduct(OrderObject* orderObj,const QString& ...@@ -135,7 +135,8 @@ bool PrintCupStickPosDB::insertOrderProduct(OrderObject* orderObj,const QString&
/**********************************************************************************/ /**********************************************************************************/
/********************* WSG-杯贴祝福-商品券号关联数据; **************************/ /********************* WSG-杯贴祝福-商品券号关联数据; **************************/
if ( "20" == orderObj->businessType ) { if ( ("WSG-MOD" == orderObj->channel && "4" == orderObj->platformSource )
|| ("MOD" == orderObj->channel && "4" == orderObj->platformSource && "20" == orderObj->businessType ) ) {
for (int i=0; i < orderObj->coupList.count(); i++) { for (int i=0; i < orderObj->coupList.count(); i++) {
CouponsObject* coupon = orderObj->coupList.at(i); CouponsObject* coupon = orderObj->coupList.at(i);
...@@ -214,6 +215,7 @@ bool PrintCupStickPosDB::insertOrderProduct(OrderObject* orderObj,const QString& ...@@ -214,6 +215,7 @@ bool PrintCupStickPosDB::insertOrderProduct(OrderObject* orderObj,const QString&
} }
/********************* 拼单-商品关联数据; **************************/ /********************* 拼单-商品关联数据; **************************/
// "MOD" == orderObj->channel && "4" == orderObj->platformSource && "30" == orderObj->businessType
else if ( "30" == orderObj->businessType ) { else if ( "30" == orderObj->businessType ) {
for (int i=0; i < orderObj->proList.count(); i++) { for (int i=0; i < orderObj->proList.count(); i++) {
dishesObject* dish=orderObj->proList.at(i); dishesObject* dish=orderObj->proList.at(i);
......
...@@ -570,7 +570,13 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString& ...@@ -570,7 +570,13 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
query.addBindValue(orderObj->memo); // --订单备注 query.addBindValue(orderObj->memo); // --订单备注
query.addBindValue(orderObj->secretSignal); // --接头暗号 query.addBindValue(orderObj->secretSignal); // --接头暗号
query.addBindValue(orderObj->consumerRemark); // --顾客备注 query.addBindValue(orderObj->consumerRemark); // --顾客备注
query.addBindValue(orderObj->businessType.toInt()); // --订单业务类型: 10:预约单 20:WSG-杯贴祝福 30:拼单
// 与 oms协定此块业务出现 歧异 故在此处转换;
int tempBusinessType = orderObj->businessType.toInt();
if ( "WSG-MOD" == orderObj->channel && "4" == orderObj->platformSource)
tempBusinessType = 30;
query.addBindValue( tempBusinessType ); // --订单业务类型: 10:预约单 20:WSG-杯贴祝福 30:拼单
query.addBindValue(orderObj->appointedTime); // -- query.addBindValue(orderObj->appointedTime); // --
query.addBindValue(orderObj->appointedRemindTemplate); query.addBindValue(orderObj->appointedRemindTemplate);
query.addBindValue(orderObj->orderType); query.addBindValue(orderObj->orderType);
...@@ -609,10 +615,9 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString& ...@@ -609,10 +615,9 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj,const QString&
.arg((orderObj->waybillId).length()?orderObj->waybillId:QString("0")) .arg((orderObj->waybillId).length()?orderObj->waybillId:QString("0"))
.arg(orderObj->pickupCode.length()==0?0:orderObj->pickupCode.toInt()) .arg(orderObj->pickupCode.length()==0?0:orderObj->pickupCode.toInt())
.arg(orderObj->riderPhone).arg(orderObj->riderName).arg(abs(orderObj->disPlateformFee)) .arg(orderObj->riderPhone).arg(orderObj->riderName).arg(abs(orderObj->disPlateformFee))
.arg(orderObj->memo).arg(orderObj->secretSignal).arg(orderObj->consumerRemark).arg(orderObj->businessType.toInt()).arg(orderObj->appointedTime) .arg(orderObj->memo).arg(orderObj->secretSignal).arg(orderObj->consumerRemark).arg( tempBusinessType ).arg(orderObj->appointedTime)
.arg(orderObj->appointedRemindTemplate).arg(orderObj->orderType).arg(orderObj->channel).arg(orderObj->platformSource).arg(orderObj->payWay) .arg(orderObj->appointedRemindTemplate).arg(orderObj->orderType).arg(orderObj->channel).arg(orderObj->platformSource).arg(orderObj->payWay)
.arg(orderObj->customerId).arg(orderObj->customerName).arg(orderObj->msr_no).arg(orderObj->storeId).arg(orderObj->subStoreId) .arg(orderObj->customerId).arg(orderObj->customerName).arg(orderObj->msr_no).arg(orderObj->storeId).arg(orderObj->subStoreId)
.arg(orderObj->customerId).arg(orderObj->customerName).arg(orderObj->msr_no).arg(orderObj->storeId).arg(orderObj->subStoreId)
.arg(orderObj->storeName).arg(orderObj->storeAddress).arg(orderObj->isPackage).arg(orderObj->orderDiscount).arg(orderObj->totalPrice); .arg(orderObj->storeName).arg(orderObj->storeAddress).arg(orderObj->isPackage).arg(orderObj->orderDiscount).arg(orderObj->totalPrice);
} else { } else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Insert OrderId %1 Into customer_info Success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---SqlServer Database:Insert OrderId %1 Into customer_info Success--->>>>]").arg(orderObj->id);
......
...@@ -132,7 +132,7 @@ void OrderObject::FetchDataFromJson(const QJsonObject &json) ...@@ -132,7 +132,7 @@ void OrderObject::FetchDataFromJson(const QJsonObject &json)
QString OrderObject::getChannelName() QString OrderObject::getChannelName()
{ {
QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel); QLOG_INFO() << QString("[<<<<---OrderObject:getChannelName [%1]--->>>>]").arg(channel);
if ("MOD" == channel && 3 != orderType){ if ("MOD" == channel && 3 != orderType) {
if ( "4" == platformSource ) { if ( "4" == platformSource ) {
if ("20" == businessType) { if ("20" == businessType) {
return QString::fromLocal8Bit("微信用星说"); return QString::fromLocal8Bit("微信用星说");
...@@ -143,18 +143,26 @@ QString OrderObject::getChannelName() ...@@ -143,18 +143,26 @@ QString OrderObject::getChannelName()
} else { } else {
return QString::fromLocal8Bit("星-MOD"); return QString::fromLocal8Bit("星-MOD");
} }
}else if("MOD" == channel && 3 == orderType){
}else if ("MOD" == channel && 3 == orderType) {
return QString::fromLocal8Bit("星-客诉"); return QString::fromLocal8Bit("星-客诉");
}else if ("WSG-MOD" == channel) { // 兼容渠道名称不统一问题
return QString::fromLocal8Bit("微信用星说");
}else if("ELE" == channel){ }else if("ELE" == channel){
return QString::fromLocal8Bit("饿了么"); return QString::fromLocal8Bit("饿了么");
}else if("MOP" == channel && 4 != orderType){ }else if("MOP" == channel && 4 != orderType){
if ( "5" == platformSource ) { if ( "5" == platformSource ) {
return QString::fromLocal8Bit("口碑-MOP"); return QString::fromLocal8Bit("口碑-MOP");
} else { } else {
return QString::fromLocal8Bit("星-MOP"); return QString::fromLocal8Bit("星-MOP");
} }
}else if("MOP" == channel && 4 == orderType){ }else if("MOP" == channel && 4 == orderType){
return QString::fromLocal8Bit("星-自测"); return QString::fromLocal8Bit("星-自测");
}else{ }else{
return QString::fromLocal8Bit("未知"); return QString::fromLocal8Bit("未知");
} }
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
#define INI_DBSERVERPORT "DbServer/port" #define INI_DBSERVERPORT "DbServer/port"
#define INI_STOREID "Software/storeid" #define INI_STOREID "Software/storeid"
#define INI_POSNO "Software/posno" #define INI_POSNO "Software/posno"
#define INI_SUBSTOREID "Software/substoreid"
#define INI_PASSWORD "Software/password" #define INI_PASSWORD "Software/password"
#define INI_AUTOCONFIRM "Software/autoconfirm" #define INI_AUTOCONFIRM "Software/autoconfirm"
#define INI_PARTNERID "Software/partnerid" #define INI_PARTNERID "Software/partnerid"
...@@ -82,6 +83,7 @@ ...@@ -82,6 +83,7 @@
#define JSON_PARTNERID "partnerId" #define JSON_PARTNERID "partnerId"
#define JSON_ORGCODE "orgCode" #define JSON_ORGCODE "orgCode"
#define JSON_SUBORGCODE "subOrgCode"
#define JSON_POSNO "posNo" #define JSON_POSNO "posNo"
#define JSON_STORENAME "StoreName" #define JSON_STORENAME "StoreName"
#define JSON_USERID "userId" #define JSON_USERID "userId"
......
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