Merge branch 'DEV' into draft-send-contacts

This commit is contained in:
semenov
2025-07-31 10:22:10 +03:00
18 changed files with 342 additions and 10 deletions

View File

@@ -11,7 +11,7 @@ void ProcessParser::initialize(ProcessingSystem *processingSystem)
this->processingSystem = processingSystem;
}
void ProcessParser::read(ClientHandler *client, QByteArray array)
void ProcessParser::slot_read(ClientHandler *client, QByteArray array)
{
QXmlStreamReader xmlReader(array);

View File

@@ -12,8 +12,9 @@ class ProcessParser : public QObject
public:
explicit ProcessParser(QObject *parent = nullptr);
void initialize(ProcessingSystem *processingSystem);
void read(ClientHandler *client, QByteArray array);
public slots:
void slot_read(ClientHandler *client, QByteArray array);
signals:
void sigLogMessage(QString text);

View File

@@ -4,8 +4,8 @@
ProcessingSystem::ProcessingSystem(ProviderDBLMS* providerDBLMS, UpdateController* updateController, QObject *parent):
QObject(parent),
providerDBLMS(nullptr),
updateController(nullptr)
updateController(nullptr),
providerDBLMS(nullptr)
{
this->providerDBLMS = providerDBLMS;
this->updateController = updateController;
@@ -58,6 +58,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
{//Авторизуется инструктор
client->getClient()->setLogin(clientAutorization.Login);
client->getClient()->setAccessType("instructor");
client->getClient()->setTypeClient(clientAutorization.TypeClient);
emit sigUpdateListClients();
@@ -73,6 +74,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
{//Авторизуется обучаемый
client->getClient()->setLogin(clientAutorization.Login);
client->getClient()->setAccessType("trainee");
emit sigUpdateListClients();
//KAV redact
@@ -120,6 +122,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
{//ДеАвторизуется обучаемый
client->getClient()->setLogin("");
client->getClient()->setAccessType("");
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -128,6 +131,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
{//ДеАвторизуется инструктор
client->getClient()->setLogin("");
client->getClient()->setAccessType("");
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -160,6 +164,38 @@ void ProcessingSystem::processingClientDeAutorization(QString login)
}
}
void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
{
QString login = client->getClient()->getLogin();
QString accessType = client->getClient()->getAccessType();
if(accessType == "trainee")
{
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
providerDBLMS->entryTraineeOnSimulator(id_trainee);
}
else if(accessType == "instructor")
{
//Здесь пока ничего не происходит
}
}
void ProcessingSystem::processingExitUnityClient(ClientHandler *client)
{
QString login = client->getClient()->getLogin();
QString accessType = client->getClient()->getAccessType();
if(accessType == "trainee")
{
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
providerDBLMS->exitTraineeFromSimulator(id_trainee);
}
else if(accessType == "instructor")
{
//Здесь пока ничего не происходит
}
}
void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQueryToDB clientQueryToDB, int id, void* data)
{
qDebug() << "ProcessingQueryThread " << QThread::currentThreadId();
@@ -487,9 +523,24 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
sendTaskListToUnity(client);
client->getSocket()->flush();
}
else if(clientNotify.Code == commandStartTimerClient)
{
//Фиксируем время входа Юнити-клиента
if (client->getClient()->getIsUnity())
{
processingEntryUnityClient(client);
}
}
else if(clientNotify.Code == commandDisableClient)
{
qDebug() << "processing thread: " << QThread::currentThreadId();
//Фиксируем время выхода Юнити-клиента
if (client->getClient()->getIsUnity())
{
processingExitUnityClient(client);
}
client->sendDisable();
}
else if(clientNotify.Code == commandGetServerDataList)

View File

@@ -52,6 +52,9 @@ public:
ClientHandler* getUnityClientById(int id);
void processingClientDeAutorization(QString login);
void processingEntryUnityClient(ClientHandler *client);
void processingExitUnityClient(ClientHandler *client);
signals:
void sigUpdateListClients();
void sigListsInstructorsTraineesChanged();

View File

@@ -27,7 +27,7 @@ void RecognizeSystem::initialize(UpdateController *updateController,DataParser*
connect(this,&RecognizeSystem::sigChangeVersion,updateController,&UpdateController::changeAssetVersion,Qt::AutoConnection);
connect(this,&RecognizeSystem::sigDeleteVersion,updateController,&UpdateController::deleteAssetVersion,Qt::AutoConnection);
connect(this,&RecognizeSystem::sigCopyVersion,updateController,&UpdateController::createCopyVersion,Qt::AutoConnection);
connect(this,&RecognizeSystem::sigXmlParser,dataParser->getProcessParser(),&ProcessParser::read,Qt::DirectConnection);
connect(this,&RecognizeSystem::sigXmlParser,dataParser->getProcessParser(),&ProcessParser::slot_read,Qt::DirectConnection);
qDebug() << "Recognize init thread ID " << QThread::currentThreadId();
}
@@ -430,7 +430,7 @@ void RecognizeSystem::recognize()
if(packetType == PacketType::TYPE_DISABLE)
{
clientHandler->sendDisable();
clientHandler->sendDisable();
}
packetType = PacketType::TYPE_NONE;
@@ -450,6 +450,7 @@ void RecognizeSystem::packetTypeInit(PacketType packet,Client *client)
else if (packet == PacketType::TYPE_UNITY)
{
client->setUnity(true);
//Фиксируем время входа Юнити-клиента
}
isPackageTypeInited = true;

View File

@@ -59,7 +59,7 @@ private:
bool isPackageTypeInited;
void packetTypeInit(PacketType packet,Client *client);
void packetTypeInit(PacketType type);
//void packetTypeInit(PacketType type);
bool checkIsChangeable();
};

View File

@@ -39,6 +39,7 @@ static const QString commandGetServerDataList = "GETSERVERDATALIST";
static const QString commandCheckVersionList = "CHECKVERSIONLIST";
static const QString commandReadyClient = "READY";
static const QString commandDisableClient = "DISABLE";
static const QString commandStartTimerClient = "UNITYSTARTTIMER";
static const QString commandDuplicateVerName = "DUPLICATEVERNAME";
static const QString commandHashCompleteClient = "HASHSENDCOMPLETE";
static const QString commandCanChangeVersion = "CANCHANGE";