ref: change message attributes

This commit is contained in:
semenov
2025-08-04 16:37:54 +03:00
parent 501b84b13a
commit 33c7a31143
12 changed files with 62 additions and 53 deletions

View File

@@ -96,13 +96,13 @@ public:
isLoggedIn = value;
}
void setAccessType(QString type)
void setAccessType(UserType type)
{
accessType = type;
userType = type;
}
QString getAccessType()
UserType getAccessType()
{
return accessType;
return userType;
}
@@ -130,7 +130,7 @@ private:
bool isUnity = false;
TypeClientAutorization TypeClient;
QString accessType = "";
UserType userType;
};
#endif // CLIENT_H

View File

@@ -51,7 +51,9 @@ enum TypeClientAutorization{
enum UserType
{
INSTRUCTOR,
TRAINEE
TRAINEE,
NONE = 100
};
class ClientAutorization
@@ -104,18 +106,20 @@ public:
class ClientMessage
{
public:
QString From;
QString To;
QString From;//формат"id-type"
QString To;//формат"id-type"
QString Text;
QString Type; //ТИП ЮЗЕРА К КОТОРОМУ ПРИХОДИТ СООБЩЕНИЕ
//id-0 инструктор
//id-1 обучаемый
ClientMessage(){}
ClientMessage(QString from,QString to,QString text,QString userType)
ClientMessage(QString from,QString to,QString text)
{
From = from;
To = to;
Text = text;
Type = userType;
}
};

View File

@@ -43,7 +43,7 @@ QByteArray ClientAnswerParser::deAuthorization(bool result, QString login)
return dataParser->xmlAnswer(listTag);
}
QByteArray ClientAnswerParser::message(QString loginFrom,QString loginTo,QString text,QString type)
QByteArray ClientAnswerParser::message(QString loginFrom,QString loginTo,QString text)
{
QList<SXmlAnswerTag> listTag;
QList<SAttribute> listAttr;
@@ -54,8 +54,6 @@ QByteArray ClientAnswerParser::message(QString loginFrom,QString loginTo,QString
listAttr.append(attribute1);
attribute1 = {"Text",text};
listAttr.append(attribute1);
attribute1 = {"UserType",type};
listAttr.append(attribute1);
SXmlAnswerTag tag = {"ClientMessage", listAttr};

View File

@@ -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 loginFrom,QString loginTo,QString text, QString userType);
QByteArray message(QString loginFrom,QString loginTo,QString text);
QByteArray task(QString text);
QByteArray notify(QString code);
QByteArray tasks(QStringList listTasks);

View File

@@ -498,8 +498,6 @@ void ProcessParser::clientMessage(QXmlStreamReader &xmlReader,ClientHandler *cli
clientMessage.From = value;
if (name == "To")
clientMessage.To = value;
if (name == "UserType")
clientMessage.Type = value;
}
processingSystem->processingSendMessage(clientMessage);

View File

@@ -13,9 +13,9 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
clientNotSendedMessage = new QMap<QString,QStack<ClientMessage>*>;
auto stack = new QStack<ClientMessage>;
auto clientMessage1 = ClientMessage("1","102","Сообщение 1","1");
auto clientMessage1 = ClientMessage("1-0","102-0","Сообщение 1");
stack->append(clientMessage1);
auto clientMessage2 = ClientMessage("1","102","Сообщение 2","1");
auto clientMessage2 = ClientMessage("1-0","102-0","Сообщение 2");
stack->append(clientMessage2);
clientNotSendedMessage->insert("102", stack);
@@ -23,12 +23,17 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
bool ChatSystem::sendTo(ClientMessage message)
{
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(message.From,message.To,message.Text,message.Type);
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);
if(handler->getClient()->getId() == message.To)
QString userType = QString::number(static_cast<int>(handler->getClient()->getAccessType()));
if(handler->getClient()->getId() == result[0] &&
userType == result[1])
{
handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER);
QString str = "Msg From Client [" + message.From + " to " + message.To + "] : " + message.Text;

View File

@@ -58,7 +58,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
{//Авторизуется инструктор
client->getClient()->setLogin(clientAutorization.Login);
client->getClient()->setAccessType("instructor");
client->getClient()->setAccessType(UserType::INSTRUCTOR);
client->getClient()->setTypeClient(clientAutorization.TypeClient);
emit sigUpdateListClients();
@@ -74,7 +74,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
{//Авторизуется обучаемый
client->getClient()->setLogin(clientAutorization.Login);
client->getClient()->setAccessType("trainee");
client->getClient()->setAccessType(UserType::TRAINEE);
emit sigUpdateListClients();
//KAV redact
@@ -122,7 +122,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
{//ДеАвторизуется обучаемый
client->getClient()->setLogin("");
client->getClient()->setAccessType("");
client->getClient()->setAccessType(UserType::NONE);
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -131,7 +131,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
{//ДеАвторизуется инструктор
client->getClient()->setLogin("");
client->getClient()->setAccessType("");
client->getClient()->setAccessType(UserType::NONE);
emit sigUpdateListClients();
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
@@ -167,14 +167,14 @@ void ProcessingSystem::processingClientDeAutorization(QString login)
void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
{
QString login = client->getClient()->getLogin();
QString accessType = client->getClient()->getAccessType();
UserType userType = client->getClient()->getAccessType();
if(accessType == "trainee")
if(userType == UserType::TRAINEE)
{
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
providerDBLMS->entryTraineeOnSimulator(id_trainee);
}
else if(accessType == "instructor")
else if(userType == UserType::INSTRUCTOR)
{
//Здесь пока ничего не происходит
}
@@ -183,14 +183,14 @@ void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
void ProcessingSystem::processingExitUnityClient(ClientHandler *client)
{
QString login = client->getClient()->getLogin();
QString accessType = client->getClient()->getAccessType();
UserType userType = client->getClient()->getAccessType();
if(accessType == "trainee")
if(userType == UserType::TRAINEE)
{
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
providerDBLMS->exitTraineeFromSimulator(id_trainee);
}
else if(accessType == "instructor")
else if(userType == UserType::INSTRUCTOR)
{
//Здесь пока ничего не происходит
}