From 0574be1369b191a98e6e93a1a13ed53c03e62b93 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 18 Mar 2025 16:29:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B0=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=87=20=D0=BA=D0=BB=D0=B8=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D1=83=20=D0=AE=D0=BD=D0=B8=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBaseLMS/databaselms.cpp | 6 ++++++ DataBaseLMS/interfacedatabaselms.cpp | 5 +++++ DataBaseLMS/interfacedatabaselms.h | 1 + ServerLMS/Systems/processingsystem.cpp | 17 +++++++++++++++++ ServerLMS/providerdblms.cpp | 18 ++++++++++++++++++ ServerLMS/providerdblms.h | 2 ++ 6 files changed, 49 insertions(+) diff --git a/DataBaseLMS/databaselms.cpp b/DataBaseLMS/databaselms.cpp index ff6b50a..e0e5d34 100644 --- a/DataBaseLMS/databaselms.cpp +++ b/DataBaseLMS/databaselms.cpp @@ -457,6 +457,8 @@ int DataBaseLMS::updateGroup(Group group) int DataBaseLMS::insertTaskAMM(TaskAmmFim task, int id_trainee) { + task.ammProcedure.title = task.ammProcedure.title.replace("'", "''"); //Задваиваем одинарные кавычки + QString queryStr = QString("INSERT INTO public.tasks_amm (title, dm_code, trainee_task) " "VALUES ('%1', '%2', %3) " "RETURNING tasks_amm.task_id").arg( @@ -526,6 +528,8 @@ int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee) resBool = db->transaction(); + task.title = task.title.replace("'", "''"); //Задваиваем одинарные кавычки + queryStr = QString("INSERT INTO public.tasks_fim (title, trainee_task) " "VALUES ('%1', %2) " "RETURNING tasks_fim.task_id").arg( @@ -541,6 +545,8 @@ int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee) for(Malfunction malfanction : task.malfunctionList) { + malfanction.description = malfanction.description.replace("'", "''"); //Задваиваем одинарные кавычки + queryStr = QString("INSERT INTO public.malfunctions (num, dm_code, description, task_fim_malf) " "VALUES ('%1', '%2', '%3', %4) " "RETURNING malfunctions.malfunction_id").arg( diff --git a/DataBaseLMS/interfacedatabaselms.cpp b/DataBaseLMS/interfacedatabaselms.cpp index f928ed8..03c1b4f 100644 --- a/DataBaseLMS/interfacedatabaselms.cpp +++ b/DataBaseLMS/interfacedatabaselms.cpp @@ -233,6 +233,11 @@ QString InterfaceDataBaseLMS::getNameTraineeByLogin(QString login) return selectTraineeNameByLogin(login); } +int InterfaceDataBaseLMS::getIdTraineeByLogin(QString login) +{ + return selectTraineeID(login); +} + QList InterfaceDataBaseLMS::getListTraineesInGroup(int id) { return selectAllTraineesInGroup(id); diff --git a/DataBaseLMS/interfacedatabaselms.h b/DataBaseLMS/interfacedatabaselms.h index 9dad569..3ba2233 100644 --- a/DataBaseLMS/interfacedatabaselms.h +++ b/DataBaseLMS/interfacedatabaselms.h @@ -57,6 +57,7 @@ public: Trainee getTraineeOnComputer(QString computer_name); QString getNameTraineeByLogin(QString login); + int getIdTraineeByLogin(QString login); QList getListTraineesInGroup(int id); QList getListGroups(); diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 88283fc..0858461 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -86,6 +86,23 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien client->sendXmlAnswer(arrayAnswer); client->sendVersion(); + //Отправка списка задач клиенту Юнити + if(client->getClient()->getIsUnity()) + { + QString login = client->getClient()->getLogin(); + int id_trainee = providerDBLMS->getIdTraineeByLogin(login); + + //AMM + QList listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id_trainee); + QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id_trainee); + client->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_FOR_TRAINEE); + + //FIM + QList listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id_trainee); + QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id_trainee); + client->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_FOR_TRAINEE); + } + QString str = QString(arrayAnswer); //logger->addTextToLogger("To Client: " + str); diff --git a/ServerLMS/providerdblms.cpp b/ServerLMS/providerdblms.cpp index 0c0984c..cc42116 100644 --- a/ServerLMS/providerdblms.cpp +++ b/ServerLMS/providerdblms.cpp @@ -222,6 +222,24 @@ bool ProviderDBLMS::deAuthorizationAll() return res1 && res2; } +int ProviderDBLMS::getIdTraineeByLogin(QString login) +{ + int id_trainee = 0; + qDebug() << "ProviderDBLMS " << QThread::currentThreadId(); + mtxAccess.lock(); + + if(! dbLMS->DBisConnected()) + { + mtxAccess.unlock(); + return id_trainee; + } + + id_trainee = dbLMS->getIdTraineeByLogin(login); + + mtxAccess.unlock(); + return id_trainee; +} + QList ProviderDBLMS::GetListAllInstructors() { QList listInstructors; diff --git a/ServerLMS/providerdblms.h b/ServerLMS/providerdblms.h index e2bf040..3962a8b 100644 --- a/ServerLMS/providerdblms.h +++ b/ServerLMS/providerdblms.h @@ -29,6 +29,8 @@ public: bool deAuthorizationAll(); // + int getIdTraineeByLogin(QString login); + QList GetListAllInstructors(); QList GetListAllTrainees(); QList GetListAllGroups();