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 @@
#include <QVariantMap>
#include <QJsonDocument>
#include <QSslSocket>
#include <qabstractsocket.h>
#include <QApplication>
#include <QHostInfo>
#include <QThread>
......@@ -21,15 +22,17 @@
#include "alertForm.h"
#define CLOSE_SOCKES(socket) do{ \
if(socket != NULL && socket->isOpen()){ \
if ( socket != NULL ) { \
if ( socket->isOpen() ) \
socket->close(); \
\
delete socket; \
socket = NULL; \
} \
} while(0)
#define DATAHEAD_INIT(head, mgc, ver, seq, cmd, serize, len) do{ \
head.magic = mgc; \
head.version = ver; \
......
......@@ -742,6 +742,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->extendType = 0;
orderObject->deliveryProvider = 0;
orderObject->deliveryType = 0;
orderObject->isGiftitForward = 0 ;
orderObject->FromJson(jsonObject);
orderObject->pushOrderType=0;
......@@ -802,8 +803,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
}
int syncOrderRet = PrintSumBillPosDB::getInstance().syncOrderDataToDB(orderObject);
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().syncOrderDataToDB orderId:%1 syncOrderRet:%2--->>>>]")
.arg(orderObject->id).arg(syncOrderRet);
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().syncOrderDataToDB orderId:%1 syncOrderRet:%2--->>>>]").arg(orderObject->id).arg(syncOrderRet);
emit changeOrderStatus(orderObject);
}
......@@ -817,10 +817,13 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
emit changeOrderStatus(orderObject, oldStatus);
}
if ( oldArriveAhead != orderObject->inAdvanceTakemeal ) {
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("appointed_remindTemplate"));
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]")
.arg(orderObject->id).arg(updateOrderRet);
// 3: 刷新订单 预约时间 & 制作时间 & 街送小票时间;
if ( 3 == 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);
} 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 ) {
QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5")
......
......@@ -7,6 +7,7 @@
#include <QObject>
#include <QMutex>
#include <Model/orderObject.h>
#include "alertForm.h"
#include "preDefine.h"
#include "windows.h"
......@@ -130,6 +131,8 @@ private:
signals:
void triggerFlowContrlAlert(AlertForm::Type alterType, const QString msg);
public slots:
};
......
......@@ -92,7 +92,7 @@ public:
*参数:[1]订单对象指针
*返回: 0: 同步失败;1: 无需同步;2: 同步成功;
**/
int syncAppointOrderInfo(OrderObject* orderObj);
int syncOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单对象指针 更新pos本地数据库中数据;
......@@ -106,7 +106,7 @@ public:
*参数:[1]订单号
*返回:true操作成功,false失败
**/
bool updateAppointOrderInfo(OrderObject* orderObj);
bool updateOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息;
......
......@@ -37,7 +37,7 @@ class dishesObject : public QObject
Q_PROPERTY (QString userName READ getUserName WRITE setUserName)
Q_PROPERTY (int changePriceFlag READ getChangePriceFlag WRITE setChangePriceFlag)
Q_PROPERTY (QString wechatName READ getWechatName WRITE setWechatName)
public:
explicit dishesObject(QObject *parent = 0):QObject(parent){}
......@@ -70,6 +70,7 @@ public:
int starPromotionQty;
int starPromotionPrice;
QString userName ;
QString wechatName ; // 拼单-微信昵称;
int changePriceFlag;
QString chgPrcFlgCode;
......@@ -153,6 +154,9 @@ protected:
inline int getChangePriceFlag(){ return changePriceFlag; }
inline void setChangePriceFlag(const int& v){ changePriceFlag = v; }
inline QString getWechatName(){ return wechatName; }
inline void setWechatName(const QString& v){ wechatName = v; }
};
#endif // DISHESOBJECT_H
......@@ -287,6 +287,9 @@ QString OrderObject::getChannelName()
if ( 4 == orderType ) {
return QString::fromLocal8Bit("星-自测");
} else if ( 7 == orderType ) {
if ( "8" == platformSource ) {
return QString::fromLocal8Bit("预-街送");
}
return QString::fromLocal8Bit("预-MOP-当日");
} else if ( 11 == orderType ) {
return QString::fromLocal8Bit("预-MOP-隔日");
......
......@@ -104,6 +104,11 @@ class OrderObject : public QObject
Q_PROPERTY (int extendType READ getExtendType WRITE setExtendType)
Q_PROPERTY (int deliveryProvider READ getDeliveryProvider WRITE setDeliveryProvider)
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:
OrderObject(QObject *parent=0)
......@@ -185,7 +190,7 @@ public:
int orderIndex;
int updateTime;
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 deliveryPrice; // 配送费
int deliveryDiscount; // 配送费折扣
......@@ -225,6 +230,11 @@ public:
int extendType; // 20 Mod Plus 类型订单
int deliveryProvider; // 配送商户: 1-蜂鸟 , 2-美团
int deliveryType; // 配送方式: 1-二轮车 , 2-四轮车
int isGiftitForward; // 1: 美好咖啡 ; 0: 普通wsg;
QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号
QString privacyPhone; // 隐私号
int forwardPosStatus; // 正向单入机状态: 0:未知 1: 成功 2:失败;
int negativePosStatus; // 负向单同上;
......@@ -515,6 +525,18 @@ public:
inline int getDeliveryType()const{return deliveryType;}
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
#ifndef PRODUCTOBJECT_H
#define PRODUCTOBJECT_H
#include "baseObject.h"
// 此商品对象 暂时未使用;
class ProductObject : public BaseObject
{
Q_OBJECT
......
......@@ -99,8 +99,8 @@ public:
QLOG_ERROR()<<QString("RSASignWithSHA1 GetPEMKey() Failed");
return 0;
}
QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(): "<< tmpPrivateKey<< "\n";
QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(), End ------------------------ ";
// QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(): "<< tmpPrivateKey<< "\n";
QLOG_INFO()<<"RSASignWithSHA1 GetPEMFormatKey(), Finished ------------------------ ";
OpenSSL_add_all_algorithms();
......@@ -351,7 +351,7 @@ public:
}
QLOG_INFO()<< " AESDecode debase64() Success inLen: "<< inLen << " tmpRstLen: " << strlen( (char *)tmpRst ) << " outMaxlen: "<<outMaxlen
<< " 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;
......@@ -374,7 +374,7 @@ public:
QLOG_ERROR()<< " AESDecode EVP_DecryptUpdate() Failed , iOutLen: "<<iOutLen << " base64Length: "<< base64Length;
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))
......@@ -385,7 +385,7 @@ public:
return 0;
}
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);
......
......@@ -56,7 +56,7 @@ void DetailForm::InitData(OrderObject *orderObject)
deliveryFinishTime = orderObject->deliveryTime;
}
if ( 7 == orderObject->orderType || 11 == orderObject->orderType ) {
deliveryFinishTime = deliveryFinishTime + QString::fromLocal8Bit("预约时间: ") + orderObject->expectDate;
deliveryFinishTime = deliveryFinishTime + QString::fromLocal8Bit(" 预约时间: ") + orderObject->expectDate;
}
ui->detailLab2->setText(deliveryFinishTime);
QLOG_INFO() << QString("[<<<<---DetailForm::InitData ui->detailLab2->setText --->>>>]");
......
......@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 2,2021,11,5
PRODUCTVERSION 2,2021,11,5
FILEVERSION 2,2021,12,10
PRODUCTVERSION 2,2021,12,10
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
......@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "fmTakeout.exe"
VALUE "ProductName", "Delivery Order Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "2.2021.11.5"
VALUE "FileVersion", "2.2021.11.5"
VALUE "ProductVersion", "2.2021.12.10"
VALUE "FileVersion", "2.2021.12.10"
//*************************************************************************//
END
END
......
......@@ -40,7 +40,7 @@
//#define APP_VERSION "2.2021.8.12"
//#define APP_VERSION "2.2021.9.7"
//#define APP_VERSION "2.2021.9.24"
#define APP_VERSION "2.2021.11.5"
#define APP_VERSION "2.2021.12.10"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
......@@ -199,6 +199,8 @@
#define SOCKET_POST_TIMEOUT 30000
// 长连接Get请求超时 设置为 10s
#define SOCKET_GET_TIMEOUT 10000
// 长连接 向 POS Agent Server 发送心跳时间间隔(单位: 秒);
#define SOCKET_HEARTBEAT_INTERVAL 80
// ssl证书相关宏;
#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