Commit 72e0fa36 by 李定达

1.修复跨线程使用套接字的问题;2.修复重新登录导致界面展示的异常;3.修复信号绑定错误导致的重复拉单问题;4.推模式登录json改为压缩的json

parent b096f645
...@@ -27,7 +27,7 @@ OrderGetWork::OrderGetWork(QObject *parent) : QObject(parent) ...@@ -27,7 +27,7 @@ OrderGetWork::OrderGetWork(QObject *parent) : QObject(parent)
if(!_storeinfo.isEmpty()) if(!_storeinfo.isEmpty())
{ {
_islogin = false; _islogin = false;
loginStart(); login();
} }
}); });
...@@ -38,7 +38,7 @@ OrderGetWork::OrderGetWork(QObject *parent) : QObject(parent) ...@@ -38,7 +38,7 @@ OrderGetWork::OrderGetWork(QObject *parent) : QObject(parent)
// //
FMApplication::subscibeEvent(this, PosEvent::s_login_storeinfo); FMApplication::subscibeEvent(this, PosEvent::s_login_storeinfo);
_timer.start(7*24*60*60*1000); _timer.start(5*60*1000);
} }
void OrderGetWork::workStart() void OrderGetWork::workStart()
...@@ -72,7 +72,7 @@ void OrderGetWork::workStart() ...@@ -72,7 +72,7 @@ void OrderGetWork::workStart()
QEventLoop loop; QEventLoop loop;
QTimer::singleShot(tmptime, this, &OrderGetWork::quit); QTimer::singleShot(tmptime, &loop, &QEventLoop::quit);
connect(this, &OrderGetWork::quit, &loop, &QEventLoop::quit); connect(this, &OrderGetWork::quit, &loop, &QEventLoop::quit);
...@@ -667,6 +667,33 @@ void OrderGetWork::setAutoconfirm(const QString &autoconfirm) ...@@ -667,6 +667,33 @@ void OrderGetWork::setAutoconfirm(const QString &autoconfirm)
_autoconfirm = autoconfirm; _autoconfirm = autoconfirm;
} }
void OrderGetWork::login()
{
QString error;
do
{
if(!OrderGetDataProcess::isBind())
{
if(!bingToServer(error))
{
QLOG_ERROR() << QThread::currentThreadId() << "loginToServer failed";
break;
}
}
if(!_islogin)
{
if(!loginToServer(error))
{
QLOG_ERROR() << QThread::currentThreadId() << "loginToServer failed";
break;
}
}
}while(0);
}
void OrderGetWork::loginStart() void OrderGetWork::loginStart()
{ {
QString error; QString error;
......
...@@ -80,6 +80,8 @@ private: ...@@ -80,6 +80,8 @@ private:
void optOrderWithType(const QVariantMap &map); void optOrderWithType(const QVariantMap &map);
//登录成功回写数据 //登录成功回写数据
void SetStoreInfoToConfig(); void SetStoreInfoToConfig();
//内部登录不推送消息到界面
void login();
private: private:
//门店信息 门店编号 pos编号 用户名 密码 //门店信息 门店编号 pos编号 用户名 密码
QVariantMap _storeinfo; QVariantMap _storeinfo;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent) OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent)
{ {
_socket = new QSslSocket; _socket = NULL;
_stopflag = 1; _stopflag = 1;
_needlogin = 1; _needlogin = 1;
_server_index = -1; _server_index = -1;
...@@ -24,21 +24,6 @@ OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent) ...@@ -24,21 +24,6 @@ OrderPushWork::OrderPushWork(QObject *parent) : QObject(parent)
_serurl.clear(); _serurl.clear();
_istimeout = true; _istimeout = true;
connect(_socket, &QSslSocket::connected, [this] () {
_istimeout = false;
emit connected();
});
connect(_socket, &QSslSocket::readyRead, [this] () {
_istimeout = false;
emit readready();
});
connect(_socket, &QSslSocket::bytesWritten, [this] (quint64 writebyte) {
_istimeout = false;
emit writeready();
});
FMApplication::subscibeEvent(this, PosEvent::s_token_change); FMApplication::subscibeEvent(this, PosEvent::s_token_change);
FMApplication::subscibeEvent(this, PosEvent::s_login_storeinfo); FMApplication::subscibeEvent(this, PosEvent::s_login_storeinfo);
} }
...@@ -123,7 +108,24 @@ bool OrderPushWork::connectTcpServer() ...@@ -123,7 +108,24 @@ bool OrderPushWork::connectTcpServer()
QLOG_INFO() << "ip:" << ip << "; port:" << port; QLOG_INFO() << "ip:" << ip << "; port:" << port;
//_socket = new QSslSocket(); _socket = new QSslSocket();
connect(_socket, &QSslSocket::connected, [this] () {
_istimeout = false;
emit connected();
});
connect(_socket, static_cast<void (QSslSocket::*)(QAbstractSocket::SocketError)>(&QSslSocket::error), this, &OrderPushWork::quit);
connect(_socket, &QSslSocket::readyRead, [this] () {
_istimeout = false;
emit readready();
});
connect(_socket, &QSslSocket::bytesWritten, [this] (quint64 writebyte) {
_istimeout = false;
emit writeready();
});
_socket->addCaCertificates(qApp->applicationDirPath() + "/" + "microwstest.sandload.cn.pem"); _socket->addCaCertificates(qApp->applicationDirPath() + "/" + "microwstest.sandload.cn.pem");
...@@ -515,8 +517,8 @@ void OrderPushWork::workStart() ...@@ -515,8 +517,8 @@ void OrderPushWork::workStart()
//网络异常断开重连 //网络异常断开重连
CLOSESOCKES(_socket); CLOSESOCKES(_socket);
//delete _socket; delete _socket;
//_socket = NULL; _socket = NULL;
EVENTWAIT(60000); EVENTWAIT(60000);
} }
......
...@@ -208,7 +208,7 @@ private: ...@@ -208,7 +208,7 @@ private:
{ {
Data_Head head = {0}; Data_Head head = {0};
QByteArray tmpdata = QString(QJsonDocument(json).toJson()).toUtf8(); QByteArray tmpdata = QString(QJsonDocument(json).toJson(QJsonDocument::Compact)).toUtf8();
char *buf = (char *)calloc(1, sizeof(Data_Head) + tmpdata.size() + 1); char *buf = (char *)calloc(1, sizeof(Data_Head) + tmpdata.size() + 1);
......
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