Рефакт

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_LocalModelDB.cpp
connectorToServer/connectortoserver_AnswerQueryToDB.cpp
connectorToServer/connectortoserver_Send.cpp
connectorToServer/Core/sendsystem.cpp
connectorToServer/Core/sendsystem.h
connectorToServer/Core/dataparser.cpp

View File

@@ -32,111 +32,6 @@ ConnectorToServer::~ConnectorToServer()
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()
{
return serverSettings;
@@ -159,6 +54,11 @@ void ConnectorToServer::StopConnectToServer()
clearListModelDB();
}
void ConnectorToServer::setLoginName(QString name)
{
versionSelectWidget->setAuthor(name);
}
void ConnectorToServer::slot_sendMessage(ClientMessage clientMessage)
{
sendMessage(clientMessage);

View File

@@ -26,19 +26,6 @@ public:
~ConnectorToServer();
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();
bool getIsConnected();
@@ -48,8 +35,24 @@ public:
void SetConnectToServer();
void StopConnectToServer();
void setLoginName(QString name);
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 getListTaskAmmArray();
@@ -82,7 +85,7 @@ private:
void clearListModelDB();
public slots:
//Ответы на запросы к Серверу
//AnswerQueryToDB
void slot_AnswerQueryToDB_ListInstructors(QList<Instructor> listInstructors);
void slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups);
void slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTrainees);
@@ -90,16 +93,13 @@ public slots:
void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void slot_AnswerQueryToDB_ListTasksAMMforTrainee(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_AMM(QByteArray array);
public slots:
void slot_sendMessage(ClientMessage clientMessage);
void slot_showServerList(QList<StreamingVersionData*> *serverList);
void slot_HashReady();
void slot_Auth(ServerAuthorization * serverAuth);
signals:
@@ -144,6 +144,7 @@ private:
NotifyController *notifyController;
//Списочная модель БД СУО
QMutex mtxAccess;
QList<Instructor> listInstructors;
QList<Group> listGroups;
QList<Trainee> listTrainees;
@@ -157,9 +158,7 @@ private:
ServerSettings serverSettings;
ServerAuthorization serverAuth;
bool fl_GetedOfflineMessages;
QMutex mtxAccess;
bool fl_GetedOfflineMessages;
};
#endif // CONNECTORTOSERVER_H

View File

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

View File

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