Рефакт

This commit is contained in:
2025-10-17 17:36:33 +03:00
parent 5c147be57a
commit edadfdf323
7 changed files with 166 additions and 135 deletions

View File

@@ -67,6 +67,7 @@ add_library(InstructorsAndTrainees SHARED
connectorToServer/connectortoserver.h connectorToServer/connectortoserver.h
connectorToServer/connectortoserver_LocalModelDB.cpp connectorToServer/connectortoserver_LocalModelDB.cpp
connectorToServer/connectortoserver_AnswerQueryToDB.cpp connectorToServer/connectortoserver_AnswerQueryToDB.cpp
connectorToServer/connectortoserver_Send.cpp
connectorToServer/Core/sendsystem.cpp connectorToServer/Core/sendsystem.cpp
connectorToServer/Core/sendsystem.h connectorToServer/Core/sendsystem.h
connectorToServer/Core/dataparser.cpp connectorToServer/Core/dataparser.cpp

View File

@@ -32,111 +32,6 @@ ConnectorToServer::~ConnectorToServer()
delete connectionThread; delete connectionThread;
} }
bool ConnectorToServer::authorizationInstructorLocal(QString login, QString password)
{
if (!client->getIsConnected())
{
return false;
}
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = login;
autorization->Password = password;
autorization->TypeClient = TypeClientAutorization::TYPE_GUI;
QByteArray array = dataParser->createAuthMessage(autorization);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::deAuthorizationInstructorLocal(QString login)
{
if (!client->getIsConnected())
{
return false;
}
ClientDeAutorization *deAutorization = new ClientDeAutorization;
deAutorization->Login = login;
QByteArray array = dataParser->createDeAuthMessage(deAutorization);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendQueryToDB(TypeQueryToDB typeQuery, int id, void* data)
{
if (!client->getIsConnected())
{
return false;
}
ClientQueryToDB *queryToDB = new ClientQueryToDB;
queryToDB->typeQuery = typeQuery;
QByteArray array = dataParser->createQueryToDBMessage(queryToDB, id, data);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendMessage(ClientMessage clientMessage)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createMessage(clientMessage);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendClientNotify(QString command)
{
QByteArray answer = dataParser->xmlAnswer_notify(command);
emit sigSendAnswerToServer(answer);
return true;
}
bool ConnectorToServer::sendQueryTasksXML(QString type)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createQueryTasksXMLMessage(type);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendQueryBlockAuth(bool block)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createQueryBlockAuth(block);
emit sigSendAnswerToServer(array);
return true;
}
void ConnectorToServer::showVersionSelect()
{
QByteArray answer = dataParser->xmlAnswer_notify(cmd_CheckVersionList);
emit sigSendAnswerToServer(answer);
}
void ConnectorToServer::setLoginName(QString name)
{
versionSelectWidget->setAuthor(name);
}
ServerSettings ConnectorToServer::getServerSettings() ServerSettings ConnectorToServer::getServerSettings()
{ {
return serverSettings; return serverSettings;
@@ -159,6 +54,11 @@ void ConnectorToServer::StopConnectToServer()
clearListModelDB(); clearListModelDB();
} }
void ConnectorToServer::setLoginName(QString name)
{
versionSelectWidget->setAuthor(name);
}
void ConnectorToServer::slot_sendMessage(ClientMessage clientMessage) void ConnectorToServer::slot_sendMessage(ClientMessage clientMessage)
{ {
sendMessage(clientMessage); sendMessage(clientMessage);

View File

@@ -26,19 +26,6 @@ public:
~ConnectorToServer(); ~ConnectorToServer();
public: public:
bool authorizationInstructorLocal(QString login, QString password);
bool deAuthorizationInstructorLocal(QString login);
bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr);
bool sendMessage(ClientMessage clientMessage);
bool sendQueryTasksXML(QString type);
bool sendQueryBlockAuth(bool block);
void showVersionSelect();
void setLoginName(QString name);
bool sendClientNotify(QString command);
ServerSettings getServerSettings(); ServerSettings getServerSettings();
bool getIsConnected(); bool getIsConnected();
@@ -48,8 +35,24 @@ public:
void SetConnectToServer(); void SetConnectToServer();
void StopConnectToServer(); void StopConnectToServer();
void setLoginName(QString name);
public: public:
//Запросы к БД (локальной) //Send
bool sendAuthorizationInstructorLocal(QString login, QString password);
bool sendDeAuthorizationInstructorLocal(QString login);
bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr);
bool sendMessage(ClientMessage clientMessage);
bool sendQueryTasksXML(QString type);
bool sendQueryBlockAuth(bool block);
void sendShowVersionSelect();
bool sendClientNotify(QString command);
public:
//LocalModelDB
QByteArray getListTaskFimArray(); QByteArray getListTaskFimArray();
QByteArray getListTaskAmmArray(); QByteArray getListTaskAmmArray();
@@ -82,7 +85,7 @@ private:
void clearListModelDB(); void clearListModelDB();
public slots: public slots:
//Ответы на запросы к Серверу //AnswerQueryToDB
void slot_AnswerQueryToDB_ListInstructors(QList<Instructor> listInstructors); void slot_AnswerQueryToDB_ListInstructors(QList<Instructor> listInstructors);
void slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups); void slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups);
void slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTrainees); void slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTrainees);
@@ -90,16 +93,13 @@ public slots:
void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms); void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id); void slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id);
void slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id); void slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id);
void slot_AnswerQueryTasksXML_FIM(QByteArray array); void slot_AnswerQueryTasksXML_FIM(QByteArray array);
void slot_AnswerQueryTasksXML_AMM(QByteArray array); void slot_AnswerQueryTasksXML_AMM(QByteArray array);
public slots:
void slot_sendMessage(ClientMessage clientMessage); void slot_sendMessage(ClientMessage clientMessage);
void slot_showServerList(QList<StreamingVersionData*> *serverList); void slot_showServerList(QList<StreamingVersionData*> *serverList);
void slot_HashReady(); void slot_HashReady();
void slot_Auth(ServerAuthorization * serverAuth); void slot_Auth(ServerAuthorization * serverAuth);
signals: signals:
@@ -144,6 +144,7 @@ private:
NotifyController *notifyController; NotifyController *notifyController;
//Списочная модель БД СУО //Списочная модель БД СУО
QMutex mtxAccess;
QList<Instructor> listInstructors; QList<Instructor> listInstructors;
QList<Group> listGroups; QList<Group> listGroups;
QList<Trainee> listTrainees; QList<Trainee> listTrainees;
@@ -157,9 +158,7 @@ private:
ServerSettings serverSettings; ServerSettings serverSettings;
ServerAuthorization serverAuth; ServerAuthorization serverAuth;
bool fl_GetedOfflineMessages; bool fl_GetedOfflineMessages;
QMutex mtxAccess;
}; };
#endif // CONNECTORTOSERVER_H #endif // CONNECTORTOSERVER_H

