mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
ref: change message attributes
This commit is contained in:
@@ -14,39 +14,42 @@ kanban-plugin: board
|
|||||||
|
|
||||||
- [ ] QT client: sig fault если не выбрана версия
|
- [ ] QT client: sig fault если не выбрана версия
|
||||||
- [ ] после удаления версии сбрасывать текст в описании
|
- [ ] после удаления версии сбрасывать текст в описании
|
||||||
- [ ] сбрасывается выделение кнопки текущего клиента в мессенджере
|
|
||||||
- [ ] notification message скидывается у всех при проверке
|
|
||||||
|
|
||||||
|
|
||||||
## feature client Unity
|
## feature client Unity
|
||||||
|
|
||||||
- [ ] Если staticData не найдена, грузится как оффлайн, проверять просто иконки билда
|
- [ ] Если staticData не найдена, грузится как оффлайн, проверять просто иконки билда
|
||||||
- [ ] Делить по группам номер группы
|
- [ ] Делить по группам траэйнисы и инструкторы
|
||||||
- [ ] добавить тестово логины в строку контактов
|
|
||||||
- [ ] сортировать по онлайну
|
|
||||||
- [ ] Делить по группам Администрация
|
|
||||||
- [ ] верстка окна
|
|
||||||
|
|
||||||
|
|
||||||
## feature client QT
|
## feature client QT
|
||||||
|
|
||||||
|
- [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент ПРИ загрузке из них
|
||||||
- [ ] При нажатии на кнопку обновить, менять надпись на Загрузка
|
- [ ] При нажатии на кнопку обновить, менять надпись на Загрузка
|
||||||
- [ ] Написать Аркадию ТЗ для разработки иконки клиента
|
- [ ] свести позицию виджетов (что то не по центру) notify в оффлайн режиме смещен
|
||||||
|
|
||||||
|
|
||||||
## feature server
|
## feature server
|
||||||
|
|
||||||
- [ ] добавить генерацию пустых файлов, если shared не найден
|
- [ ] добавить генерацию пустых файлов, если shared не найден
|
||||||
- [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент ПРИ загрузке из них
|
|
||||||
- [ ] убрать clientMap из serverLMS Widget в мультитред сервер
|
- [ ] убрать clientMap из serverLMS Widget в мультитред сервер
|
||||||
|
- [ ] Различать, загружен клиент из Unity или нет, для возможности отправлять сообщения только Unity
|
||||||
|
- [ ] в ГУИ научится определять тип клиента при приеме сообщения
|
||||||
|
|
||||||
|
|
||||||
## NOW
|
## NOW
|
||||||
|
|
||||||
|
- [ ] Переверстать верхушку Messenger
|
||||||
|
- [ ] Unity Layout в мессенджере пересчитывать
|
||||||
|
|
||||||
|
|
||||||
## Complete
|
## Complete
|
||||||
|
|
||||||
|
- [ ] Идентификация имени внизу для отладки
|
||||||
|
- [ ] добавить тестово логины в строку контактов
|
||||||
|
- [ ] верстка окна
|
||||||
|
- [ ] сортировать по онлайну
|
||||||
|
- [ ] Написать Аркадию для подготовки иконки
|
||||||
- [ ] FIM проверять на null задачу
|
- [ ] FIM проверять на null задачу
|
||||||
- [ ] Добавить - фильтрацию trainees или instructor
|
- [ ] Добавить - фильтрацию trainees или instructor
|
||||||
- [ ] выбор версии на один клик
|
- [ ] выбор версии на один клик
|
||||||
@@ -304,6 +307,8 @@ kanban-plugin: board
|
|||||||
|
|
||||||
## BUGFIX Complete
|
## BUGFIX Complete
|
||||||
|
|
||||||
|
- [ ] notification message скидывается у всех при проверке
|
||||||
|
- [ ] сбрасывается выделение кнопки текущего клиента в мессенджере
|
||||||
- [ ] при создании копии переключение сервера и переключения клиента
|
- [ ] при создании копии переключение сервера и переключения клиента
|
||||||
- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором
|
- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором
|
||||||
- [ ] QT клиент: device not open после прерывания загрузки
|
- [ ] QT клиент: device not open после прерывания загрузки
|
||||||
@@ -333,6 +338,7 @@ kanban-plugin: board
|
|||||||
|
|
||||||
## Cancel
|
## Cancel
|
||||||
|
|
||||||
|
- [ ] Делить по группам номер группы
|
||||||
- [ ] Добавить обновление инструктора, если он перелогинился
|
- [ ] Добавить обновление инструктора, если он перелогинился
|
||||||
- [ ] добавить в settings адрес и булку мат модели
|
- [ ] добавить в settings адрес и булку мат модели
|
||||||
- [ ] Иерархия проекта - папка application, папка updater и линк на основной экзешник
|
- [ ] Иерархия проекта - папка application, папка updater и линк на основной экзешник
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ QByteArray DataParser::createMessage(ClientMessage clientMessage)
|
|||||||
xmlWriter.writeAttribute("From",clientMessage.fromId);
|
xmlWriter.writeAttribute("From",clientMessage.fromId);
|
||||||
xmlWriter.writeAttribute("To", clientMessage.toId);
|
xmlWriter.writeAttribute("To", clientMessage.toId);
|
||||||
xmlWriter.writeAttribute("Text", clientMessage.Text);
|
xmlWriter.writeAttribute("Text", clientMessage.Text);
|
||||||
xmlWriter.writeAttribute("UserType",clientMessage.UserType);
|
|
||||||
|
|
||||||
xmlWriter.writeEndElement();
|
xmlWriter.writeEndElement();
|
||||||
xmlWriter.writeEndElement();
|
xmlWriter.writeEndElement();
|
||||||
|
|||||||
@@ -526,11 +526,6 @@ void RecognizeSystem::xmlParser(QByteArray array)
|
|||||||
if (name == "Text"){
|
if (name == "Text"){
|
||||||
clientMessage->Text = value;
|
clientMessage->Text = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name == "UserType")
|
|
||||||
{
|
|
||||||
clientMessage->UserType = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emit signal_ReceiveMessage(*clientMessage);
|
emit signal_ReceiveMessage(*clientMessage);
|
||||||
|
|||||||
@@ -74,17 +74,18 @@ public:
|
|||||||
class ClientMessage
|
class ClientMessage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QString fromId;
|
QString fromId;//формат id-typeId
|
||||||
QString toId;
|
QString toId;//формат id-typeId
|
||||||
QString Text;
|
QString Text;
|
||||||
QString UserType;
|
|
||||||
|
//TypeId
|
||||||
|
//0 - инструктор, 1 - обучаемый
|
||||||
ClientMessage(){}
|
ClientMessage(){}
|
||||||
ClientMessage(QString fromId, QString toId, QString text, QString UserType)
|
ClientMessage(QString fromId, QString toId, QString text)
|
||||||
{
|
{
|
||||||
this->fromId = fromId;
|
this->fromId = fromId;
|
||||||
this->toId = toId;
|
this->toId = toId;
|
||||||
this->Text = text;
|
this->Text = text;
|
||||||
this->UserType = UserType;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -153,8 +153,10 @@ void MessangerWidget::clear()
|
|||||||
void MessangerWidget::on_btnSend_clicked()
|
void MessangerWidget::on_btnSend_clicked()
|
||||||
{
|
{
|
||||||
QString text = ui->editMsg->toPlainText();
|
QString text = ui->editMsg->toPlainText();
|
||||||
ClientMessage message = ClientMessage(currClientId,selectedUserId,text,"0");
|
QString from = currClientId + "-" + QString::number(0);// временный костыль, так как чаты только с обучаемыми
|
||||||
|
QString to = selectedUserId + "-" + QString::number(1);// временный костыль, так как чаты только с обучаемыми
|
||||||
|
|
||||||
|
ClientMessage message = ClientMessage(from,to,text);
|
||||||
emit signal_sendMessage(message);
|
emit signal_sendMessage(message);
|
||||||
|
|
||||||
ui->editMsg->clear();
|
ui->editMsg->clear();
|
||||||
@@ -229,9 +231,10 @@ void MessangerWidget::slot_InitMessanger(QList<Trainee> listTrainees)
|
|||||||
|
|
||||||
void MessangerWidget::slot_showMessage(ClientMessage clientMessage)
|
void MessangerWidget::slot_showMessage(ClientMessage clientMessage)
|
||||||
{
|
{
|
||||||
|
auto result = clientMessage.fromId.split("-");
|
||||||
for(Trainee trainee: listTrainees)
|
for(Trainee trainee: listTrainees)
|
||||||
{
|
{
|
||||||
if(QString::number(trainee.getID()) == clientMessage.fromId)
|
if(QString::number(trainee.getID()) == result[0])
|
||||||
{
|
{
|
||||||
addMsgFromClient(trainee, clientMessage.Text);
|
addMsgFromClient(trainee, clientMessage.Text);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -96,13 +96,13 @@ public:
|
|||||||
isLoggedIn = value;
|
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;
|
bool isUnity = false;
|
||||||
|
|
||||||
TypeClientAutorization TypeClient;
|
TypeClientAutorization TypeClient;
|
||||||
QString accessType = "";
|
UserType userType;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CLIENT_H
|
#endif // CLIENT_H
|
||||||
|
|||||||
@@ -51,7 +51,9 @@ enum TypeClientAutorization{
|
|||||||
enum UserType
|
enum UserType
|
||||||
{
|
{
|
||||||
INSTRUCTOR,
|
INSTRUCTOR,
|
||||||
TRAINEE
|
TRAINEE,
|
||||||
|
|
||||||
|
NONE = 100
|
||||||
};
|
};
|
||||||
|
|
||||||
class ClientAutorization
|
class ClientAutorization
|
||||||
@@ -104,18 +106,20 @@ public:
|
|||||||
class ClientMessage
|
class ClientMessage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QString From;
|
QString From;//формат"id-type"
|
||||||
QString To;
|
QString To;//формат"id-type"
|
||||||
QString Text;
|
QString Text;
|
||||||
QString Type; //ТИП ЮЗЕРА К КОТОРОМУ ПРИХОДИТ СООБЩЕНИЕ
|
|
||||||
|
//id-0 инструктор
|
||||||
|
//id-1 обучаемый
|
||||||
|
|
||||||
ClientMessage(){}
|
ClientMessage(){}
|
||||||
ClientMessage(QString from,QString to,QString text,QString userType)
|
ClientMessage(QString from,QString to,QString text)
|
||||||
{
|
{
|
||||||
From = from;
|
From = from;
|
||||||
To = to;
|
To = to;
|
||||||
Text = text;
|
Text = text;
|
||||||
Type = userType;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ QByteArray ClientAnswerParser::deAuthorization(bool result, QString login)
|
|||||||
return dataParser->xmlAnswer(listTag);
|
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<SXmlAnswerTag> listTag;
|
||||||
QList<SAttribute> listAttr;
|
QList<SAttribute> listAttr;
|
||||||
@@ -54,8 +54,6 @@ QByteArray ClientAnswerParser::message(QString loginFrom,QString loginTo,QString
|
|||||||
listAttr.append(attribute1);
|
listAttr.append(attribute1);
|
||||||
attribute1 = {"Text",text};
|
attribute1 = {"Text",text};
|
||||||
listAttr.append(attribute1);
|
listAttr.append(attribute1);
|
||||||
attribute1 = {"UserType",type};
|
|
||||||
listAttr.append(attribute1);
|
|
||||||
|
|
||||||
SXmlAnswerTag tag = {"ClientMessage", listAttr};
|
SXmlAnswerTag tag = {"ClientMessage", listAttr};
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public:
|
|||||||
|
|
||||||
QByteArray authorization(bool result, QString instructorName, QString clientName, QString accessType, QString login, int id);
|
QByteArray authorization(bool result, QString instructorName, QString clientName, QString accessType, QString login, int id);
|
||||||
QByteArray deAuthorization(bool result, QString login);
|
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 task(QString text);
|
||||||
QByteArray notify(QString code);
|
QByteArray notify(QString code);
|
||||||
QByteArray tasks(QStringList listTasks);
|
QByteArray tasks(QStringList listTasks);
|
||||||
|
|||||||
@@ -498,8 +498,6 @@ void ProcessParser::clientMessage(QXmlStreamReader &xmlReader,ClientHandler *cli
|
|||||||
clientMessage.From = value;
|
clientMessage.From = value;
|
||||||
if (name == "To")
|
if (name == "To")
|
||||||
clientMessage.To = value;
|
clientMessage.To = value;
|
||||||
if (name == "UserType")
|
|
||||||
clientMessage.Type = value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
processingSystem->processingSendMessage(clientMessage);
|
processingSystem->processingSendMessage(clientMessage);
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
|
|||||||
clientNotSendedMessage = new QMap<QString,QStack<ClientMessage>*>;
|
clientNotSendedMessage = new QMap<QString,QStack<ClientMessage>*>;
|
||||||
|
|
||||||
auto stack = new 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);
|
stack->append(clientMessage1);
|
||||||
auto clientMessage2 = ClientMessage("1","102","Сообщение 2","1");
|
auto clientMessage2 = ClientMessage("1-0","102-0","Сообщение 2");
|
||||||
stack->append(clientMessage2);
|
stack->append(clientMessage2);
|
||||||
|
|
||||||
clientNotSendedMessage->insert("102", stack);
|
clientNotSendedMessage->insert("102", stack);
|
||||||
@@ -23,12 +23,17 @@ void ChatSystem::initialize(CommonClientHandler *commonClientHandler, DataParser
|
|||||||
|
|
||||||
bool ChatSystem::sendTo(ClientMessage message)
|
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())
|
foreach(int idSocket, clientsMap->keys())
|
||||||
{
|
{
|
||||||
ClientHandler *handler = clientsMap->value(idSocket);
|
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);
|
handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER);
|
||||||
QString str = "Msg From Client [" + message.From + " to " + message.To + "] : " + message.Text;
|
QString str = "Msg From Client [" + message.From + " to " + message.To + "] : " + message.Text;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
|||||||
{//Авторизуется инструктор
|
{//Авторизуется инструктор
|
||||||
|
|
||||||
client->getClient()->setLogin(clientAutorization.Login);
|
client->getClient()->setLogin(clientAutorization.Login);
|
||||||
client->getClient()->setAccessType("instructor");
|
client->getClient()->setAccessType(UserType::INSTRUCTOR);
|
||||||
client->getClient()->setTypeClient(clientAutorization.TypeClient);
|
client->getClient()->setTypeClient(clientAutorization.TypeClient);
|
||||||
|
|
||||||
emit sigUpdateListClients();
|
emit sigUpdateListClients();
|
||||||
@@ -74,7 +74,7 @@ void ProcessingSystem::processingClientAutorization(ClientHandler *client, Clien
|
|||||||
{//Авторизуется обучаемый
|
{//Авторизуется обучаемый
|
||||||
|
|
||||||
client->getClient()->setLogin(clientAutorization.Login);
|
client->getClient()->setLogin(clientAutorization.Login);
|
||||||
client->getClient()->setAccessType("trainee");
|
client->getClient()->setAccessType(UserType::TRAINEE);
|
||||||
emit sigUpdateListClients();
|
emit sigUpdateListClients();
|
||||||
|
|
||||||
//KAV redact
|
//KAV redact
|
||||||
@@ -122,7 +122,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
|||||||
{//ДеАвторизуется обучаемый
|
{//ДеАвторизуется обучаемый
|
||||||
|
|
||||||
client->getClient()->setLogin("");
|
client->getClient()->setLogin("");
|
||||||
client->getClient()->setAccessType("");
|
client->getClient()->setAccessType(UserType::NONE);
|
||||||
emit sigUpdateListClients();
|
emit sigUpdateListClients();
|
||||||
|
|
||||||
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
||||||
@@ -131,7 +131,7 @@ void ProcessingSystem::processingClientDeAutorization(ClientHandler *client, Cli
|
|||||||
{//ДеАвторизуется инструктор
|
{//ДеАвторизуется инструктор
|
||||||
|
|
||||||
client->getClient()->setLogin("");
|
client->getClient()->setLogin("");
|
||||||
client->getClient()->setAccessType("");
|
client->getClient()->setAccessType(UserType::NONE);
|
||||||
emit sigUpdateListClients();
|
emit sigUpdateListClients();
|
||||||
|
|
||||||
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
arrayAnswer = dataParser->ClientAnswer()->deAuthorization(true, clientDeAutorization.Login);
|
||||||
@@ -167,14 +167,14 @@ void ProcessingSystem::processingClientDeAutorization(QString login)
|
|||||||
void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
|
void ProcessingSystem::processingEntryUnityClient(ClientHandler *client)
|
||||||
{
|
{
|
||||||
QString login = client->getClient()->getLogin();
|
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);
|
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
|
||||||
providerDBLMS->entryTraineeOnSimulator(id_trainee);
|
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)
|
void ProcessingSystem::processingExitUnityClient(ClientHandler *client)
|
||||||
{
|
{
|
||||||
QString login = client->getClient()->getLogin();
|
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);
|
int id_trainee = providerDBLMS->getIdTraineeByLogin(login);
|
||||||
providerDBLMS->exitTraineeFromSimulator(id_trainee);
|
providerDBLMS->exitTraineeFromSimulator(id_trainee);
|
||||||
}
|
}
|
||||||
else if(accessType == "instructor")
|
else if(userType == UserType::INSTRUCTOR)
|
||||||
{
|
{
|
||||||
//Здесь пока ничего не происходит
|
//Здесь пока ничего не происходит
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user