Merge branch 'refactoring-messenger' into DEV

This commit is contained in:
semenov
2025-08-20 14:35:22 +03:00
10 changed files with 34 additions and 24 deletions

View File

@@ -10,6 +10,7 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
this->commonClientHandler = commonClientHandler;
this->dataParser = dataParser;
this->clientsMap = clientsMap;
clientNotSendedMessage = new QMap<QString,QQueue<ClientMessage>*>;
}
@@ -17,15 +18,13 @@ bool ChatSystem::sendTo(ClientMessage message)
{
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(message.From,message.To,message.Text);
auto result = message.To.split("-");
foreach(int idSocket, clientsMap->keys())
{
ClientHandler *handler = clientsMap->value(idSocket);
QString userType = QString::number(static_cast<int>(handler->getClient()->getAccessType()));
if(handler->getClient()->getId() == result[0] &&
userType == result[1] &&
handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_QT_CLIENT)
if(handler->getClient()->getId() == message.To &&
handler->getClient()->getTypeClient() != TypeClientAutorization::TYPE_QT_CLIENT &&
handler->getClient()->getIsLoggedIn())
{
handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER);
QString str = "Msg From Client [" + message.From + " to " + message.To + "] : " + message.Text;
@@ -67,6 +66,7 @@ void ChatSystem::sendOldMessages(QString id)
if (clientNotSendedMessage->contains(id))
{
auto queue = clientNotSendedMessage->find(id).value();
Logger::instance().log("Send old Messages " + QString::number(queue->length()));
while (!queue->isEmpty())
{

View File

@@ -120,6 +120,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
client->getClient()->setLogin("");
client->getClient()->setAccessType(UserType::NONE);
client->getClient()->setIsLoggedIn(false);
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -129,6 +130,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
client->getClient()->setLogin("");
client->getClient()->setAccessType(UserType::NONE);
client->getClient()->setIsLoggedIn(false);
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -568,7 +570,7 @@ void ProcessingSystem::processingClientNotify(ClientHandler *client, ClientNotif
}
else if (clientNotify.Code == commandeGetOfflineMessages)
{
chatSystem->sendOldMessages(client->getClient()->getId() + "-" + QString::number(1));
chatSystem->sendOldMessages(client->getClient()->getId());
}
}