View File

@@ -2,83 +2,112 @@
void ConnectorToServer::slot_AnswerQueryToDB_ListInstructors(QList<Instructor> listInstructors) void ConnectorToServer::slot_AnswerQueryToDB_ListInstructors(QList<Instructor> listInstructors)
{ {
//mtxAccess.lock(); mtxAccess.lock();
this->listInstructors = listInstructors;
emit signal_UpdateDB(true, false); this->listInstructors = listInstructors;
QList<User> listUsers; QList<User> listUsers;
for(Instructor instructor : listInstructors) for(Instructor instructor : listInstructors)
{ {
listUsers.append(instructor); listUsers.append(instructor);
} }
//mtxAccess.unlock();
mtxAccess.unlock();
emit signal_UpdateDB(true, false);
emit signal_reInitMessangerByUsers(listUsers); emit signal_reInitMessangerByUsers(listUsers);
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups) void ConnectorToServer::slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups)
{ {
mtxAccess.lock();
this->listGroups = listGroups; this->listGroups = listGroups;
mtxAccess.unlock();
emit signal_UpdateDB(false, true); emit signal_UpdateDB(false, true);
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTrainees) void ConnectorToServer::slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTrainees)
{ {
mtxAccess.lock();
this->listTrainees = listTrainees; this->listTrainees = listTrainees;
emit signal_UpdateDB(false, true);
QList<User> listUsers; QList<User> listUsers;
for(Trainee trainee : listTrainees) for(Trainee trainee : listTrainees)
{ {
listUsers.append(trainee); listUsers.append(trainee);
} }
mtxAccess.unlock();
emit signal_UpdateDB(false, true);
emit signal_reInitMessangerByUsers(listUsers); emit signal_reInitMessangerByUsers(listUsers);
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListComputers(QList<Computer> listComputers) void ConnectorToServer::slot_AnswerQueryToDB_ListComputers(QList<Computer> listComputers)
{ {
mtxAccess.lock();
this->listComputers = listComputers; this->listComputers = listComputers;
mtxAccess.unlock();
//emit signal_UpdateDB(false, true); //TODO //emit signal_UpdateDB(false, true); //TODO
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms) void ConnectorToServer::slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms)
{ {
mtxAccess.lock();
this->listClassrooms = listClassrooms; this->listClassrooms = listClassrooms;
mtxAccess.unlock();
//emit signal_UpdateDB(false, true); //TODO //emit signal_UpdateDB(false, true); //TODO
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id) void ConnectorToServer::slot_AnswerQueryToDB_ListTasksAMMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id)
{ {
mtxAccess.lock();
//Удаляем старые задачи этого обучаемого //Удаляем старые задачи этого обучаемого
mapTasksAMM.remove(trainee_id); mapTasksAMM.remove(trainee_id);
//Добавляем новые //Добавляем новые
mapTasksAMM.insert(trainee_id, listTasks); mapTasksAMM.insert(trainee_id, listTasks);
mtxAccess.unlock();
emit signal_UpdateTasksAMMforTrainee(trainee_id); emit signal_UpdateTasksAMMforTrainee(trainee_id);
} }
void ConnectorToServer::slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id) void ConnectorToServer::slot_AnswerQueryToDB_ListTasksFIMforTrainee(QList<TaskAmmFim> listTasks, int trainee_id)
{ {
mtxAccess.lock();
//Удаляем старые задачи этого обучаемого //Удаляем старые задачи этого обучаемого
mapTasksFIM.remove(trainee_id); mapTasksFIM.remove(trainee_id);
//Добавляем новые //Добавляем новые
mapTasksFIM.insert(trainee_id, listTasks); mapTasksFIM.insert(trainee_id, listTasks);
mtxAccess.unlock();
emit signal_UpdateTasksFIMforTrainee(trainee_id); emit signal_UpdateTasksFIMforTrainee(trainee_id);
} }
void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QByteArray array) void ConnectorToServer::slot_AnswerQueryTasksXML_FIM(QByteArray array)
{ {
mtxAccess.lock();
this->listTaskFimArray = array; this->listTaskFimArray = array;
mtxAccess.unlock();
emit signal_UpdateTasksFIM(); emit signal_UpdateTasksFIM();
} }
void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QByteArray array) void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QByteArray array)
{ {
mtxAccess.lock();
this->listTaskAmmArray = array; this->listTaskAmmArray = array;
mtxAccess.unlock();
emit signal_UpdateTasksAMM(); emit signal_UpdateTasksAMM();
//Запрос старых оффлайн-сообщений //Запрос старых оффлайн-сообщений

View File

@@ -0,0 +1,102 @@
#include "connectortoserver.h"
bool ConnectorToServer::sendAuthorizationInstructorLocal(QString login, QString password)
{
if (!client->getIsConnected())
{
return false;
}
ClientAutorization *autorization = new ClientAutorization;
autorization->Login = login;
autorization->Password = password;
autorization->TypeClient = TypeClientAutorization::TYPE_GUI;
QByteArray array = dataParser->createAuthMessage(autorization);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendDeAuthorizationInstructorLocal(QString login)
{
if (!client->getIsConnected())
{
return false;
}
ClientDeAutorization *deAutorization = new ClientDeAutorization;
deAutorization->Login = login;
QByteArray array = dataParser->createDeAuthMessage(deAutorization);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendQueryToDB(TypeQueryToDB typeQuery, int id, void* data)
{
if (!client->getIsConnected())
{
return false;
}
ClientQueryToDB *queryToDB = new ClientQueryToDB;
queryToDB->typeQuery = typeQuery;
QByteArray array = dataParser->createQueryToDBMessage(queryToDB, id, data);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendMessage(ClientMessage clientMessage)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createMessage(clientMessage);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendClientNotify(QString command)
{
QByteArray answer = dataParser->xmlAnswer_notify(command);
emit sigSendAnswerToServer(answer);
return true;
}
bool ConnectorToServer::sendQueryTasksXML(QString type)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createQueryTasksXMLMessage(type);
emit sigSendAnswerToServer(array);
return true;
}
bool ConnectorToServer::sendQueryBlockAuth(bool block)
{
if (!client->getIsConnected())
{
return false;
}
QByteArray array = dataParser->createQueryBlockAuth(block);
emit sigSendAnswerToServer(array);
return true;
}
void ConnectorToServer::sendShowVersionSelect()
{
QByteArray answer = dataParser->xmlAnswer_notify(cmd_CheckVersionList);
emit sigSendAnswerToServer(answer);
}

View File

@@ -199,7 +199,7 @@ void DialogSettings::on_btnSetVersion_clicked()
{ {
if(connectorToServer) if(connectorToServer)
if(connectorToServer->getIsConnected()) if(connectorToServer->getIsConnected())
connectorToServer->showVersionSelect(); connectorToServer->sendShowVersionSelect();
} }
void DialogSettings::on_cmbLanguage_currentIndexChanged(int index) void DialogSettings::on_cmbLanguage_currentIndexChanged(int index)

View File

@@ -316,7 +316,7 @@ bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent
// Вычисление MD5 хэша // Вычисление MD5 хэша
password = HashTools::hashingMD5string(password); password = HashTools::hashingMD5string(password);
connectorToServer->authorizationInstructorLocal(login, password); connectorToServer->sendAuthorizationInstructorLocal(login, password);
return true; return true;
} }
@@ -333,7 +333,7 @@ bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent
bool InstructorsAndTraineesWidget::deAuthorizationInstructor(QString login) bool InstructorsAndTraineesWidget::deAuthorizationInstructor(QString login)
{ {
connectorToServer->deAuthorizationInstructorLocal(login); connectorToServer->sendDeAuthorizationInstructorLocal(login);
return true; return true;
} }