ref: send task list to client

This commit is contained in:
semenov
2025-06-04 14:30:58 +03:00
parent c238a28800
commit d75eb3ce5c
7 changed files with 36 additions and 31 deletions

View File

@@ -90,23 +90,6 @@ 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<TaskAmmFim> listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id_trainee);
client->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
//FIM
QList<TaskAmmFim> listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id_trainee);
client->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
QString str = QString(arrayAnswer);
//logger->addTextToLogger("To Client: " + str);
@@ -423,17 +406,9 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
{
if(clientNotify.Code == commandReadyClient)
{//Клиент готов принять задания
client->getClient()->setReady(true); //скорее всего функции будут внутри хэндлера
//Отправляем пакет с заданиями для Обучаемого(клиента)
client->setReady(true);
sendTaskListToUnity(client);
client->getSocket()->flush();
//QStringList listTasks;
//QByteArray arrayAnswer = dataParser->ClientAnswer()->tasks(listTasks);
//client->sendXmlAnswer(arrayAnswer);
//QString str = QString(arrayAnswer);
//emit sigLogMessage("To Client: " + str);
}
else if(clientNotify.Code == commandDisableClient)
{
@@ -459,6 +434,9 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
client->sigSendNotify(commandUnchangable);
}
}else if(clientNotify.Code == commandGetTasks)
{
sendTaskListToUnity(client);
}
}
@@ -481,6 +459,26 @@ void ProcessingSystem::sendListTasksFIMofTraineetoClient(ClientHandler *client,
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
void ProcessingSystem::sendTaskListToUnity(ClientHandler *client)
{
//Отправка списков задач клиенту Юнити
if(client->getClient()->getIsUnity())
{
QString login = client->getClient()->getLogin();
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
//AMM
QList<TaskAmmFim> listTasksAMM = providerDBLMS->GetListTasksAMMofTrainee(id_trainee);
QByteArray arrayAnswerTasksAMM = dataParser->DbAnswer()->listTasksAMMofTrainee(true, &listTasksAMM, id_trainee);
client->sendXmlAnswer(arrayAnswerTasksAMM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_AMM_OF_TRAINEE);
//FIM
QList<TaskAmmFim> listTasksFIM = providerDBLMS->GetListTasksFIMofTrainee(id_trainee);
QByteArray arrayAnswerFIM = dataParser->DbAnswer()->listTasksFIMofTrainee(true, &listTasksFIM, id_trainee);
client->sendXmlAnswer(arrayAnswerFIM, PacketType::TYPE_XMLANSWER_QUERY_TASKS_FIM_OF_TRAINEE);
}
}
ClientHandler *ProcessingSystem::getUnityClientById(int id)
{
QString login = providerDBLMS->getLoginTraineeById(id);

View File

@@ -60,6 +60,7 @@ private:
DataParser *dataParser;
UpdateController *updateController;
ProviderDBLMS* providerDBLMS;
void sendTaskListToUnity(ClientHandler *client);
};
#endif // PROCESSINGSYSTEM_H

View File

@@ -200,8 +200,7 @@ void SendSystem::sendXmlAnswer(QByteArray array, PacketType packetType)
socket->write(array);
}
socket->waitForReadyRead(1000);
socket->waitForReadyRead(2000);
}
void SendSystem::sendNeedUpdate(bool flag,quint64 size,quint64 fileCount,quint64 deleteCount)

View File

@@ -44,6 +44,7 @@ static const QString commandCanChangeVersion = "CANCHANGE";
static const QString commandChangable = "CHANGEABLE";
static const QString commandUnchangable = "UNCHANGEABLE";
static const QString commandUpdateFilesClient = "update";
static const QString commandGetTasks = "GETTASKS";
class Tools {
public: