feat: add chatting by ID

This commit is contained in:
semenov
2025-07-30 11:30:55 +03:00
parent 5076da14e0
commit 88239e8491
23 changed files with 113 additions and 160 deletions

View File

@@ -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();

View File

@@ -23,7 +23,7 @@ public:
void createFileDataList(QList<FileData> 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);

View File

@@ -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"){

View File

@@ -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<Instructor> listInstructors);
void sigAnswerQueryToDB_ListGroups(QList<Group> listGroups);

View File

@@ -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;
};

View File

@@ -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<StreamingVersionData *> *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);

View File

@@ -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<StreamingVersionData*> *serverList);
void slot_HashReady();
@@ -108,7 +108,7 @@ signals:
void signal_InitMessanger(QList<Trainee> listTrainees);
void signal_msgFromClientReady(QString login, QString text);
void signal_receiveMessage(QString fromId, QString toId, QString text);
void sigSendAnswerToServer(QByteArray array);
private: