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 если не выбрана версия
|
||||
- [ ] после удаления версии сбрасывать текст в описании
|
||||
- [ ] сбрасывается выделение кнопки текущего клиента в мессенджере
|
||||
- [ ] notification message скидывается у всех при проверке
|
||||
|
||||
|
||||
## feature client Unity
|
||||
|
||||
- [ ] Если staticData не найдена, грузится как оффлайн, проверять просто иконки билда
|
||||
- [ ] Делить по группам номер группы
|
||||
- [ ] добавить тестово логины в строку контактов
|
||||
- [ ] сортировать по онлайну
|
||||
- [ ] Делить по группам Администрация
|
||||
- [ ] верстка окна
|
||||
- [ ] Делить по группам траэйнисы и инструкторы
|
||||
|
||||
|
||||
## feature client QT
|
||||
|
||||
- [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент ПРИ загрузке из них
|
||||
- [ ] При нажатии на кнопку обновить, менять надпись на Загрузка
|
||||
- [ ] Написать Аркадию ТЗ для разработки иконки клиента
|
||||
- [ ] свести позицию виджетов (что то не по центру) notify в оффлайн режиме смещен
|
||||
|
||||
|
||||
## feature server
|
||||
|
||||
- [ ] добавить генерацию пустых файлов, если shared не найден
|
||||
- [ ] ПЕРЕВЕСТИ все действия под операции и формировать процент ПРИ загрузке из них
|
||||
- [ ] убрать clientMap из serverLMS Widget в мультитред сервер
|
||||
- [ ] Различать, загружен клиент из Unity или нет, для возможности отправлять сообщения только Unity
|
||||
- [ ] в ГУИ научится определять тип клиента при приеме сообщения
|
||||
|
||||
|
||||
## NOW
|
||||
|
||||
- [ ] Переверстать верхушку Messenger
|
||||
- [ ] Unity Layout в мессенджере пересчитывать
|
||||
|
||||
|
||||
## Complete
|
||||
|
||||
- [ ] Идентификация имени внизу для отладки
|
||||
- [ ] добавить тестово логины в строку контактов
|
||||
- [ ] верстка окна
|
||||
- [ ] сортировать по онлайну
|
||||
- [ ] Написать Аркадию для подготовки иконки
|
||||
- [ ] FIM проверять на null задачу
|
||||
- [ ] Добавить - фильтрацию trainees или instructor
|
||||
- [ ] выбор версии на один клик
|
||||
@@ -304,6 +307,8 @@ kanban-plugin: board
|
||||
|
||||
## BUGFIX Complete
|
||||
|
||||
- [ ] notification message скидывается у всех при проверке
|
||||
- [ ] сбрасывается выделение кнопки текущего клиента в мессенджере
|
||||
- [ ] при создании копии переключение сервера и переключения клиента
|
||||
- [ ] QT сервер Найти причину двойного вызова проверки при логине инструктором
|
||||
- [ ] QT клиент: device not open после прерывания загрузки
|
||||
@@ -333,6 +338,7 @@ kanban-plugin: board
|
||||
|
||||
## Cancel
|
||||
|
||||
- [ ] Делить по группам номер группы
|
||||
- [ ] Добавить обновление инструктора, если он перелогинился
|
||||
- [ ] добавить в settings адрес и булку мат модели
|
||||
- [ ] Иерархия проекта - папка application, папка updater и линк на основной экзешник
|
||||
|
||||
@@ -88,7 +88,6 @@ QByteArray DataParser::createMessage(ClientMessage clientMessage)
|
||||
xmlWriter.writeAttribute("From",clientMessage.fromId);
|
||||
xmlWriter.writeAttribute("To", clientMessage.toId);
|
||||
xmlWriter.writeAttribute("Text", clientMessage.Text);
|
||||
xmlWriter.writeAttribute("UserType",clientMessage.UserType);
|
||||
|
||||
xmlWriter.writeEndElement();
|
||||
xmlWriter.writeEndElement();
|
||||
|
||||
@@ -526,11 +526,6 @@ void RecognizeSystem::xmlParser(QByteArray array)
|
||||
if (name == "Text"){
|
||||
clientMessage->Text = value;
|
||||
}
|
||||
|
||||
if (name == "UserType")
|
||||
{
|
||||
clientMessage->UserType = value;
|
||||
}
|
||||
}
|
||||
|
||||
emit signal_ReceiveMessage(*clientMessage);
|
||||
|
||||
@@ -74,17 +74,18 @@ public:
|
||||
class ClientMessage
|
||||
{
|
||||
public:
|
||||
QString fromId;
|
||||
QString toId;
|
||||
QString fromId;//формат id-typeId
|
||||
QString toId;//формат id-typeId
|
||||
QString Text;
|
||||
QString UserType;
|
||||
|
||||
//TypeId
|
||||
//0 - инструктор, 1 - обучаемый
|
||||
ClientMessage(){}
|
||||
ClientMessage(QString fromId, QString toId, QString text, QString UserType)
|
||||
ClientMessage(QString fromId, QString toId, QString text)
|
||||
{
|
||||
this->fromId = fromId;
|
||||
this->toId = toId;
|
||||
this->Text = text;
|
||||
this->UserType = UserType;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -153,8 +153,10 @@ void MessangerWidget::clear()
|
||||
void MessangerWidget::on_btnSend_clicked()
|
||||
{
|
||||
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);
|
||||
|
||||
ui->editMsg->clear();
|
||||
@@ -229,9 +231,10 @@ void MessangerWidget::slot_InitMessanger(QList<Trainee> listTrainees)
|
||||
|
||||
void MessangerWidget::slot_showMessage(ClientMessage clientMessage)
|
||||
{
|
||||
auto result = clientMessage.fromId.split("-");
|
||||
for(Trainee trainee: listTrainees)
|
||||
{
|
||||
if(QString::number(trainee.getID()) == clientMessage.fromId)
|
||||
if(QString::number(trainee.getID()) == result[0])
|
||||
{
|
||||
addMsgFromClient(trainee, clientMessage.Text);
|
||||
break;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
//Здесь пока ничего не происходит
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user