diff --git a/DOCS/Андрей/Board.md b/DOCS/Андрей/Board.md index 3e4ca39..ed36e5a 100644 --- a/DOCS/Андрей/Board.md +++ b/DOCS/Андрей/Board.md @@ -18,6 +18,7 @@ kanban-plugin: board - [ ] Подсчет учебного времени - дельта между включением и выключением - [ ] Сервер при сворачивании превращается в трей - [ ] выдавать trainee_id при авторизации и вытащить передачу Trainee ID из тасок +- [ ] убрать clientMap из serverLMS Widget ## TODO diff --git a/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp b/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp index e28ddc1..bff0715 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp +++ b/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp @@ -76,18 +76,18 @@ QByteArray DataParser::createAuthMessage(ClientAutorization *auth) return array; } -QByteArray DataParser::createToClientMessage(ToClientMessage *toClientMessage) +QByteArray DataParser::createMessage(ClientMessage *clientMessage) { QByteArray array; QXmlStreamWriter xmlWriter(&array); xmlWriter.setAutoFormatting(true); xmlWriter.writeStartDocument(); - xmlWriter.writeStartElement("ToClientMessage"); + xmlWriter.writeStartElement("ClientMessage"); - xmlWriter.writeAttribute("id", QString::number(toClientMessage->id)); - xmlWriter.writeAttribute("Login", toClientMessage->Login); - xmlWriter.writeAttribute("Text", toClientMessage->Text); + xmlWriter.writeAttribute("From",clientMessage->fromId); + xmlWriter.writeAttribute("To", clientMessage->toId); + xmlWriter.writeAttribute("Text", clientMessage->Text); xmlWriter.writeEndElement(); xmlWriter.writeEndElement(); @@ -308,7 +308,7 @@ void DataParser::createAuthData(ServerAuthorization *serverAuth) xmlWriter.writeAttribute("InstructorName",serverAuth->InstructorName); xmlWriter.writeAttribute("ClientName",serverAuth->ClientName); xmlWriter.writeAttribute("AccessType",serverAuth->AccessType); - + xmlWriter.writeAttribute("id_client",serverAuth->Id); xmlWriter.writeEndElement(); file.close(); diff --git a/InstructorsAndTrainees/connectorToServer/Core/dataparser.h b/InstructorsAndTrainees/connectorToServer/Core/dataparser.h index 8e2e85c..bf236e6 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/dataparser.h +++ b/InstructorsAndTrainees/connectorToServer/Core/dataparser.h @@ -23,7 +23,7 @@ public: void createFileDataList(QList fileDataList,QString filename); QByteArray createAuthMessage(ClientAutorization *auth); - QByteArray createToClientMessage(ToClientMessage *toClientMessage); + QByteArray createMessage(ClientMessage *toClientMessage); QByteArray createQueryToDBMessage(ClientQueryToDB *queryToDB, int id = 0, void* data = nullptr); QByteArray createQueryTasksXMLMessage(QString type); QByteArray createDeAuthMessage(ClientDeAutorization *deAuth); diff --git a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp index 360f4dd..41dc9cc 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp +++ b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp @@ -496,12 +496,17 @@ void RecognizeSystem::xmlParser(QByteArray array) if (name == "Login"){ serverAuth->Login = value; } + + if (name == "id_client") + { + serverAuth->Id = value; + } } emit sigAuth(serverAuth); } - if(xmlReader.name() == "ServerMessage"){ + if(xmlReader.name() == "ClientMessage"){ ClientMessage *clientMessage = new ClientMessage; @@ -510,15 +515,20 @@ void RecognizeSystem::xmlParser(QByteArray array) QString name = attr.name().toString(); QString value = attr.value().toString(); - if (name == "Login"){ - clientMessage->Login = value; + if (name == "From"){ + clientMessage->fromId = value; } + + if (name == "To"){ + clientMessage->toId = value; + } + if (name == "Text"){ clientMessage->Text = value; } } - emit signal_MessageForGUI(clientMessage->Login, clientMessage->Text); + emit signal_ReceiveMessage(clientMessage->fromId, clientMessage->toId,clientMessage->Text); } if(xmlReader.name() == "ServerDeAuthorization"){ diff --git a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h index 126288f..fee5b75 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h +++ b/InstructorsAndTrainees/connectorToServer/Core/recognizesystem.h @@ -41,7 +41,7 @@ signals: void sigSocketWaitForReadyRead(int waitTime); void sigStartCompare(); - void signal_MessageForGUI(QString login, QString text); + void signal_ReceiveMessage(QString fromId,QString toId, QString text); void sigAnswerQueryToDB_ListInstructors(QList listInstructors); void sigAnswerQueryToDB_ListGroups(QList listGroups); diff --git a/InstructorsAndTrainees/connectorToServer/Datas.h b/InstructorsAndTrainees/connectorToServer/Datas.h index 5f03268..dbc3353 100644 --- a/InstructorsAndTrainees/connectorToServer/Datas.h +++ b/InstructorsAndTrainees/connectorToServer/Datas.h @@ -19,6 +19,7 @@ public: bool Result; QString AccessType; QString Login; + QString Id; }; class ServerDeAuthorization{ public: @@ -73,15 +74,8 @@ public: class ClientMessage { public: - QString Login; - QString Text; -}; - -class ToClientMessage -{ -public: - int id; - QString Login; + QString fromId; + QString toId; QString Text; }; diff --git a/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp b/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp index 596c764..5c082b1 100644 --- a/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp +++ b/InstructorsAndTrainees/connectorToServer/connectortoserver.cpp @@ -81,19 +81,19 @@ bool ConnectorToServer::sendQueryToDB(TypeQueryToDB typeQuery, int id, void* dat return true; } -bool ConnectorToServer::sendMessageForClient(int id, QString login, QString text) +bool ConnectorToServer::sendMessage(QString fromId, QString toId, QString text) { if (!client->getIsConnected()) { return false; } - ToClientMessage *toClientMessage = new ToClientMessage; - toClientMessage->id = id; - toClientMessage->Login = login; - toClientMessage->Text = text; + ClientMessage *clientMessage = new ClientMessage; + clientMessage->fromId = fromId; + clientMessage->toId = toId; + clientMessage->Text = text; - QByteArray array = dataParser->createToClientMessage(toClientMessage); + QByteArray array = dataParser->createMessage(clientMessage); emit signal_sendXMLmsgGUItoServer(array); return true; @@ -372,11 +372,9 @@ void ConnectorToServer::slot_AnswerQueryTasksXML_AMM(QByteArray array) emit signal_UpdateTasksAMM(); } -void ConnectorToServer::slot_msgToClientReady(QString login, QString text) +void ConnectorToServer::slot_sendMessage(QString fromId, QString toId, QString text) { - int id = getIdTraineeByLogin(login); - if(id) - sendMessageForClient(id, login, text); + sendMessage(fromId, toId, text); } void ConnectorToServer::showServerList(QList *serverList) @@ -412,7 +410,7 @@ void ConnectorToServer::bindConnection() connect(recognizeSystem,&RecognizeSystem::sigAuth,this,&ConnectorToServer::sigLoginResult); connect(recognizeSystem,&RecognizeSystem::sigDeAuth,this,&ConnectorToServer::sigDeLoginResult); - connect(recognizeSystem,&RecognizeSystem::signal_MessageForGUI,this,&ConnectorToServer::signal_msgFromClientReady); + connect(recognizeSystem,&RecognizeSystem::signal_ReceiveMessage,this,&ConnectorToServer::signal_receiveMessage); connect(recognizeSystem,&RecognizeSystem::sigShowServerDataList,this,&ConnectorToServer::showServerList); connect (recognizeSystem,&RecognizeSystem::sigSetVersion,versionContainer,&VersionContainer::setServerVersionData); //connect(recognizeSystem,&RecognizeSystem::sigAnswerQueryToDB,this,&ConnectorToServer::slot_AnswerQueryToDB); diff --git a/InstructorsAndTrainees/connectorToServer/connectortoserver.h b/InstructorsAndTrainees/connectorToServer/connectortoserver.h index 1fe2499..8429372 100644 --- a/InstructorsAndTrainees/connectorToServer/connectortoserver.h +++ b/InstructorsAndTrainees/connectorToServer/connectortoserver.h @@ -27,7 +27,7 @@ public: bool deAuthorizationInstructorLocal(QString login); bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr); - bool sendMessageForClient(int id, QString login, QString text); + bool sendMessage(QString fromId, QString toId, QString text); bool sendQueryTasksXML(QString type); @@ -79,7 +79,7 @@ public slots: void slot_AnswerQueryTasksXML_FIM(QByteArray array); void slot_AnswerQueryTasksXML_AMM(QByteArray array); - void slot_msgToClientReady(QString login, QString text); + void slot_sendMessage(QString fromId, QString toId, QString text); void showServerList(QList *serverList); void slot_HashReady(); @@ -108,7 +108,7 @@ signals: void signal_InitMessanger(QList listTrainees); - void signal_msgFromClientReady(QString login, QString text); + void signal_receiveMessage(QString fromId, QString toId, QString text); void sigSendAnswerToServer(QByteArray array); private: diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index e706985..0d08620 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -75,8 +75,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : //connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerWidget,&MessangerWidget::slot_InitMessanger); connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, messangerWidget, &MessangerWidget::slot_traineeSelected); connect(messangerWidget, &MessangerWidget::signal_tabMessengerChanged, viewerTrainees, &ViewerTrainees::slot_tabMessengerChanged); - connect(messangerWidget, &MessangerWidget::signal_msgToClientReady, connectorToServer, &ConnectorToServer::slot_msgToClientReady); - connect(connectorToServer,&ConnectorToServer::signal_msgFromClientReady,messangerWidget,&MessangerWidget::slot_msgFromClientReady); + connect(messangerWidget, &MessangerWidget::signal_sendMessage, connectorToServer, &ConnectorToServer::slot_sendMessage); + connect(connectorToServer,&ConnectorToServer::signal_receiveMessage,messangerWidget,&MessangerWidget::slot_showMessage); connect(fimTasksWidget, &FIMtasksWidget::signal_AssignedTask, viewerTrainees, &ViewerTrainees::slot_waitAnimationWidgetShowWithPlayFIM); connect(ammTasksWidget, &AMMtasksWidget::signal_AssignedTask, viewerTrainees, &ViewerTrainees::slot_waitAnimationWidgetShowWithPlayAMM); @@ -193,6 +193,7 @@ void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverA { loginInstructorLoggedInLocal = serverAuth->Login; nameInstructorLoggedInLocal = serverAuth->ClientName; + idInstructorLoggedInLocal = serverAuth->Id; if(loginInstructorLoggedInLocal == QStringLiteral("admin")) adminMode = true; @@ -217,7 +218,7 @@ void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverA connectorToServer->sendQueryTasksXML("fim"); connectorToServer->sendQueryTasksXML("amm"); - + messangerWidget->initialize(idInstructorLoggedInLocal); //QMessageBox::information(this, tr("Instructor authorization"), tr("Successfully!")); } else diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.h b/InstructorsAndTrainees/instructorsandtraineeswidget.h index e32bd63..99752ab 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.h +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.h @@ -101,6 +101,7 @@ private: bool adminMode; QString loginInstructorLoggedInLocal; QString nameInstructorLoggedInLocal; + QString idInstructorLoggedInLocal; QTranslator qtLanguageTranslator; QString language; diff --git a/InstructorsAndTrainees/messanger/messangerwidget.cpp b/InstructorsAndTrainees/messanger/messangerwidget.cpp index 30c2bfe..0e36d1e 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/InstructorsAndTrainees/messanger/messangerwidget.cpp @@ -11,7 +11,8 @@ MessangerWidget::MessangerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MessangerWidget), - currLogin("") + currLogin(""), + currId("") { ui->setupUi(this); @@ -37,7 +38,7 @@ void MessangerWidget::addMsgFromClient(Trainee trainee, QString text) QString login = trainee.getLogin(); foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger) {//Есть такой - if(tabDialog->getLogin() == login) + if(tabDialog->getLogin() == trainee.getLogin()) { //Добавляем в существующую вкладку ui->tabWidget->setCurrentIndex(getIndexTab(login)); @@ -46,16 +47,23 @@ void MessangerWidget::addMsgFromClient(Trainee trainee, QString text) ui->tabWidget->setCurrentIndex(getIndexTab(login)); currLogin = login; + currId = QString::number(trainee.getID()); return; } } } +void MessangerWidget::initialize(QString id) +{ + currClientId = id; +} + void MessangerWidget::addTabDialogMessenger(Trainee trainee) { if(listTabDialogMessenger.count() == 0) {//Самая первая вкладка, делаем ее активной currLogin = trainee.getLogin(); + currId = QString::number(trainee.getID()); emit signal_tabMessengerChanged(currLogin); ui->btnSend->setEnabled(true); ui->editMsg->setEnabled(true); @@ -146,7 +154,7 @@ void MessangerWidget::on_btnSend_clicked() { QString text = ui->editMsg->toPlainText(); - emit signal_msgToClientReady(currLogin, text); + emit signal_sendMessage(currClientId, currId, text); ui->editMsg->clear(); @@ -216,12 +224,15 @@ void MessangerWidget::slot_InitMessanger(QList listTrainees) } } -void MessangerWidget::slot_msgFromClientReady(QString login, QString text) +void MessangerWidget::slot_showMessage(QString fromId, QString toId, QString text) { for(Trainee trainee: listTrainees) { - if(trainee.getLogin() == login) + if(QString::number(trainee.getID()) == fromId) + { addMsgFromClient(trainee, text); + break; + } } } diff --git a/InstructorsAndTrainees/messanger/messangerwidget.h b/InstructorsAndTrainees/messanger/messangerwidget.h index b4438e7..620f6ff 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.h +++ b/InstructorsAndTrainees/messanger/messangerwidget.h @@ -31,6 +31,7 @@ public: enum ETypeMsg{fromClient, toClient}; void addMsgFromClient(Trainee trainee, QString text); + void initialize(QString id); void addTabDialogMessenger(Trainee trainee); void actualizationTabsDialogMessenger(); @@ -45,7 +46,7 @@ private slots: signals: //сигнал о готовности нового сообщения на отправку клиенту - void signal_msgToClientReady(QString login, QString text); + void signal_sendMessage(QString fromId, QString toId, QString text); //сигнал об изменении вкладки диалога с клиентом (TabDialogMessenger) void signal_tabMessengerChanged(QString login); @@ -57,7 +58,7 @@ public slots: //слот обработки сигнала о выборе обучаемого void slot_traineeSelected(QString login); //слот о приходе нового сообщения от клиента - void slot_msgFromClientReady(QString login, QString text); + void slot_showMessage(QString fromId, QString toId, QString text); private: virtual void keyPressEvent(QKeyEvent *event) override; @@ -67,6 +68,8 @@ private: QList listTabDialogMessenger; QList listTrainees; QString currLogin; //Логин клиента текущего диалога + QString currId; //id клиента текущего диалога + QString currClientId; //id этого клиента QTranslator qtLanguageTranslator; }; diff --git a/ServerLMS/Data/Client.h b/ServerLMS/Data/Client.h index 1dfebb1..27e6400 100644 --- a/ServerLMS/Data/Client.h +++ b/ServerLMS/Data/Client.h @@ -97,11 +97,22 @@ public: } + QString getId() + { + return id; + } + + void setId(QString value) + { + id = value; + } + private: QString name; QString address; QString port; QString fullName; + QString id; QString login; bool ready; @@ -112,3 +123,5 @@ private: }; #endif // CLIENT_H + + diff --git a/ServerLMS/Data/typesDataServerClient.h b/ServerLMS/Data/typesDataServerClient.h index beee14e..c1cfcbb 100644 --- a/ServerLMS/Data/typesDataServerClient.h +++ b/ServerLMS/Data/typesDataServerClient.h @@ -98,14 +98,8 @@ public: class ClientMessage { public: - QString Text; -}; - -class ToClientMessage -{ -public: - int id; - QString Login; + QString From; + QString To; QString Text; }; diff --git a/ServerLMS/Systems/Parsers/clientanswerparser.cpp b/ServerLMS/Systems/Parsers/clientanswerparser.cpp index 2b9e456..e1ce8b3 100644 --- a/ServerLMS/Systems/Parsers/clientanswerparser.cpp +++ b/ServerLMS/Systems/Parsers/clientanswerparser.cpp @@ -43,19 +43,19 @@ QByteArray ClientAnswerParser::deAuthorization(bool result, QString login) return dataParser->xmlAnswer(listTag); } -QByteArray ClientAnswerParser::message(QString text, QString login) +QByteArray ClientAnswerParser::message(QString loginFrom,QString loginTo,QString text) { QList listTag; - SAttribute attribute2; + QList listAttr; + SAttribute attribute1; + attribute1 = {"From",loginFrom}; + listAttr.append(attribute1); + attribute1 = {"To",loginTo}; + listAttr.append(attribute1); + attribute1 = {"Text",text}; + listAttr.append(attribute1); - SAttribute attribute1 = {"Text", text}; - QList listAttr = {attribute1}; - if(login != "") - { - attribute2 = {"Login", login}; - listAttr.append(attribute2); - } - SXmlAnswerTag tag = {"ServerMessage", listAttr}; + SXmlAnswerTag tag = {"ClientMessage", listAttr}; listTag.append(tag); diff --git a/ServerLMS/Systems/Parsers/clientanswerparser.h b/ServerLMS/Systems/Parsers/clientanswerparser.h index a395099..423b4e5 100644 --- a/ServerLMS/Systems/Parsers/clientanswerparser.h +++ b/ServerLMS/Systems/Parsers/clientanswerparser.h @@ -16,7 +16,7 @@ public: QByteArray authorization(bool result, QString instructorName, QString clientName, QString accessType, QString login, int id); QByteArray deAuthorization(bool result, QString login); - QByteArray message(QString text, QString login = ""); + QByteArray message(QString loginFrom,QString loginTo,QString text); QByteArray task(QString text); QByteArray notify(QString code); QByteArray tasks(QStringList listTasks); diff --git a/ServerLMS/Systems/Parsers/processparser.cpp b/ServerLMS/Systems/Parsers/processparser.cpp index ad72b3e..c36a0b2 100644 --- a/ServerLMS/Systems/Parsers/processparser.cpp +++ b/ServerLMS/Systems/Parsers/processparser.cpp @@ -34,11 +34,6 @@ void ProcessParser::read(ClientHandler *client, QByteArray array) clientDeAuth(xmlReader,client); } - else if(xmlReader.name() == "ToClientMessage") - {//Отправка сообщения Клиенту - - toClientMessage(xmlReader,client); - } else if(xmlReader.name() == "QueryToDB") {//Запрос к базе данных от клиента @@ -339,28 +334,6 @@ void ProcessParser::clientDeAuth(QXmlStreamReader &xmlReader,ClientHandler *clie processingSystem->processingClientDeAutorization(client, clientDeAutorization); } -void ProcessParser::toClientMessage(QXmlStreamReader &xmlReader,ClientHandler *client) -{ - ToClientMessage toClientMessage; - - /*Перебираем все атрибуты тега*/ - foreach(const QXmlStreamAttribute &attr, xmlReader.attributes()) - { - QString name = attr.name().toString(); - QString value = attr.value().toString(); - //addTextToLogger(name + ": " + value); - - if(name == "id") - toClientMessage.id = value.toInt(); - else if(name == "Text") - toClientMessage.Text = value; - else if(name == "Login") - toClientMessage.Login = value; - } - - processingSystem->processingToClientMessage(client, toClientMessage); -} - void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, QByteArray array) { ClientQueryToDB queryToDB; @@ -519,11 +492,15 @@ void ProcessParser::clientMessage(QXmlStreamReader &xmlReader,ClientHandler *cli QString value = attr.value().toString(); //addTextToLogger(name + ": " + value); - if(name == "Text") + if (name == "Text") clientMessage.Text = value; + if (name == "From") + clientMessage.From = value; + if (name == "To") + clientMessage.To = value; } - processingSystem->processingFromClientMessage(client, clientMessage); + processingSystem->processingSendMessage(client, clientMessage); } diff --git a/ServerLMS/Systems/commonclienthandler.cpp b/ServerLMS/Systems/commonclienthandler.cpp index 2198868..6786aec 100644 --- a/ServerLMS/Systems/commonclienthandler.cpp +++ b/ServerLMS/Systems/commonclienthandler.cpp @@ -120,55 +120,23 @@ void CommonClientHandler::slot_sendPacketToAllClients(PacketType packetType) } } -void CommonClientHandler::slot_msgToClientFromGUI(QString login, QString text) +void CommonClientHandler::slotSendMessage(QString idFrom, QString idTo, QString text) { QString textMsg = text; - QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(textMsg); + QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(idFrom,idTo,text); //Проходим все открытые сокеты, ищем нужный foreach(int idSocket, clientsMap->keys()) { ClientHandler *handler = clientsMap->value(idSocket); - if(handler->getClient()->getLogin() == login) - {//Отправляем ему - - handler->sendXmlAnswer(byteArrayMsg); - - QString peerAddress = handler->getSocket()->peerAddress().toString(); - QString peerPort = QString::number(handler->getSocket()->peerPort()); - - QString str = "Msg To Client [" + peerAddress + ":" + peerPort + "] : " + textMsg; - - emit sigSendToLogger(str); - - break; - } - } -} - -void CommonClientHandler::slot_msgToGUIfromClient(QString login, QString text) -{ - QString textMsg = text; - - QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(textMsg, login); - - //Проходим все открытые сокеты, ищем нужный - foreach(int idSocket, clientsMap->keys()) - { - ClientHandler *handler = clientsMap->value(idSocket);; - if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI) - {//Отправляем GUI-клиенту для отображения в Мессенджере - + if(handler->getClient()->getId() == idTo) + { handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER); - - QString peerAddress = handler->getSocket()->peerAddress().toString(); - QString peerPort = QString::number(handler->getSocket()->peerPort()); - - QString str = "Msg From Client [" + peerAddress + ":" + peerPort + "] : " + textMsg; + QString str = "Msg From Client [" + idFrom + " to " + idTo + "] : " + textMsg; emit sigSendToLogger(str); - break; + break; } } } diff --git a/ServerLMS/Systems/commonclienthandler.h b/ServerLMS/Systems/commonclienthandler.h index 9d8709a..ae122a8 100644 --- a/ServerLMS/Systems/commonclienthandler.h +++ b/ServerLMS/Systems/commonclienthandler.h @@ -24,9 +24,7 @@ public: void slot_StatusTasksAMMofTraineeChanged(int trainee_id); void slot_StatusTasksFIMofTraineeChanged(int trainee_id); void slot_sendPacketToAllClients(PacketType packetType); - //слот обработки сигнала о готовности нового сообщения на отправку клиенту от мессенджера - void slot_msgToClientFromGUI(QString login, QString text); - void slot_msgToGUIfromClient(QString login, QString text); + void slotSendMessage(QString loginFrom, QString loginTo, QString text); void slot_sendTaskToClient(QString fullNameClient, QString textTask); signals: void sigSendToLogger(QString text); diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 51d5ccf..2a04b67 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -29,8 +29,7 @@ void ProcessingSystem::initialize(ServerLMSWidget *server, connect(this,&ProcessingSystem::sigUpdateListClients,server, &ServerLMSWidget::slotUpdateListClients,Qt::AutoConnection); connect(this,&ProcessingSystem::sigSetData,updateController,&UpdateController::setDataInfo,Qt::AutoConnection); - connect(this,&ProcessingSystem::signal_msgToClientReady,commonClientHandler, &CommonClientHandler::slot_msgToClientFromGUI); - connect(this,&ProcessingSystem::signal_msgFromClientReady,commonClientHandler, &CommonClientHandler::slot_msgToGUIfromClient); + connect(this,&ProcessingSystem::sigSendMessage,commonClientHandler, &CommonClientHandler::slotSendMessage,Qt::AutoConnection); connect(this,&ProcessingSystem::sigLogMessage,logger,&Logger::addTextToLogger,Qt::QueuedConnection); } @@ -59,11 +58,12 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien client->getClient()->setLogin(clientAutorization.Login); client->getClient()->setTypeClient(clientAutorization.TypeClient); + emit sigUpdateListClients(); instructorName = providerDBLMS->getNameInstructorByLogin(clientAutorization.Login); clientID = providerDBLMS->getIdInstructorByLogin(clientAutorization.Login); - + client->getClient()->setId(QString::number(clientID)); arrayAnswer = dataParser->ClientAnswer()->authorization(true, instructorName, instructorName, "instructor", clientAutorization.Login, clientID); } else if(clientAutorization.TypeClient != TypeClientAutorization::TYPE_GUI) @@ -78,7 +78,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien instructorName = providerDBLMS->getMainInstructorName(); traineeName = providerDBLMS->getNameTraineeByLogin(clientAutorization.Login); clientID = providerDBLMS->getIdTraineeByLogin(clientAutorization.Login); - + client->getClient()->setId(QString::number(clientID)); arrayAnswer = dataParser->ClientAnswer()->authorization(true, instructorName, traineeName, "trainee", clientAutorization.Login, clientID); } else @@ -474,23 +474,9 @@ void ProcessingSystem::processingClientQueryTasksXML(ClientHandler *client, Clie } } -void ProcessingSystem::processingToClientMessage(ClientHandler *client, ToClientMessage toClientMessage) +void ProcessingSystem::processingSendMessage(ClientHandler *client, ClientMessage clientMessage) { - signal_msgToClientReady(toClientMessage.Login, toClientMessage.Text); -} - -void ProcessingSystem::processingFromClientMessage(ClientHandler *client, ClientMessage clientMessage) -{ - /* - QString peerAddress = client->getSocket()->peerAddress().toString(); - QString peerPort = QString::number(client->getSocket()->peerPort()); - - QString str = "Msg From Client [" + peerAddress + ":" + peerPort + "] : " + clientMessage.Text; - - emit sigLogMessage(str); - */ - - signal_msgFromClientReady(client->getClient()->getLogin(), clientMessage.Text); + emit sigSendMessage(clientMessage.From, clientMessage.To, clientMessage.Text); } void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotify clientNotify) diff --git a/ServerLMS/Systems/processingsystem.h b/ServerLMS/Systems/processingsystem.h index dbb7dee..1b2f63b 100644 --- a/ServerLMS/Systems/processingsystem.h +++ b/ServerLMS/Systems/processingsystem.h @@ -33,9 +33,8 @@ public: void processingClientDeAutorization(ClientHandler *client, ClientDeAutorization clientDeAutorization); void processingClientQueryToDB(ClientHandler *client, ClientQueryToDB clientQueryToDB, int id = 0, void* data = nullptr); void processingClientQueryTasksXML(ClientHandler *client, ClientQueryTasksXML clientQueryTasksXML); - void processingToClientMessage(ClientHandler *client, ToClientMessage toClientMessage); - void processingFromClientMessage(ClientHandler *client, ClientMessage clientMessage); + void processingSendMessage(ClientHandler *client, ClientMessage clientMessage); void processingClientNotify(ClientHandler *client, ClientNotify clientNotify); void setCurrentDataInfo(DataInfo *dataInfo); @@ -58,8 +57,7 @@ signals: void sigStatusTasksFIMofTraineeChanged(int trainee_id); void sigLogMessage(QString log); void sigAddToMessanger(QString login,QString text); - void signal_msgToClientReady(QString login, QString text); - void signal_msgFromClientReady(QString login, QString text); + void sigSendMessage(QString loginFrom, QString loginTo, QString text); void sigSetData(DataInfo *dataInfo); private: diff --git a/ServerLMS/Systems/sendsystem.cpp b/ServerLMS/Systems/sendsystem.cpp index e01ebf2..303255d 100644 --- a/ServerLMS/Systems/sendsystem.cpp +++ b/ServerLMS/Systems/sendsystem.cpp @@ -29,7 +29,7 @@ void SendSystem::setClient(Client *client,QTcpSocket *socket) void SendSystem::sendMessageBlock(QString message) { - auto messageBlock = emit sigSendXMLmessage(message); + auto messageBlock = emit sigSendNotify(message); sendXmlAnswer(messageBlock); } diff --git a/ServerLMS/Systems/sendsystem.h b/ServerLMS/Systems/sendsystem.h index e126766..9055b94 100644 --- a/ServerLMS/Systems/sendsystem.h +++ b/ServerLMS/Systems/sendsystem.h @@ -50,7 +50,7 @@ public slots: signals: void sigLoadHash(); void sigSendToLogger(QString message); - QByteArray sigSendXMLmessage(QString message, QString login = ""); + QByteArray sigSendXMLmessage(QString loginFrom, QString loginTo, QString text); QByteArray sigSendNotify(QString message); QByteArray sigSendVersion();