Commit e9e6bcf5 by wuyang.zou

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

<2> 美好咖啡订单标识 & 美好咖啡-万能折扣入机
<3> 微信拼单昵称存储
<4> 高德-Curbside: 街送标识 & 车牌号 & 手机隐私号 & 街送小票打印时间 & 预约时间+制作时间实时刷新
<5> 解耦2.0 poskey 非法需要插件弹框提示;
parent 57b07769
Pipeline #38156 failed with stage
in 0 seconds
...@@ -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>
...@@ -21,15 +22,17 @@ ...@@ -21,15 +22,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; \
......
...@@ -742,6 +742,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -742,6 +742,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->extendType = 0; orderObject->extendType = 0;
orderObject->deliveryProvider = 0; orderObject->deliveryProvider = 0;
orderObject->deliveryType = 0; orderObject->deliveryType = 0;
orderObject->isGiftitForward = 0 ;
orderObject->FromJson(jsonObject); orderObject->FromJson(jsonObject);
orderObject->pushOrderType=0; orderObject->pushOrderType=0;
...@@ -802,8 +803,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -802,8 +803,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
} }
int syncOrderRet = PrintSumBillPosDB::getInstance().syncOrderDataToDB(orderObject); int syncOrderRet = PrintSumBillPosDB::getInstance().syncOrderDataToDB(orderObject);
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().syncOrderDataToDB orderId:%1 syncOrderRet:%2--->>>>]") QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().syncOrderDataToDB orderId:%1 syncOrderRet:%2--->>>>]").arg(orderObject->id).arg(syncOrderRet);
.arg(orderObject->id).arg(syncOrderRet);
emit changeOrderStatus(orderObject); emit changeOrderStatus(orderObject);
} }
...@@ -817,10 +817,13 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -817,10 +817,13 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
emit changeOrderStatus(orderObject, oldStatus); emit changeOrderStatus(orderObject, oldStatus);
} }
if ( oldArriveAhead != orderObject->inAdvanceTakemeal ) { // 3: 刷新订单 预约时间 & 制作时间 & 街送小票时间;
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("appointed_remindTemplate")); if ( 3 == orderObject->inAdvanceTakemeal ) {
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]") int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction"));
.arg(orderObject->id).arg(updateOrderRet); QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet);
} else if ( oldArriveAhead != orderObject->inAdvanceTakemeal ) {
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction"));
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet);
if ( 2 == orderObject->inAdvanceTakemeal ) { if ( 2 == orderObject->inAdvanceTakemeal ) {
QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5") QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5")
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <QObject> #include <QObject>
#include <QMutex> #include <QMutex>
#include <Model/orderObject.h> #include <Model/orderObject.h>
#include "alertForm.h"
#include "preDefine.h" #include "preDefine.h"
#include "windows.h" #include "windows.h"
...@@ -130,6 +131,8 @@ private: ...@@ -130,6 +131,8 @@ private:
signals: signals:
void triggerFlowContrlAlert(AlertForm::Type alterType, const QString msg);
public slots: public slots:
}; };
......
...@@ -92,7 +92,7 @@ public: ...@@ -92,7 +92,7 @@ public:
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回: 0: 同步失败;1: 无需同步;2: 同步成功; *返回: 0: 同步失败;1: 无需同步;2: 同步成功;
**/ **/
int syncAppointOrderInfo(OrderObject* orderObj); int syncOrderTimeInfo(OrderObject* orderObj);
/** /**
*功能: 根据订单对象指针 更新pos本地数据库中数据; *功能: 根据订单对象指针 更新pos本地数据库中数据;
...@@ -106,7 +106,7 @@ public: ...@@ -106,7 +106,7 @@ public:
*参数:[1]订单号 *参数:[1]订单号
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool updateAppointOrderInfo(OrderObject* orderObj); bool updateOrderTimeInfo(OrderObject* orderObj);
/** /**
*功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息; *功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息;
......
...@@ -37,7 +37,7 @@ class dishesObject : public QObject ...@@ -37,7 +37,7 @@ class dishesObject : public QObject
Q_PROPERTY (QString userName READ getUserName WRITE setUserName) Q_PROPERTY (QString userName READ getUserName WRITE setUserName)
Q_PROPERTY (int changePriceFlag READ getChangePriceFlag WRITE setChangePriceFlag) Q_PROPERTY (int changePriceFlag READ getChangePriceFlag WRITE setChangePriceFlag)
Q_PROPERTY (QString wechatName READ getWechatName WRITE setWechatName)
public: public:
explicit dishesObject(QObject *parent = 0):QObject(parent){} explicit dishesObject(QObject *parent = 0):QObject(parent){}
...@@ -70,6 +70,7 @@ public: ...@@ -70,6 +70,7 @@ public:
int starPromotionQty; int starPromotionQty;
int starPromotionPrice; int starPromotionPrice;
QString userName ; QString userName ;
QString wechatName ; // 拼单-微信昵称;
int changePriceFlag; int changePriceFlag;
QString chgPrcFlgCode; QString chgPrcFlgCode;
...@@ -153,6 +154,9 @@ protected: ...@@ -153,6 +154,9 @@ protected:
inline int getChangePriceFlag(){ return changePriceFlag; } inline int getChangePriceFlag(){ return changePriceFlag; }
inline void setChangePriceFlag(const int& v){ changePriceFlag = v; } inline void setChangePriceFlag(const int& v){ changePriceFlag = v; }
inline QString getWechatName(){ return wechatName; }
inline void setWechatName(const QString& v){ wechatName = v; }
}; };
#endif // DISHESOBJECT_H #endif // DISHESOBJECT_H
...@@ -287,6 +287,9 @@ QString OrderObject::getChannelName() ...@@ -287,6 +287,9 @@ 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-隔日");
......
...@@ -104,6 +104,11 @@ class OrderObject : public QObject ...@@ -104,6 +104,11 @@ class OrderObject : public QObject
Q_PROPERTY (int extendType READ getExtendType WRITE setExtendType) Q_PROPERTY (int extendType READ getExtendType WRITE setExtendType)
Q_PROPERTY (int deliveryProvider READ getDeliveryProvider WRITE setDeliveryProvider) Q_PROPERTY (int deliveryProvider READ getDeliveryProvider WRITE setDeliveryProvider)
Q_PROPERTY (int deliveryType READ getDeliveryType WRITE setDeliveryType) Q_PROPERTY (int deliveryType READ getDeliveryType WRITE setDeliveryType)
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)
...@@ -185,7 +190,7 @@ public: ...@@ -185,7 +190,7 @@ public:
int orderIndex; int orderIndex;
int updateTime; int updateTime;
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; int needInvoice;
int deliveryPrice; // 配送费 int deliveryPrice; // 配送费
int deliveryDiscount; // 配送费折扣 int deliveryDiscount; // 配送费折扣
...@@ -225,6 +230,11 @@ public: ...@@ -225,6 +230,11 @@ public:
int extendType; // 20 Mod Plus 类型订单 int extendType; // 20 Mod Plus 类型订单
int deliveryProvider; // 配送商户: 1-蜂鸟 , 2-美团 int deliveryProvider; // 配送商户: 1-蜂鸟 , 2-美团
int deliveryType; // 配送方式: 1-二轮车 , 2-四轮车 int deliveryType; // 配送方式: 1-二轮车 , 2-四轮车
int isGiftitForward; // 1: 美好咖啡 ; 0: 普通wsg;
QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号
QString privacyPhone; // 隐私号
int forwardPosStatus; // 正向单入机状态: 0:未知 1: 成功 2:失败; int forwardPosStatus; // 正向单入机状态: 0:未知 1: 成功 2:失败;
int negativePosStatus; // 负向单同上; int negativePosStatus; // 负向单同上;
...@@ -515,6 +525,18 @@ public: ...@@ -515,6 +525,18 @@ public:
inline int getDeliveryType()const{return deliveryType;} inline int getDeliveryType()const{return deliveryType;}
inline void setDeliveryType(const int& v){deliveryType = v;} inline void setDeliveryType(const int& v){deliveryType = 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
#ifndef PRODUCTOBJECT_H #ifndef PRODUCTOBJECT_H
#define PRODUCTOBJECT_H #define PRODUCTOBJECT_H
#include "baseObject.h" #include "baseObject.h"
// 此商品对象 暂时未使用;
class ProductObject : public BaseObject class ProductObject : public BaseObject
{ {
Q_OBJECT Q_OBJECT
......
...@@ -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();
// 初始化...... // 初始化......
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);
......
...@@ -56,7 +56,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -56,7 +56,7 @@ void DetailForm::InitData(OrderObject *orderObject)
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 --->>>>]");
......
...@@ -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 2,2021,11,5 FILEVERSION 2,2021,12,10
PRODUCTVERSION 2,2021,11,5 PRODUCTVERSION 2,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", "fmTakeout.exe" VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin" VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2021.11.5" VALUE "ProductVersion", "2.2021.12.10"
VALUE "FileVersion", "2.2021.11.5" VALUE "FileVersion", "2.2021.12.10"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
//#define APP_VERSION "2.2021.8.12" //#define APP_VERSION "2.2021.8.12"
//#define APP_VERSION "2.2021.9.7" //#define APP_VERSION "2.2021.9.7"
//#define APP_VERSION "2.2021.9.24" //#define APP_VERSION "2.2021.9.24"
#define APP_VERSION "2.2021.11.5" #define APP_VERSION "2.2021.12.10"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
...@@ -199,6 +199,8 @@ ...@@ -199,6 +199,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