Commit 05bdde09 by wuyang.zou

增强 Aliy 双活备用功能:插件登录 & 列表获取 & 心跳 & 自检单 的双活尝试;

增强 Aliy 推单指定 callBackUrl : 拉单详情 & 退单 & 订单入机汇报 使用 callBackUrl;
优化 拉单详情获取 3次失败则放弃, 获取订单列表 3次失败后,切备用地址再尝试3次, 依旧失败则丢弃;

Version: 2.2022.1.18
parent 0fa7e499
......@@ -66,12 +66,15 @@ private:
int pageNumber;
QString channel;
QString orderId;
int pullErrorCount;
QString callBackUrl;
}PullOrderInfo;
typedef struct TO_DELAY_PULL_ORDER
{
QString channel;
QString orderId;
QString callBackUrl;
}DelayPullOrderInfo;
typedef struct ORDER_OPERATION
......@@ -152,12 +155,14 @@ private:
// 是否第一次获取到门店信息
bool m_bFirstRecvInfo;
bool m_bLoginResult;
int m_loginErrorCount;
int m_sendHeartErrorCount;
bool m_bCreateSelfCheckOrderError;
bool m_openTcpChannel;
bool m_bOperateResult;
// 标记目前悬浮框是否 锁住状态[false:悬浮框解锁状态; true:悬浮框锁住状态];
bool m_bFloatFromLockSt;
// HttpServer
//JQHttpServer::TcpServerManage* m_tcpServerManage;
LoaclHttpServer* loaclHttpServer;
QMap<QString, QMultiMap<QString, dishesObject> >m_dishesMap;
......@@ -201,6 +206,9 @@ private:
bool m_initPrintOrderPromotionDBRet;
bool m_initCheckPoskeyExistPosDBRet;
// 新增: 记录OMS备用服务的 CallBackUrl 地址; 便于OMS服务异常时,具备热切换功能: 登录 + 订单列表 + 心跳 + 自检单;
QString m_serviceCallBackUrl;
signals:
// 发送信号给自己 做登陆
void doLogin();
......@@ -336,12 +344,12 @@ private slots:
* 参数:[1]订单编号
* 返回:是否成功
* */
bool _PullOrderDetail(const QString &orderId, const QString& channel);
bool _PullOrderDetail( const QString &orderId, const QString &channel, const QString &callBackUrl );
/* 功能:拉取订单
* 参数:NULL
* 返回:是否成功
* */
bool _PullOrderList(const int &pageSize, const int &pageNo);
bool _PullOrderList( const int &pageSize, const int &pageNo, const QString &callBackUrl );
/* 功能:发送心跳
* 参数:NULL
* 返回:是否成功
......@@ -352,11 +360,7 @@ private slots:
* 返回:是否成功
* */
bool _ConfirmOrder(const QString& orderId);
/* 功能:拒绝订单
* 参数:[1]订单编号[2]拒单原因
* 返回:是否成功
* */
bool _RefuseOrder(const QString& orderId, int refuseCode, const QString reason);
/* 功能:送出订单
* 参数:[1]订单编号
* 返回:是否成功
......@@ -367,11 +371,7 @@ private slots:
* 返回:是否成功
* */
bool _CompleteOrder(const QString& orderId);
/* 功能:拒绝退单
* 参数:NULL
* 返回:是否成功
* */
bool _RefuseRefund(const QString& orderId);
/* 功能:退单
* 参数:NULL
* 返回:是否成功
......@@ -405,7 +405,7 @@ private slots:
void _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=30);
// 避免获取较多历史订单的同时,OMS又有推单过来,导致死锁;
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const int &pageNumber=1, const int &pageSize=30);
bool _TryAddOrderPull(const QString &orderId=0, const QString &channel=0, const QString &callBackUrl="", const int &pageNumber=1, const int &pageSize=30);
//点击屏幕指定区域
void _ClickOMSAssignArea();
......
......@@ -109,6 +109,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString remindTicketTime READ getRemindTicketTime WRITE setRemindTicketTime )
Q_PROPERTY (QString carNumber READ getCarNumber WRITE setCarNumber)
Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone)
Q_PROPERTY (QString callBackUrl READ getCallBackUrl WRITE setCallBackUrl)
public:
OrderObject(QObject *parent=0)
......@@ -235,6 +236,7 @@ public:
QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号
QString privacyPhone; // 隐私号
QString callBackUrl; // 为阿里云配置新域名, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口;
int forwardPosStatus; // 正向单入机状态: 0:未知 1: 成功 2:失败;
int negativePosStatus; // 负向单同上;
......@@ -537,6 +539,9 @@ public:
inline QString getPrivacyPhone()const{return privacyPhone;}
inline void setPrivacyPhone(const QString& v){privacyPhone = v;}
inline QString getCallBackUrl()const{return callBackUrl;}
inline void setCallBackUrl(const QString& v){callBackUrl = v;}
};
#endif // ORDEROBJECT_H
......@@ -158,6 +158,7 @@
#define JSON_STORE_ID "storeId"
#define JSON_POSIPADDRESS "posAddress"
#define JSON_CHANNEL "channel"
#define JSON_CALL_BACK_URL "callBackUrl"
#define JSON_BUSINESSSTATUS "business_status"
#define JSON_CODE "code"
#define JSON_PAGENUMBER "pageNo"
......
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