Commit 941e58fa by wuyang.zou

<1> 远端PosAgent服务掉线,插件程序异常奔溃问题

<2> 美好咖啡订单标识
<3> 微信拼单昵称存储
<4> 高德-Curbside: 街送标识 & 制作时间实时刷新
parent d11860bf
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <QVariantMap> #include <QVariantMap>
#include <QJsonDocument> #include <QJsonDocument>
#include <QSslSocket> #include <QSslSocket>
#include <qabstractsocket.h>
#include <QApplication> #include <QApplication>
#include <QHostInfo> #include <QHostInfo>
#include <QThread> #include <QThread>
...@@ -22,14 +23,17 @@ ...@@ -22,14 +23,17 @@
#include "alertForm.h" #include "alertForm.h"
#define CLOSE_SOCKES(socket) do{ \ #define CLOSE_SOCKES(socket) do{ \
if(socket != NULL && socket->isOpen()){ \ if ( socket != NULL ) { \
socket->close(); \ if ( socket->isOpen() ) \
socket->close(); \
\
delete socket; \ delete socket; \
socket = NULL; \ socket = NULL; \
} \ } \
} while(0) } while(0)
#define DATAHEAD_INIT(head, mgc, ver, seq, cmd, serize, len) do{ \ #define DATAHEAD_INIT(head, mgc, ver, seq, cmd, serize, len) do{ \
head.magic = mgc; \ head.magic = mgc; \
head.version = ver; \ head.version = ver; \
...@@ -127,7 +131,7 @@ public: ...@@ -127,7 +131,7 @@ public:
//Socket Thread Recv Msg Entry //Socket Thread Recv Msg Entry
void threadStart(); void threadStart();
void onFlowControlLoginSuccess( bool fcLoginResult, bool fcOpenTcpFlag, QString &storeId, QString &posIp, int &posPluginPort ); void onFlowControlLoginSuccess( bool fcLoginResult, bool fcOpenTcpFlag, QString &storeId, QString &posIp, QString &posHostName, QString &posWorkStationNum );
signals: signals:
void connected(); void connected();
...@@ -151,6 +155,10 @@ public: ...@@ -151,6 +155,10 @@ public:
QString _storeId; QString _storeId;
// Mac Address; // Mac Address;
QString _macAddress; QString _macAddress;
// HostName;
QString _hostName;
// WorkStation Id POS工作站编号;
QString _workStationNum;
// Pos Local Machine IP; // Pos Local Machine IP;
QString _localIp; QString _localIp;
// Pos Plugin Server Port; // Pos Plugin Server Port;
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <DTools/pmsOrdersData.h> #include <DTools/pmsOrdersData.h>
#include <QHostInfo> #include <QHostInfo>
#include <DTools/qtRedisClient.h> #include <DTools/qtRedisClient.h>
#include "SocketCommunicate.h"
FlowControl &FlowControl::GetInstance() FlowControl &FlowControl::GetInstance()
{ {
...@@ -163,8 +164,17 @@ bool FlowControl::_AppendOrderInfo2Redis(const OrderObject* orderObject) { ...@@ -163,8 +164,17 @@ bool FlowControl::_AppendOrderInfo2Redis(const OrderObject* orderObject) {
void FlowControl::_GetIpAddress() void FlowControl::_GetIpAddress()
{ {
/***已经验证:IP地址 优先取配置文件中的[IpAddress/ip];只有没有配置的情况才会根据主机名获取ipv4的IP地址,因此为保证IP的准确性,注释通过配置文件获取ip的代码***/ /***已经验证:IP地址 优先取配置文件中的[IpAddress/ip];只有没有配置的情况才会根据主机名获取ipv4的IP地址,因此为保证IP的准确性,注释通过配置文件获取ip的代码***/
std::string tempMacAddress = "";
int getMacRet = MacTool::GetMacByAdaptersAddresses( tempMacAddress );
if ( !getMacRet) {
QLOG_ERROR() << "FlowControl::_GetIpAddress MacTool->GetMacByAdaptersAddresses Falied";
}
m_posMacAddress = tempMacAddress.c_str();
QString ipAddress; QString ipAddress;
QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName()); QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
m_posHostName = info.hostName();
foreach(QHostAddress address,info.addresses()) { foreach(QHostAddress address,info.addresses()) {
if(address.protocol() == QAbstractSocket::IPv4Protocol) { if(address.protocol() == QAbstractSocket::IPv4Protocol) {
QLOG_INFO()<<QString("[<<<<---FlowControl::_GetIpAddress getFromLocalHostName:%1--->>>>]").arg(address.toString()); QLOG_INFO()<<QString("[<<<<---FlowControl::_GetIpAddress getFromLocalHostName:%1--->>>>]").arg(address.toString());
...@@ -172,11 +182,13 @@ void FlowControl::_GetIpAddress() ...@@ -172,11 +182,13 @@ void FlowControl::_GetIpAddress()
if(address.toString().length()>7 && address.toString()!= "127.0.0.1" && !(address.toString().contains("192.168.")) if(address.toString().length()>7 && address.toString()!= "127.0.0.1" && !(address.toString().contains("192.168."))
&& !(address.toString().contains("10.0.75.1") ) && !(address.toString().contains("172.") ) ) { && !(address.toString().contains("10.0.75.1") ) && !(address.toString().contains("172.") ) ) {
ipAddress=address.toString(); ipAddress=address.toString();
QLOG_INFO()<<QString("[<<<<---FlowControl::_GetIpAddress Request Real IpAddress:%1--->>>>]").arg(address.toString()); QLOG_INFO()<<QString("[<<<<---FlowControl::_GetIpAddress Request Real IpAddress: %1 hostName: %2 macAddress: %3 --->>>>]")
.arg(ipAddress).arg(m_posHostName).arg(m_posMacAddress);
break; break;
} }
} }
} }
m_ipAddress = ipAddress; m_ipAddress = ipAddress;
m_ipPortAddress = ipAddress+QString(":")+QString::number(ConfigManger::GetInstance().GetHttpServerPort()); m_ipPortAddress = ipAddress+QString(":")+QString::number(ConfigManger::GetInstance().GetHttpServerPort());
} }
...@@ -495,6 +507,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -495,6 +507,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->inAdvanceTakemeal = 0; orderObject->inAdvanceTakemeal = 0;
orderObject->globalServiceType = 0; orderObject->globalServiceType = 0;
orderObject->globalOrderType = 0; orderObject->globalOrderType = 0;
orderObject->isGiftitForward = 0 ;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
orderObject->pushOrderType=0; orderObject->pushOrderType=0;
...@@ -519,11 +532,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -519,11 +532,12 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
m_FmOrdersMap.insert(orderObject->id, orderObject); m_FmOrdersMap.insert(orderObject->id, orderObject);
QLOG_INFO() << QString("[<<<<---FmTakeout Valid Orders Map:Insert New Order[ OrderId: %1 OrderDesc: %2 OrderStatus: %3 " QLOG_INFO() << QString("[<<<<---FmTakeout Valid Orders Map:Insert New Order[ OrderId: %1 OrderDesc: %2 OrderStatus: %3 "
" MakeStatus: %4 oldArriverAhead: %5 NewArriverAhead: %6 ]--->>>>]") " MakeStatus: %4 oldArriverAhead: %5 NewArriverAhead: %6 expectDate: %7 reserveMakeTime: %8 remindTicketTime: %9 ]--->>>>]")
.arg(orderObject->id).arg( orderObject->getOrderStatusDec() ).arg(orderObject->orderStatus) .arg(orderObject->id).arg( orderObject->getOrderStatusDec() ).arg(orderObject->orderStatus)
.arg(orderObject->makeStatus).arg(pmsArriveAheadFlag).arg(orderObject->inAdvanceTakemeal); .arg(orderObject->makeStatus).arg(pmsArriveAheadFlag).arg(orderObject->inAdvanceTakemeal)
.arg(orderObject->expectDate).arg(orderObject->reserveMakeTime).arg(orderObject->remindTicketTime);
if(!pmsOrderStatusIsExistRet || !pmsMakeStatusIsExistRet || (pmsArriveAheadFlag != orderObject->inAdvanceTakemeal) ) { if ( !pmsOrderStatusIsExistRet || !pmsMakeStatusIsExistRet || ( pmsArriveAheadFlag != orderObject->inAdvanceTakemeal ) || ( 3 == orderObject->inAdvanceTakemeal ) ) {
//程序刚启动+量大+ 异步也无碍 顾无需加锁; //程序刚启动+量大+ 异步也无碍 顾无需加锁;
m_simValidOrdersList.append(orderObject->id); m_simValidOrdersList.append(orderObject->id);
} }
...@@ -537,15 +551,18 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -537,15 +551,18 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
int oldArriverAhead = orderObject->inAdvanceTakemeal; int oldArriverAhead = orderObject->inAdvanceTakemeal;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("[<<<<---FmTakeout Valid Order Map:Update orderId:%1 OldStatus:%2: curStatus:%3 " QLOG_INFO() << QString("[<<<<---FmTakeout Valid Order Map:Update orderId:%1 OldStatus:%2 curStatus:%3 "
"OldMakeStatus:%4: makeStatus:%5 OldArriverAhead:%6: ArriverAhead:%7 ]--->>>>]") "OldMakeStatus:%4 makeStatus:%5 OldArriverAhead:%6 NewArriverAhead:%7 expectDate: %8 reserveMakeTime: %9 remindTicketTime: %10 ]--->>>>]")
.arg(orderObject->id).arg(oldStatus).arg(orderObject->orderStatus) .arg(orderObject->id).arg(oldStatus).arg(orderObject->orderStatus)
.arg(oldMakeStatus).arg(orderObject->makeStatus).arg(oldArriverAhead).arg(orderObject->inAdvanceTakemeal); .arg(oldMakeStatus).arg(orderObject->makeStatus).arg(oldArriverAhead).arg(orderObject->inAdvanceTakemeal)
.arg(orderObject->expectDate).arg(orderObject->reserveMakeTime).arg(orderObject->remindTicketTime);
// 如果订单状态 或 制作状态 或 预约单提前到店 出现变化都需添加到队列; // 如果订单状态 或 制作状态 或 预约单提前到店 出现变化都需添加到队列;
if(oldStatus != orderObject->orderStatus || oldMakeStatus != orderObject->makeStatus || oldArriverAhead != orderObject->inAdvanceTakemeal) { if(oldStatus != orderObject->orderStatus || oldMakeStatus != orderObject->makeStatus
|| ( oldArriverAhead != orderObject->inAdvanceTakemeal ) || ( 3 == orderObject->inAdvanceTakemeal ) ) {
bRetOrderUpdateMutex =m_OrderUpdateMutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT); bRetOrderUpdateMutex =m_OrderUpdateMutex.tryLock(VALUE_TRYLOCKMEMTIMEOUT);
if(!bRetOrderUpdateMutex) { if(!bRetOrderUpdateMutex) {
QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:orderId:%1 OrderStatus:%2 MakeStatus:%3 ArriverAhead:%4 Change m_OrderUpdateMutex.tryLock Failed --->>>>]") QLOG_INFO() << QString("[<<<<---FmTakeout _OrderAnalysis:orderId:%1 OrderStatus:%2 MakeStatus:%3 ArriverAhead:%4 Changed, But m_OrderUpdateMutex.tryLock Failed --->>>>]")
.arg(orderObject->id).arg(orderObject->orderStatus).arg(orderObject->makeStatus).arg(orderObject->inAdvanceTakemeal); .arg(orderObject->id).arg(orderObject->orderStatus).arg(orderObject->makeStatus).arg(orderObject->inAdvanceTakemeal);
} else { } else {
m_waitUpdateOrderList.append(orderObject->id); m_waitUpdateOrderList.append(orderObject->id);
...@@ -561,7 +578,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -561,7 +578,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
emit startRemind(REMIND_REQREFUND_ORDER); emit startRemind(REMIND_REQREFUND_ORDER);
} }
switch (orderObject->orderStatus){ switch (orderObject->orderStatus) {
case OrderObject::NewOrder: case OrderObject::NewOrder:
break; break;
case OrderObject::Confirmed: case OrderObject::Confirmed:
...@@ -609,12 +626,13 @@ bool FlowControl::_GetStoreInfo() ...@@ -609,12 +626,13 @@ bool FlowControl::_GetStoreInfo()
} }
void FlowControl::_GetFcMajorInfo(bool &loginResult, bool &openTcpChannel, QString &storeId, QString &posIp, int &posPort){ void FlowControl::_GetFcMajorInfo(bool &loginResult, bool &openTcpChannel, QString &storeId, QString &posIp, QString &posHostName, QString &posWorkStationNum){
loginResult = m_bLoginResult; loginResult = m_bLoginResult;
openTcpChannel = m_openTcpChannel; openTcpChannel = m_openTcpChannel;
storeId = m_storeId; storeId = m_storeId;
posIp = m_ipAddress; posIp = m_ipAddress;
posPort = ConfigManger::GetInstance().GetHttpServerPort(); posHostName = m_posHostName;
posWorkStationNum = m_posWorkstationNum;
} }
QString FlowControl::_GetCashierId() QString FlowControl::_GetCashierId()
...@@ -659,6 +677,12 @@ bool FlowControl::_Login() ...@@ -659,6 +677,12 @@ bool FlowControl::_Login()
sendJson = DataManger::GetInstance().GetLoginData(ConfigManger::GetInstance().GetPartnerId(),m_storeId, sendJson = DataManger::GetInstance().GetLoginData(ConfigManger::GetInstance().GetPartnerId(),m_storeId,
m_password, m_posId, m_puginVersionComments,m_ipPortAddress,m_pmsMachineNo); m_password, m_posId, m_puginVersionComments,m_ipPortAddress,m_pmsMachineNo);
// 登录新增Pos相关属性字段;
sendJson.insert(JSON_POS_IP_ADDR, m_ipAddress);
sendJson.insert(JSON_POS_WORKS_NUM, m_posWorkstationNum);
sendJson.insert(JSON_POS_HOST_NAME, m_posHostName);
sendJson.insert(JSON_POS_MAC_ADDRESS, m_posMacAddress);
emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在登录......")); emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在登录......"));
QLOG_INFO() << QString("[<<<<---Login--->>>>][requestData:%1]")<<sendJson; QLOG_INFO() << QString("[<<<<---Login--->>>>][requestData:%1]")<<sendJson;
...@@ -742,8 +766,7 @@ bool FlowControl::_Login() ...@@ -742,8 +766,7 @@ bool FlowControl::_Login()
if ( m_bLoginResult && m_openTcpChannel ) { if ( m_bLoginResult && m_openTcpChannel ) {
QLOG_INFO() << QString("[<<<<---Login Success, Emit Signal To SocketCommunicate Begin Connect Tcp Socket --->>>>]"); QLOG_INFO() << QString("[<<<<---Login Success, Emit Signal To SocketCommunicate Begin Connect Tcp Socket --->>>>]");
int tmpPosPluginPort = ConfigManger::GetInstance().GetHttpServerPort(); emit doLoginSuccess(true, m_openTcpChannel, m_storeId, m_ipAddress, m_posHostName, m_posWorkstationNum );
emit doLoginSuccess(true, m_openTcpChannel, m_storeId, m_ipAddress, tmpPosPluginPort );
} }
return result; return result;
...@@ -930,6 +953,11 @@ bool FlowControl::_SendHeart() ...@@ -930,6 +953,11 @@ bool FlowControl::_SendHeart()
m_puginVersionComments = ConfigManger::GetInstance().GetOrderServerUrl(); m_puginVersionComments = ConfigManger::GetInstance().GetOrderServerUrl();
sendJson = DataManger::GetInstance().GetHeartData(m_password,m_posId,m_ipPortAddress,m_puginVersionComments,m_bLastHeartIsError,m_pmsMachineNo); sendJson = DataManger::GetInstance().GetHeartData(m_password,m_posId,m_ipPortAddress,m_puginVersionComments,m_bLastHeartIsError,m_pmsMachineNo);
sendJson.insert(JSON_POS_IP_ADDR, m_ipAddress);
sendJson.insert(JSON_POS_WORKS_NUM, m_posWorkstationNum);
sendJson.insert(JSON_POS_HOST_NAME, m_posHostName);
sendJson.insert(JSON_POS_MAC_ADDRESS, m_posMacAddress);
QLOG_INFO() << QString("[<<<<---Send Heart--->>>>][requestData:%1]")<<sendJson; QLOG_INFO() << QString("[<<<<---Send Heart--->>>>][requestData:%1]")<<sendJson;
QUrl TempQUrl = ConfigManger::GetInstance().GetLoginServerUrl()+ QUrl TempQUrl = ConfigManger::GetInstance().GetLoginServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_HEART); ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_HEART);
...@@ -1442,7 +1470,11 @@ void FlowControl::_ReportOMSRecordOrderInfo() ...@@ -1442,7 +1470,11 @@ void FlowControl::_ReportOMSRecordOrderInfo()
sendJson.insert("storeId",RepOMSRecOrderIn->storeId); sendJson.insert("storeId",RepOMSRecOrderIn->storeId);
sendJson.insert("remark",RepOMSRecOrderIn->remark); sendJson.insert("remark",RepOMSRecOrderIn->remark);
sendJson.insert("checkNo",RepOMSRecOrderIn->checkNo); sendJson.insert("checkNo",RepOMSRecOrderIn->checkNo);
sendJson.insert("ipAddress",m_ipAddress); sendJson.insert(JSON_IP_ADDRESS, m_ipAddress);
sendJson.insert(JSON_POS_WORKS_NUM, m_posWorkstationNum);
sendJson.insert(JSON_POS_HOST_NAME, m_posHostName);
sendJson.insert(JSON_POS_MAC_ADDRESS, m_posMacAddress);
// sendJson.insert(JSON_POS_PLUGIN_VERSION, RepOMSRecOrderIn->posPluginVersion);
sendJson.insert(JSON_PMSMACHINENO,m_pmsMachineNo); sendJson.insert(JSON_PMSMACHINENO,m_pmsMachineNo);
QString orderNoTemp = RepOMSRecOrderIn->orderNo; QString orderNoTemp = RepOMSRecOrderIn->orderNo;
......
...@@ -30,7 +30,7 @@ public: ...@@ -30,7 +30,7 @@ public:
* 参数: 1. 是否登录成功; 2.门店号; 3.PosPluginIp; 4.PosPlugin Port; * 参数: 1. 是否登录成功; 2.门店号; 3.PosPluginIp; 4.PosPlugin Port;
* 返回: Void; * 返回: Void;
* */ * */
void _GetFcMajorInfo(bool &loginResult, bool &openTcpChannel, QString &storeId, QString &posIp, int &posPort); void _GetFcMajorInfo(bool &loginResult, bool &openTcpChannel, QString &storeId, QString &posIp, QString &posHostName, QString &posWorkStationNum);
/* 功能:获取收银员ID /* 功能:获取收银员ID
...@@ -100,6 +100,9 @@ private: ...@@ -100,6 +100,9 @@ private:
QString m_storeId; QString m_storeId;
QString m_ipAddress = ""; // 门店POS的 IP 地址 QString m_ipAddress = ""; // 门店POS的 IP 地址
QString m_ipPortAddress; // 门店POS的 IP+端口 地址 QString m_ipPortAddress; // 门店POS的 IP+端口 地址
QString m_posHostName; // Pos 主机名;
QString m_posMacAddress; // Pos Mac地址;
QString m_posWorkstationNum; // Pos 工作站编号
QString m_pmsMachineNo; // 标志PMS 系统插件程序所在机器编号 QString m_pmsMachineNo; // 标志PMS 系统插件程序所在机器编号
QString m_password; QString m_password;
QString m_puginVersionComments; QString m_puginVersionComments;
...@@ -180,7 +183,7 @@ signals: ...@@ -180,7 +183,7 @@ signals:
// void doLogin(); // void doLogin();
// http门店POS登录成功后 发送信号给 SocketCommunicate; // http门店POS登录成功后 发送信号给 SocketCommunicate;
void doLoginSuccess(bool loginResult,bool openTcpFlag, QString &storeId, QString &posIp, int &posPort); void doLoginSuccess(bool loginResult,bool openTcpFlag, QString &storeId, QString &posIp, QString &posHostName, QString &posWorkStationNum);
/* 功能:隐藏通知窗口 /* 功能:隐藏通知窗口
......
...@@ -203,13 +203,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -203,13 +203,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"address_detail, consignee_name ,first_name,last_name,consignee_phone, delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time," "address_detail, consignee_name ,first_name,last_name,consignee_phone, delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,"
"is_package, last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, confirm_time,customer_id,customer_gender," "is_package, last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, confirm_time,customer_id,customer_gender,"
"way_bill_id,store_id,store_name,store_address,store_street, pos_id, lang, ext_info, rider_phone, rider_name, " "way_bill_id,store_id,store_name,store_address,store_street, pos_id, lang, ext_info, rider_phone, rider_name, "
"displateform_fee, make_status, make_source, make_device_id,reserve_type, appointed_time,appointed_remind_template,sub_store_id,global_order_type,global_service_type ) " "displateform_fee, make_status, make_source, make_device_id,reserve_type, appointed_time,appointed_remind_template,sub_store_id, "
"global_order_type,global_service_type,platform_source ) "
"VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, " "VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?," "?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
...@@ -278,10 +279,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -278,10 +279,14 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(orderObj->makeSource); // --提供制作状态来源 query.addBindValue(orderObj->makeSource); // --提供制作状态来源
query.addBindValue(orderObj->makeDeviceId); // --提供制作状态设备ID query.addBindValue(orderObj->makeDeviceId); // --提供制作状态设备ID
// 与 oms协定此块业务出现 歧异 故在此处转换; 【与PMS协定: businessType 10 预约;20 WSG;30 拼团】 // 与 oms协定此块业务出现 歧异 故在此处转换; 【与PMS协定: businessType -> 10: 预约; 20: WSG-用星说: 21: WSG-美好咖啡; 30: 拼团】
int tempBusinessType = orderObj->businessType.toInt(); int tempBusinessType = orderObj->businessType.toInt();
if ( "WSG-MOD" == orderObj->channel && "4" == orderObj->platformSource) if ( "WSG-MOD" == orderObj->channel && "4" == orderObj->platformSource) {
tempBusinessType = 20; if ( 1 == orderObj->isGiftitForward )
tempBusinessType = 21;
else
tempBusinessType = 20;
}
if ( 7 == orderObj->orderType || 11 == orderObj->orderType ) if ( 7 == orderObj->orderType || 11 == orderObj->orderType )
tempBusinessType = 10; tempBusinessType = 10;
else if (8 == orderObj->orderType) { else if (8 == orderObj->orderType) {
...@@ -294,6 +299,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -294,6 +299,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(orderObj->subStoreId); // --母子门店的子门店编号; query.addBindValue(orderObj->subStoreId); // --母子门店的子门店编号;
query.addBindValue( orderObj->globalOrderType ); // --全链路订单类型 query.addBindValue( orderObj->globalOrderType ); // --全链路订单类型
query.addBindValue( orderObj->globalServiceType); // --全链路服务类型 query.addBindValue( orderObj->globalServiceType); // --全链路服务类型
query.addBindValue( orderObj->platformSource); // --平台来源枚举值
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"<<query.lastError().text() QLOG_ERROR()<<"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"<<query.lastError().text()
...@@ -307,10 +313,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -307,10 +313,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, " "last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, " "confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee, make_status, make_source, make_device_id," "pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee, make_status, make_source, make_device_id,"
" reserve_type, appointed_time,appointed_remind_template,sub_store_id,global_order_type,global_service_type) " " reserve_type, appointed_time,appointed_remind_template,sub_store_id,global_order_type,global_service_type,platform_source ) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, " "VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, "
"%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40," "%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40,"
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54,%55,%56,%57,%58,%59,%60)") "%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54,%55,%56,%57,%58,%59,%60,%61)")
.arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel) .arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel)
.arg(orderObj->orderType).arg(tempOrderTypeId) .arg(orderObj->orderType).arg(tempOrderTypeId)
.arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01) .arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01)
...@@ -325,7 +331,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -325,7 +331,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
.arg("").arg(orderObj->lang).arg(orderObj->memo).arg(orderObj->riderPhone).arg(orderObj->riderName) .arg("").arg(orderObj->lang).arg(orderObj->memo).arg(orderObj->riderPhone).arg(orderObj->riderName)
.arg(orderObj->disPlateformFee * 0.01).arg(orderObj->makeStatus).arg(orderObj->makeSource).arg(orderObj->makeDeviceId) .arg(orderObj->disPlateformFee * 0.01).arg(orderObj->makeStatus).arg(orderObj->makeSource).arg(orderObj->makeDeviceId)
.arg( tempBusinessType ).arg(orderObj->expectDate).arg( QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime ) .arg( tempBusinessType ).arg(orderObj->expectDate).arg( QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime )
.arg(orderObj->subStoreId).arg(orderObj->globalOrderType).arg(orderObj->globalServiceType); .arg(orderObj->subStoreId).arg(orderObj->globalOrderType).arg(orderObj->globalServiceType).arg(orderObj->platformSource);
} else { } else {
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]").arg(orderObj->id);
...@@ -441,7 +447,8 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const ...@@ -441,7 +447,8 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const
query.addBindValue(dishesObjectTemp->promotionSku); // --主商品优惠sku query.addBindValue(dishesObjectTemp->promotionSku); // --主商品优惠sku
query.addBindValue(dishesObjectTemp->packagePrice * 0.01); // --主商品打包价格 query.addBindValue(dishesObjectTemp->packagePrice * 0.01); // --主商品打包价格
query.addBindValue(dishesObjectTemp->defaultImage); // --主商品默认图片 query.addBindValue(dishesObjectTemp->defaultImage); // --主商品默认图片
query.addBindValue(dishesObjectTemp->userName); // --主商品-Owner 拼单人; // (默认主商品的拼单人 拆字) 拆口令分配的字 |#| 拼单人昵称 例:"世" |#| "Kernel(邹伍洋)" 分割符为: "|#|"
query.addBindValue(dishesObjectTemp->userName + ( dishesObjectTemp->wechatName.length() ? "|#|" + dishesObjectTemp->wechatName : "" ) ); // 拆字 + 微信昵称
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<QString("[<<<<---PmsOrdersData::insertProductData:Insert OrderId %1 Product code:%2 Failed --->>>>]") QLOG_ERROR()<<QString("[<<<<---PmsOrdersData::insertProductData:Insert OrderId %1 Product code:%2 Failed --->>>>]")
...@@ -455,7 +462,7 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const ...@@ -455,7 +462,7 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const
.arg("").arg(dishesObjectTemp->qty).arg(0).arg(dishesObjectTemp->specId).arg(dishesObjectTemp->specName) .arg("").arg(dishesObjectTemp->qty).arg(0).arg(dishesObjectTemp->specId).arg(dishesObjectTemp->specName)
.arg("").arg(dishesObjectTemp->price * 0.01).arg(dishesObjectTemp->promotionName).arg(dishesObjectTemp->promotionPrice * 0.01) .arg("").arg(dishesObjectTemp->price * 0.01).arg(dishesObjectTemp->promotionName).arg(dishesObjectTemp->promotionPrice * 0.01)
.arg(dishesObjectTemp->promotionQty).arg(dishesObjectTemp->promotionSku).arg(dishesObjectTemp->packagePrice * 0.01).arg("") .arg(dishesObjectTemp->promotionQty).arg(dishesObjectTemp->promotionSku).arg(dishesObjectTemp->packagePrice * 0.01).arg("")
.arg(dishesObjectTemp->userName); .arg(dishesObjectTemp->userName + ( dishesObjectTemp->wechatName.length() ? "|#|" + dishesObjectTemp->wechatName : "" ) );
} else { } else {
ProInIdRef = query.lastInsertId().toString(); ProInIdRef = query.lastInsertId().toString();
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderProductData:Insert OrderId %1 Product Success code:%2 increaseId:%3--->>>>]") QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderProductData:Insert OrderId %1 Product Success code:%2 increaseId:%3--->>>>]")
...@@ -742,6 +749,7 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta ...@@ -742,6 +749,7 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta
// 需要对应转换并更新: order_type_id; // 需要对应转换并更新: order_type_id;
int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus); int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus);
// 预约时间 & 街送小票时间 & 车牌号 & 隐私号 PCS 使用不到, 故没有进行更新.
query.prepare(QString("update orders set order_status=%1,order_type_id=%2, global_service_type=%3, global_order_type=%4, make_status='%5'," query.prepare(QString("update orders set order_status=%1,order_type_id=%2, global_service_type=%3, global_order_type=%4, make_status='%5',"
" make_source='%6', make_device_id='%7', appointed_remind_template ='%8' where order_id='%9'") " make_source='%6', make_device_id='%7', appointed_remind_template ='%8' where order_id='%9'")
.arg( QString::number(OrderStatus), QString::number(tempOrderTypeId), QString::number(orderObj->globalServiceType), .arg( QString::number(OrderStatus), QString::number(tempOrderTypeId), QString::number(orderObj->globalServiceType),
......
...@@ -33,6 +33,7 @@ class dishesObject : public QObject ...@@ -33,6 +33,7 @@ class dishesObject : public QObject
Q_PROPERTY (int starPromotionPrice READ getStarPromotionPrice WRITE setStarPromotionPrice) Q_PROPERTY (int starPromotionPrice READ getStarPromotionPrice WRITE setStarPromotionPrice)
Q_PROPERTY (QString userName READ getUserName WRITE setUserName) Q_PROPERTY (QString userName READ getUserName WRITE setUserName)
Q_PROPERTY (QString wechatName READ getWechatName WRITE setWechatName)
public: public:
explicit dishesObject(QObject *parent = 0):QObject(parent){} explicit dishesObject(QObject *parent = 0):QObject(parent){}
...@@ -64,6 +65,7 @@ public: ...@@ -64,6 +65,7 @@ public:
int starPromotionQty = 0; int starPromotionQty = 0;
int starPromotionPrice = 0; int starPromotionPrice = 0;
QString userName = ""; QString userName = "";
QString wechatName = "" ; // 拼单-微信昵称;
QList<dishesObject*> sub_products; QList<dishesObject*> sub_products;
...@@ -139,6 +141,9 @@ protected: ...@@ -139,6 +141,9 @@ protected:
inline QString getUserName(){ return userName; } inline QString getUserName(){ return userName; }
inline void setUserName(const QString& v){ userName = v; } inline void setUserName(const QString& v){ userName = v; }
inline QString getWechatName(){ return wechatName; }
inline void setWechatName(const QString& v){ wechatName = v; }
}; };
#endif // DISHESOBJECT_H #endif // DISHESOBJECT_H
...@@ -146,15 +146,18 @@ QString OrderObject::getChannelName() ...@@ -146,15 +146,18 @@ QString OrderObject::getChannelName()
} }
} }
}else if("WSG-MOD" == channel ){ } else if ( "MT-MOD" == channel ) {
if (7 == orderType ) { if ( 7 == orderType ) {
return QString::fromLocal8Bit("预-WSG"); return QString::fromLocal8Bit("预-美团-当日");
} else if ( 8 == orderType ) { } else if ( 11 == orderType ) {
return QString::fromLocal8Bit("拼-WSG"); return QString::fromLocal8Bit("预-美团-隔日");
} else { } else {
return QString::fromLocal8Bit("微信用星说"); return QString::fromLocal8Bit("美团-MOD");
} }
} else if("WSG-MOD" == channel ) { // 兼容渠道名称不统一问题
return QString::fromLocal8Bit("微信用星说");
}else if("ELE" == channel){ }else if("ELE" == channel){
if ( 7 == orderType ) { if ( 7 == orderType ) {
return QString::fromLocal8Bit("预-饿了么-当日"); return QString::fromLocal8Bit("预-饿了么-当日");
...@@ -168,11 +171,17 @@ QString OrderObject::getChannelName() ...@@ -168,11 +171,17 @@ QString OrderObject::getChannelName()
if (4 == orderType ) { if (4 == orderType ) {
return QString::fromLocal8Bit("星-自测"); return QString::fromLocal8Bit("星-自测");
} else if ( 7 == orderType ) { } else if ( 7 == orderType ) {
if ( "8" == platformSource ) {
return QString::fromLocal8Bit("预-街送");
}
return QString::fromLocal8Bit("预-MOP-当日"); return QString::fromLocal8Bit("预-MOP-当日");
} else if ( 11 == orderType ) { } else if ( 11 == orderType ) {
return QString::fromLocal8Bit("预-MOP-隔日"); return QString::fromLocal8Bit("预-MOP-隔日");
} else if ( 8 == orderType ) { } else if ( 8 == orderType ) {
return QString::fromLocal8Bit("拼-MOP"); return QString::fromLocal8Bit("拼-MOP");
} else if (10 == orderType) {
return QString::fromLocal8Bit("星时刻");
} else { } else {
if ( "5" == platformSource ) { if ( "5" == platformSource ) {
return QString::fromLocal8Bit("口碑-MOP"); return QString::fromLocal8Bit("口碑-MOP");
...@@ -181,6 +190,9 @@ QString OrderObject::getChannelName() ...@@ -181,6 +190,9 @@ QString OrderObject::getChannelName()
} }
} }
} else if ( "EC-MOP" == channel ){
return QString::fromLocal8Bit("电商MOP");
}else{ }else{
return QString::fromLocal8Bit("未知"); return QString::fromLocal8Bit("未知");
} }
......
...@@ -97,6 +97,13 @@ class OrderObject : public QObject ...@@ -97,6 +97,13 @@ class OrderObject : public QObject
Q_PROPERTY (QString subStoreId READ getSubStoreId WRITE setSubStoreId) Q_PROPERTY (QString subStoreId READ getSubStoreId WRITE setSubStoreId)
Q_PROPERTY (int globalServiceType READ getGlobalServiceType WRITE setGlobalServiceType) Q_PROPERTY (int globalServiceType READ getGlobalServiceType WRITE setGlobalServiceType)
Q_PROPERTY (int globalOrderType READ getGlobalOrderType WRITE setGlobalOrderType) Q_PROPERTY (int globalOrderType READ getGlobalOrderType WRITE setGlobalOrderType)
Q_PROPERTY (int isGiftitForward READ getIsGiftitForward WRITE setIsGiftitForward )
Q_PROPERTY (QString remindTicketTime READ getRemindTicketTime WRITE setRemindTicketTime )
Q_PROPERTY (QString carNumber READ getCarNumber WRITE setCarNumber)
Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone)
public: public:
OrderObject(QObject *parent=0) OrderObject(QObject *parent=0)
:QObject(parent){} :QObject(parent){}
...@@ -171,7 +178,7 @@ public: ...@@ -171,7 +178,7 @@ public:
int orderIndex = 0; int orderIndex = 0;
int updateTime = 0; int updateTime = 0;
QString customerSex = ""; //用户性别 1-男; 2-女 QString customerSex = ""; //用户性别 1-男; 2-女
QString platformSource = ""; //订单平台来源:1 app; 2 ele; 3 ors; 4 WeChat; 5 口碑; QString platformSource = ""; //订单平台来源:1 app; 2 ele; 3 ors; 4 WeChat; 5 口碑; 6:? 7:? 8:Curbside-高德
int needInvoice = 0; int needInvoice = 0;
int deliveryPrice = 0; // 配送费 int deliveryPrice = 0; // 配送费
int deliveryDiscount = 0; // 配送费折扣 int deliveryDiscount = 0; // 配送费折扣
...@@ -204,6 +211,11 @@ public: ...@@ -204,6 +211,11 @@ public:
int forwardPosStatus = 0; // 正向单入机状态: 0:未知 1: 成功 2:失败; int forwardPosStatus = 0; // 正向单入机状态: 0:未知 1: 成功 2:失败;
int negativePosStatus = 0; // 负向单同上; int negativePosStatus = 0; // 负向单同上;
int isGiftitForward; // 1: 美好咖啡 ; 0: 普通wsg;
QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号
QString privacyPhone; // 隐私号
int deliveryStatus = 0; int deliveryStatus = 0;
int payStatus = 0; int payStatus = 0;
int refundStatus = 0; int refundStatus = 0;
...@@ -470,6 +482,19 @@ public: ...@@ -470,6 +482,19 @@ public:
inline int getGlobalOrderType()const{return globalOrderType;} inline int getGlobalOrderType()const{return globalOrderType;}
inline void setGlobalOrderType(const int& v){globalOrderType = v;} inline void setGlobalOrderType(const int& v){globalOrderType = v;}
inline int getIsGiftitForward()const{return isGiftitForward;}
inline void setIsGiftitForward(const int& v){isGiftitForward = v;}
inline QString getRemindTicketTime()const{return remindTicketTime;}
inline void setRemindTicketTime(const QString& v){remindTicketTime = v;}
inline QString getCarNumber()const{return carNumber;}
inline void setCarNumber(const QString& v){carNumber = v;}
inline QString getPrivacyPhone()const{return privacyPhone;}
inline void setPrivacyPhone(const QString& v){privacyPhone = v;}
}; };
#endif // ORDEROBJECT_H #endif // ORDEROBJECT_H
...@@ -99,8 +99,8 @@ public: ...@@ -99,8 +99,8 @@ public:
QLOG_ERROR()<<QString("RSASignWithSHA1 GetPEMKey() Failed"); QLOG_ERROR()<<QString("RSASignWithSHA1 GetPEMKey() Failed");
return 0; return 0;
} }
QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(): "<< tmpPrivateKey<< "\n"; // QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(): "<< tmpPrivateKey<< "\n";
QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(), End ------------------------ "; QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(), Finished ------------------------ ";
OpenSSL_add_all_algorithms(); OpenSSL_add_all_algorithms();
...@@ -351,7 +351,7 @@ public: ...@@ -351,7 +351,7 @@ public:
} }
QLOG_INFO()<< " AESDecode debase64() Success inLen: "<< inLen << " tmpRstLen: " << strlen( (char *)tmpRst ) << " outMaxlen: "<<outMaxlen QLOG_INFO()<< " AESDecode debase64() Success inLen: "<< inLen << " tmpRstLen: " << strlen( (char *)tmpRst ) << " outMaxlen: "<<outMaxlen
<< " base64Length: " <<base64Length << " inBytes: "<<QString(QLatin1String( (char *)inBytes)) << " base64Length: " <<base64Length << " inBytes: "<<QString(QLatin1String( (char *)inBytes))
<<" tmpRst (Hex): "<< QByteArray( (char *)tmpRst ).toHex()<<" tmpRst (Base64): "<< QByteArray( (char *)tmpRst ).toBase64(); <<" tmpRst (Hex): "<< QByteArray( (char *)tmpRst ).toHex(); // <<" tmpRst (Base64): "<< QByteArray( (char *)tmpRst ).toBase64();
// 初始化...... // 初始化......
EVP_CIPHER_CTX ctx; EVP_CIPHER_CTX ctx;
...@@ -374,7 +374,7 @@ public: ...@@ -374,7 +374,7 @@ public:
QLOG_ERROR()<< " AESDecode EVP_DecryptUpdate() Failed , iOutLen: "<<iOutLen << " base64Length: "<< base64Length; QLOG_ERROR()<< " AESDecode EVP_DecryptUpdate() Failed , iOutLen: "<<iOutLen << " base64Length: "<< base64Length;
return 0; return 0;
} }
QLOG_INFO()<< " AESDecode EVP_DecryptUpdate() Success " << " iOutLen: " << iOutLen<<" outBytes: "<<QString(QLatin1String( (char *)outBytes)); QLOG_INFO()<< " AESDecode EVP_DecryptUpdate() Success " << " iOutLen: " << iOutLen; // <<" outBytes: "<<QString(QLatin1String( (char *)outBytes));
// 完成解密...... // 完成解密......
if(!EVP_DecryptFinal_ex(&ctx, (unsigned char *)(outBytes + iOutLen), &tmpDecryptLen)) if(!EVP_DecryptFinal_ex(&ctx, (unsigned char *)(outBytes + iOutLen), &tmpDecryptLen))
...@@ -385,7 +385,7 @@ public: ...@@ -385,7 +385,7 @@ public:
return 0; return 0;
} }
QLOG_INFO()<< " AESDecode EVP_DecryptFinal_ex() Success outBytes+iOutLen: "<< QString( (char*)(outBytes+iOutLen) ) QLOG_INFO()<< " AESDecode EVP_DecryptFinal_ex() Success outBytes+iOutLen: "<< QString( (char*)(outBytes+iOutLen) )
<< " tmpDecryptLen: " << tmpDecryptLen << " outBytes: " <<QString(QLatin1String( (char *)outBytes)); << " tmpDecryptLen: " << tmpDecryptLen; // << " outBytes: " <<QString(QLatin1String( (char *)outBytes));
EVP_CIPHER_CTX_cleanup(&ctx); EVP_CIPHER_CTX_cleanup(&ctx);
......
...@@ -23,7 +23,10 @@ DetailForm::DetailForm(QWidget *parent) : ...@@ -23,7 +23,10 @@ DetailForm::DetailForm(QWidget *parent) :
DetailForm::~DetailForm() DetailForm::~DetailForm()
{ {
QLOG_INFO() << QString("[<<<<---DetailForm::~DetailForm: begin--->>>>]");
delete ui; delete ui;
// New 时指定了父类对象指针;
QLOG_INFO() << QString("[<<<<---DetailForm::~DetailForm: end--->>>>]");
} }
void DetailForm::InitData(OrderObject *orderObject) void DetailForm::InitData(OrderObject *orderObject)
...@@ -47,6 +50,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -47,6 +50,7 @@ void DetailForm::InitData(OrderObject *orderObject)
//订单完成后,送达时间需要更新为 finishTime //订单完成后,送达时间需要更新为 finishTime
QString deliveryFinishTime = ""; QString deliveryFinishTime = "";
if (OrderObject::Finished == orderObject->orderStatus) { if (OrderObject::Finished == orderObject->orderStatus) {
deliveryFinishTime = (orderObject->finishTime.isEmpty() || 0==orderObject->finishTime.length() )? QString::fromLocal8Bit("已经送达") : orderObject->finishTime; deliveryFinishTime = (orderObject->finishTime.isEmpty() || 0==orderObject->finishTime.length() )? QString::fromLocal8Bit("已经送达") : orderObject->finishTime;
} else if (OrderObject::Refunded == orderObject->orderStatus) { } else if (OrderObject::Refunded == orderObject->orderStatus) {
...@@ -54,9 +58,11 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -54,9 +58,11 @@ void DetailForm::InitData(OrderObject *orderObject)
} else { } else {
deliveryFinishTime = orderObject->deliveryTime; deliveryFinishTime = orderObject->deliveryTime;
} }
if (7 == orderObject->orderType || 11 == orderObject->orderType ) { if (7 == orderObject->orderType || 11 == orderObject->orderType ) {
deliveryFinishTime = deliveryFinishTime + QString::fromLocal8Bit("预约时间: ") + orderObject->expectDate; deliveryFinishTime = deliveryFinishTime + QString::fromLocal8Bit(" 预约时间: ") + orderObject->expectDate;
} }
ui->detailLab2->setText(deliveryFinishTime); ui->detailLab2->setText(deliveryFinishTime);
QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailLab2->setText --->>>>]"); QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailLab2->setText --->>>>]");
...@@ -257,6 +263,11 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -257,6 +263,11 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->hide(); ui->detailBtn2->hide();
} }
//星巴克:电商-MOP 需要显示退单按钮(便于 当日退 / 跨日退);
if ( "EC-MOP" == orderObject->channel && OrderObject::Refunded != orderObject->orderStatus ) {
ui->detailBtn2->show();
}
//订单入机失败 [销售单 / 退货单] 需要显示 重新录单 按钮 方便店员再次触发录单; //订单入机失败 [销售单 / 退货单] 需要显示 重新录单 按钮 方便店员再次触发录单;
if(OrderObject::SimExceptSale == orderObject->orderStatus || OrderObject::SimExceptRefund == orderObject->orderStatus) { if(OrderObject::SimExceptSale == orderObject->orderStatus || OrderObject::SimExceptRefund == orderObject->orderStatus) {
ui->detailBtn0->show(); ui->detailBtn0->show();
......
...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico" ...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif #endif
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2021,9,7 FILEVERSION 4,2021,12,10
PRODUCTVERSION 4,2021,9,7 PRODUCTVERSION 4,2021,12,10
//*************************************************************************// //*************************************************************************//
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO ...@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "PmsPlugin.exe" VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin" VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2021.9.7" VALUE "ProductVersion", "4.2021.12.10"
VALUE "FileVersion", "4.2021.9.7" VALUE "FileVersion", "4.2021.12.10"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -223,7 +223,8 @@ void MainForm::on_mainBtnHide_clicked() ...@@ -223,7 +223,8 @@ void MainForm::on_mainBtnHide_clicked()
hide(); hide();
ui->mainEdtSearch->clear(); ui->mainEdtSearch->clear();
m_padForm->hide(); m_padForm->hide();
if(m_detailForm){ if(m_detailForm && m_detailForm->isVisible() ) {
QLOG_INFO() << QString("[<<<<---MainForm::on_mainBtnHide_clicked: m_detailForm=--->>>>]")<< m_detailForm;
m_detailForm->hide(); m_detailForm->hide();
} }
emit showFloatForm(); emit showFloatForm();
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
//#define APP_VERSION "4.2020.8.10" //#define APP_VERSION "4.2020.8.10"
//#define APP_VERSION "4.2021.1.8" //#define APP_VERSION "4.2021.1.8"
//#define APP_VERSION "4.2021.5.10" //#define APP_VERSION "4.2021.5.10"
#define APP_VERSION "4.2021.9.7" #define APP_VERSION "4.2021.12.10"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn" #define SERVER_PASSWORD "posoperator@freemud.cn"
...@@ -71,12 +71,17 @@ ...@@ -71,12 +71,17 @@
#define JSON_MOPSTORESTS "mopStoreStatus" #define JSON_MOPSTORESTS "mopStoreStatus"
#define JSON_PASSWORD "password" #define JSON_PASSWORD "password"
#define JSON_IPADDRESS "iPAddress" #define JSON_IPADDRESS "iPAddress"
#define JSON_IP_ADDRESS "ipAddress"
#define JSON_MACHINECODE "machineCode" #define JSON_MACHINECODE "machineCode"
#define JSON_PMSMACHINENO "pmsMachineNo" #define JSON_PMSMACHINENO "pmsMachineNo"
#define JSON_PARTNERID "partnerId" #define JSON_PARTNERID "partnerId"
#define JSON_ORGCODE "orgCode" #define JSON_ORGCODE "orgCode"
#define JSON_POSNO "posNo" #define JSON_POSNO "posNo"
#define JSON_POS_IP_ADDR "posIp"
#define JSON_POS_WORKS_NUM "decouplePosNo"
#define JSON_POS_HOST_NAME "posHostName"
#define JSON_POS_MAC_ADDRESS "posMacAddress"
#define JSON_STORENAME "StoreName" #define JSON_STORENAME "StoreName"
#define JSON_OPEN_TCP_CHANNEL "openTcpChannel" #define JSON_OPEN_TCP_CHANNEL "openTcpChannel"
#define JSON_USERID "userId" #define JSON_USERID "userId"
...@@ -152,6 +157,8 @@ ...@@ -152,6 +157,8 @@
#define JSON_TCP_STA_RST "ok" #define JSON_TCP_STA_RST "ok"
#define JSON_TCP_STA_CODE "code" #define JSON_TCP_STA_CODE "code"
#define JSON_TCP_DEVICE_ID "deviceId" #define JSON_TCP_DEVICE_ID "deviceId"
#define JSON_TCP_DEVICE_HOST_NAME "deviceHostName"
#define JSON_TCP_DEVICE_WORKS_NUM "deviceWorkStationNum"
#define JSON_TCP_DEVICE_IP "deviceIp" #define JSON_TCP_DEVICE_IP "deviceIp"
#define JSON_TCP_DEVICE_PORT "devicePort" #define JSON_TCP_DEVICE_PORT "devicePort"
#define JSON_TCP_DEVICE_TYPE "deviceType" #define JSON_TCP_DEVICE_TYPE "deviceType"
...@@ -163,6 +170,8 @@ ...@@ -163,6 +170,8 @@
#define SOCKET_POST_TIMEOUT 30000 #define SOCKET_POST_TIMEOUT 30000
// 长连接Get请求超时 设置为 10s // 长连接Get请求超时 设置为 10s
#define SOCKET_GET_TIMEOUT 10000 #define SOCKET_GET_TIMEOUT 10000
// 长连接 向 POS Agent Server 发送心跳时间间隔(单位: 秒);
#define SOCKET_HEARTBEAT_INTERVAL 80
// ssl证书相关宏; // ssl证书相关宏;
#define DES3_KEY_SIZE 24 #define DES3_KEY_SIZE 24
......
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