mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
ref: segregate dbAnswer
This commit is contained in:
6
DOCS/.obsidian/workspace.json
vendored
6
DOCS/.obsidian/workspace.json
vendored
@@ -67,10 +67,10 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "excalidraw",
|
"type": "excalidraw",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "MainScheme.md"
|
"file": "Алексей/DataParser scheme.md"
|
||||||
},
|
},
|
||||||
"icon": "excalidraw-icon",
|
"icon": "excalidraw-icon",
|
||||||
"title": "MainScheme"
|
"title": "DataParser scheme"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -219,9 +219,9 @@
|
|||||||
},
|
},
|
||||||
"active": "9608f84166966ca9",
|
"active": "9608f84166966ca9",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"MainScheme.md",
|
||||||
"Алексей/DataParser scheme.md",
|
"Алексей/DataParser scheme.md",
|
||||||
"Алексей/ProcessingSystem scheme.md",
|
"Алексей/ProcessingSystem scheme.md",
|
||||||
"MainScheme.md",
|
|
||||||
"AssetManagerScheme.md",
|
"AssetManagerScheme.md",
|
||||||
"Алексей/AssetManagerScheme.md",
|
"Алексей/AssetManagerScheme.md",
|
||||||
"Как умеем принимать, как умеем отправлять!.md",
|
"Как умеем принимать, как умеем отправлять!.md",
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ add_library(ServerLMS SHARED
|
|||||||
Systems/Parsers/dataparser.h
|
Systems/Parsers/dataparser.h
|
||||||
Systems/Parsers/clientanswerparser.cpp
|
Systems/Parsers/clientanswerparser.cpp
|
||||||
Systems/Parsers/clientanswerparser.h
|
Systems/Parsers/clientanswerparser.h
|
||||||
|
Systems/Parsers/dbanswerparser.cpp
|
||||||
|
Systems/Parsers/dbanswerparser.h
|
||||||
Systems/processingsystem.cpp
|
Systems/processingsystem.cpp
|
||||||
Systems/processingsystem.h
|
Systems/processingsystem.h
|
||||||
Systems/sendsystem.cpp
|
Systems/sendsystem.cpp
|
||||||
|
|||||||
@@ -8,8 +8,12 @@ QObject(parent)
|
|||||||
{
|
{
|
||||||
this->processingSystem = processingSystem;
|
this->processingSystem = processingSystem;
|
||||||
this->assetsManager = assetManager;
|
this->assetsManager = assetManager;
|
||||||
|
|
||||||
clientAnswer = new ClientAnswerParser;
|
clientAnswer = new ClientAnswerParser;
|
||||||
clientAnswer->initialize(this);
|
clientAnswer->initialize(this);
|
||||||
|
dbAnswer = new DBAnswerParser;
|
||||||
|
dbAnswer->initialize(this);
|
||||||
|
|
||||||
mutex = new QMutex;
|
mutex = new QMutex;
|
||||||
|
|
||||||
if (!QDir(staticDataFolderName).exists()){
|
if (!QDir(staticDataFolderName).exists()){
|
||||||
@@ -330,101 +334,7 @@ bool DataParser::saveDOMtoXML(QString nameFile, QDomDocument *commonDOM)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListInstructors(bool result, QList<Instructor> *listInstructors)
|
|
||||||
{
|
|
||||||
QDomDocument commonDOM;
|
|
||||||
if(! loadBlankXML(":/resources/blankXML/ListInstructors.xml", &commonDOM))
|
|
||||||
return QByteArray();
|
|
||||||
|
|
||||||
QDomNode listNode = commonDOM.namedItem("ListInstructors");
|
|
||||||
|
|
||||||
for(Instructor instructor : *listInstructors)
|
|
||||||
{
|
|
||||||
//Инструктор
|
|
||||||
QDomNode instructorNode = commonDOM.createElement("Instructor");
|
|
||||||
listNode.appendChild(instructorNode);
|
|
||||||
instructorNode.toElement().setAttribute("instructor_id", QString::number(instructor.getID()));
|
|
||||||
instructorNode.toElement().setAttribute("name", instructor.getName());
|
|
||||||
instructorNode.toElement().setAttribute("login", instructor.getLogin());
|
|
||||||
instructorNode.toElement().setAttribute("password", instructor.getPassword());
|
|
||||||
instructorNode.toElement().setAttribute("is_admin", instructor.getIsAdmin());
|
|
||||||
instructorNode.toElement().setAttribute("archived", instructor.getArchived());
|
|
||||||
instructorNode.toElement().setAttribute("logged_in", instructor.getLoggedIn());
|
|
||||||
}
|
|
||||||
|
|
||||||
saveDOMtoXML("ListInstructors.xml", &commonDOM);
|
|
||||||
|
|
||||||
return commonDOM.toByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListGroups(bool result, QList<Group> *listGroups)
|
|
||||||
{
|
|
||||||
QDomDocument commonDOM;
|
|
||||||
if(! loadBlankXML(":/resources/blankXML/ListGroups.xml", &commonDOM))
|
|
||||||
return QByteArray();
|
|
||||||
|
|
||||||
QDomNode listNode = commonDOM.namedItem("ListGroups");
|
|
||||||
|
|
||||||
for(Group group : *listGroups)
|
|
||||||
{
|
|
||||||
//Группа
|
|
||||||
QDomNode groupNode = commonDOM.createElement("Group");
|
|
||||||
listNode.appendChild(groupNode);
|
|
||||||
groupNode.toElement().setAttribute("group_id", QString::number(group.getID()));
|
|
||||||
groupNode.toElement().setAttribute("name", group.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
saveDOMtoXML("ListGroups.xml", &commonDOM);
|
|
||||||
|
|
||||||
return commonDOM.toByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListTrainees(bool result, QList<Trainee> *listTrainees)
|
|
||||||
{
|
|
||||||
QDomDocument commonDOM;
|
|
||||||
if(! loadBlankXML(":/resources/blankXML/ListTrainees.xml", &commonDOM))
|
|
||||||
return QByteArray();
|
|
||||||
|
|
||||||
QDomNode listNode = commonDOM.namedItem("ListTrainees");
|
|
||||||
|
|
||||||
for(Trainee trainee : *listTrainees)
|
|
||||||
{
|
|
||||||
//Обучаемый
|
|
||||||
QDomNode traineeNode = commonDOM.createElement("Trainee");
|
|
||||||
listNode.appendChild(traineeNode);
|
|
||||||
traineeNode.toElement().setAttribute("trainee_id", trainee.getID());
|
|
||||||
traineeNode.toElement().setAttribute("name", trainee.getName());
|
|
||||||
traineeNode.toElement().setAttribute("login", trainee.getLogin());
|
|
||||||
traineeNode.toElement().setAttribute("password", trainee.getPassword());
|
|
||||||
traineeNode.toElement().setAttribute("archived", trainee.getArchived());
|
|
||||||
traineeNode.toElement().setAttribute("logged_in", trainee.getLoggedIn());
|
|
||||||
traineeNode.toElement().setAttribute("group_trainee", trainee.getGroup().getID());
|
|
||||||
traineeNode.toElement().setAttribute("computer_trainee", trainee.getComputer().getID());
|
|
||||||
//trainee.setTasks()
|
|
||||||
}
|
|
||||||
|
|
||||||
saveDOMtoXML("ListTrainees.xml", &commonDOM);
|
|
||||||
|
|
||||||
return commonDOM.toByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListComputers(bool result, QList<Computer> *listComputers)
|
|
||||||
{
|
|
||||||
//TODO
|
|
||||||
return QByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListClassrooms(bool result, QList<Classroom> *listClassrooms)
|
|
||||||
{
|
|
||||||
//TODO
|
|
||||||
return QByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::xmlAnswer_ClientQueryToDB_ListTasks(bool result, QList<Task> *listTasks)
|
|
||||||
{
|
|
||||||
//TODO
|
|
||||||
return QByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray DataParser::readTempFile()
|
QByteArray DataParser::readTempFile()
|
||||||
{
|
{
|
||||||
@@ -453,3 +363,8 @@ ClientAnswerParser *DataParser::ClientAnswer() const
|
|||||||
{
|
{
|
||||||
return clientAnswer;
|
return clientAnswer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DBAnswerParser *DataParser::DbAnswer() const
|
||||||
|
{
|
||||||
|
return dbAnswer;
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "Systems/assetsmanager.h"
|
#include "Systems/assetsmanager.h"
|
||||||
#include "Systems/logger.h"
|
#include "Systems/logger.h"
|
||||||
#include "Systems/Parsers/clientanswerparser.h"
|
#include "Systems/Parsers/clientanswerparser.h"
|
||||||
|
#include "dbanswerparser.h"
|
||||||
#include "serverlmswidget.h"
|
#include "serverlmswidget.h"
|
||||||
|
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
@@ -20,6 +21,7 @@ class ProcessingSystem;
|
|||||||
class ClientHandler;
|
class ClientHandler;
|
||||||
class AssetsManager;
|
class AssetsManager;
|
||||||
class ClientAnswerParser;
|
class ClientAnswerParser;
|
||||||
|
class DBAnswerParser;
|
||||||
|
|
||||||
class DataParser : public QObject
|
class DataParser : public QObject
|
||||||
{
|
{
|
||||||
@@ -34,17 +36,10 @@ public:
|
|||||||
|
|
||||||
bool loadBlankXML(QString nameFile, QDomDocument* commonDOM);
|
bool loadBlankXML(QString nameFile, QDomDocument* commonDOM);
|
||||||
bool saveDOMtoXML(QString nameFile, QDomDocument* commonDOM);
|
bool saveDOMtoXML(QString nameFile, QDomDocument* commonDOM);
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListInstructors(bool result, QList<Instructor>* listInstructors);
|
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListGroups(bool result, QList<Group> *listGroups);
|
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListTrainees(bool result, QList<Trainee> *listTrainees);
|
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListComputers(bool result, QList<Computer> *listComputers);
|
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListClassrooms(bool result, QList<Classroom> *listClassrooms);
|
|
||||||
QByteArray xmlAnswer_ClientQueryToDB_ListTasks(bool result, QList<Task> *listTasks);
|
|
||||||
|
|
||||||
QByteArray xmlAnswer_currentVersion();
|
|
||||||
~DataParser();
|
~DataParser();
|
||||||
|
|
||||||
ClientAnswerParser *ClientAnswer() const;
|
ClientAnswerParser *ClientAnswer() const;
|
||||||
|
DBAnswerParser *DbAnswer() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigLogMessage(QString log);
|
void sigLogMessage(QString log);
|
||||||
@@ -56,6 +51,7 @@ private:
|
|||||||
ProcessingSystem *processingSystem;
|
ProcessingSystem *processingSystem;
|
||||||
AssetsManager *assetsManager;
|
AssetsManager *assetsManager;
|
||||||
ClientAnswerParser *clientAnswer;
|
ClientAnswerParser *clientAnswer;
|
||||||
|
DBAnswerParser *dbAnswer;
|
||||||
QByteArray readTempFile();
|
QByteArray readTempFile();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
109
ServerLMS/ServerLMS/Systems/Parsers/dbanswerparser.cpp
Normal file
109
ServerLMS/ServerLMS/Systems/Parsers/dbanswerparser.cpp
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
#include "dbanswerparser.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DBAnswerParser::DBAnswerParser(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBAnswerParser::initialize(DataParser *dataParser)
|
||||||
|
{
|
||||||
|
this->dataParser = dataParser;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listInstructors(bool result, QList<Instructor> *listInstructors)
|
||||||
|
{
|
||||||
|
QDomDocument commonDOM;
|
||||||
|
if(! dataParser->loadBlankXML(":/resources/blankXML/ListInstructors.xml", &commonDOM))
|
||||||
|
return QByteArray();
|
||||||
|
|
||||||
|
QDomNode listNode = commonDOM.namedItem("ListInstructors");
|
||||||
|
|
||||||
|
for(Instructor instructor : *listInstructors)
|
||||||
|
{
|
||||||
|
//Инструктор
|
||||||
|
QDomNode instructorNode = commonDOM.createElement("Instructor");
|
||||||
|
listNode.appendChild(instructorNode);
|
||||||
|
instructorNode.toElement().setAttribute("instructor_id", QString::number(instructor.getID()));
|
||||||
|
instructorNode.toElement().setAttribute("name", instructor.getName());
|
||||||
|
instructorNode.toElement().setAttribute("login", instructor.getLogin());
|
||||||
|
instructorNode.toElement().setAttribute("password", instructor.getPassword());
|
||||||
|
instructorNode.toElement().setAttribute("is_admin", instructor.getIsAdmin());
|
||||||
|
instructorNode.toElement().setAttribute("archived", instructor.getArchived());
|
||||||
|
instructorNode.toElement().setAttribute("logged_in", instructor.getLoggedIn());
|
||||||
|
}
|
||||||
|
|
||||||
|
dataParser->saveDOMtoXML("ListInstructors.xml", &commonDOM);
|
||||||
|
|
||||||
|
return commonDOM.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listGroups(bool result, QList<Group> *listGroups)
|
||||||
|
{
|
||||||
|
QDomDocument commonDOM;
|
||||||
|
if(! dataParser->loadBlankXML(":/resources/blankXML/ListGroups.xml", &commonDOM))
|
||||||
|
return QByteArray();
|
||||||
|
|
||||||
|
QDomNode listNode = commonDOM.namedItem("ListGroups");
|
||||||
|
|
||||||
|
for(Group group : *listGroups)
|
||||||
|
{
|
||||||
|
//Группа
|
||||||
|
QDomNode groupNode = commonDOM.createElement("Group");
|
||||||
|
listNode.appendChild(groupNode);
|
||||||
|
groupNode.toElement().setAttribute("group_id", QString::number(group.getID()));
|
||||||
|
groupNode.toElement().setAttribute("name", group.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
dataParser->saveDOMtoXML("ListGroups.xml", &commonDOM);
|
||||||
|
|
||||||
|
return commonDOM.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listTrainees(bool result, QList<Trainee> *listTrainees)
|
||||||
|
{
|
||||||
|
QDomDocument commonDOM;
|
||||||
|
if(! dataParser->loadBlankXML(":/resources/blankXML/ListTrainees.xml", &commonDOM))
|
||||||
|
return QByteArray();
|
||||||
|
|
||||||
|
QDomNode listNode = commonDOM.namedItem("ListTrainees");
|
||||||
|
|
||||||
|
for(Trainee trainee : *listTrainees)
|
||||||
|
{
|
||||||
|
//Обучаемый
|
||||||
|
QDomNode traineeNode = commonDOM.createElement("Trainee");
|
||||||
|
listNode.appendChild(traineeNode);
|
||||||
|
traineeNode.toElement().setAttribute("trainee_id", trainee.getID());
|
||||||
|
traineeNode.toElement().setAttribute("name", trainee.getName());
|
||||||
|
traineeNode.toElement().setAttribute("login", trainee.getLogin());
|
||||||
|
traineeNode.toElement().setAttribute("password", trainee.getPassword());
|
||||||
|
traineeNode.toElement().setAttribute("archived", trainee.getArchived());
|
||||||
|
traineeNode.toElement().setAttribute("logged_in", trainee.getLoggedIn());
|
||||||
|
traineeNode.toElement().setAttribute("group_trainee", trainee.getGroup().getID());
|
||||||
|
traineeNode.toElement().setAttribute("computer_trainee", trainee.getComputer().getID());
|
||||||
|
//trainee.setTasks()
|
||||||
|
}
|
||||||
|
|
||||||
|
dataParser->saveDOMtoXML("ListTrainees.xml", &commonDOM);
|
||||||
|
|
||||||
|
return commonDOM.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listComputers(bool result, QList<Computer> *listComputers)
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
return QByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listClassrooms(bool result, QList<Classroom> *listClassrooms)
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
return QByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray DBAnswerParser::listTasks(bool result, QList<Task> *listTasks)
|
||||||
|
{
|
||||||
|
//TODO
|
||||||
|
return QByteArray();
|
||||||
|
}
|
||||||
29
ServerLMS/ServerLMS/Systems/Parsers/dbanswerparser.h
Normal file
29
ServerLMS/ServerLMS/Systems/Parsers/dbanswerparser.h
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#ifndef DBANSWERPARSER_H
|
||||||
|
#define DBANSWERPARSER_H
|
||||||
|
|
||||||
|
#include "dataparser.h"
|
||||||
|
#include "serverlmswidget.h"
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QDomDocument>
|
||||||
|
|
||||||
|
class DBAnswerParser : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit DBAnswerParser(QObject *parent = nullptr);
|
||||||
|
void initialize(DataParser *dataParser);
|
||||||
|
QByteArray listInstructors(bool result, QList<Instructor> *listInstructors);
|
||||||
|
QByteArray listGroups(bool result, QList<Group> *listGroups);
|
||||||
|
QByteArray listTrainees(bool result, QList<Trainee> *listTrainees);
|
||||||
|
QByteArray listComputers(bool result, QList<Computer> *listComputers);
|
||||||
|
QByteArray listClassrooms(bool result, QList<Classroom> *listClassrooms);
|
||||||
|
QByteArray listTasks(bool result, QList<Task> *listTasks);
|
||||||
|
signals:
|
||||||
|
|
||||||
|
private:
|
||||||
|
DataParser *dataParser;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DBANSWERPARSER_H
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
#define COMMONCLIENTHANDLER_H
|
#define COMMONCLIENTHANDLER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <clienthandler.h>
|
#include "clienthandler.h"
|
||||||
|
|
||||||
class ProcessingSystem;
|
class ProcessingSystem;
|
||||||
class DataParser;
|
class DataParser;
|
||||||
|
|||||||
@@ -134,13 +134,13 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu
|
|||||||
QList<Trainee> listTrainees = providerDBLMS->GetListAllTrainees();
|
QList<Trainee> listTrainees = providerDBLMS->GetListAllTrainees();
|
||||||
QList<Group> listGroups = providerDBLMS->GetListAllGroups();
|
QList<Group> listGroups = providerDBLMS->GetListAllGroups();
|
||||||
|
|
||||||
arrayAnswer = dataParser->xmlAnswer_ClientQueryToDB_ListInstructors(true, &listInstructors);
|
arrayAnswer = dataParser->DbAnswer()->listInstructors(true, &listInstructors);
|
||||||
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS);
|
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_INSTRUCTORS);
|
||||||
|
|
||||||
arrayAnswer = dataParser->xmlAnswer_ClientQueryToDB_ListGroups(true, &listGroups);
|
arrayAnswer = dataParser->DbAnswer()->listGroups(true, &listGroups);
|
||||||
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_GROUPS);
|
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_GROUPS);
|
||||||
|
|
||||||
arrayAnswer = dataParser->xmlAnswer_ClientQueryToDB_ListTrainees(true, &listTrainees);
|
arrayAnswer = dataParser->DbAnswer()->listTrainees(true, &listTrainees);
|
||||||
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_TRAINEES);
|
client->sendXmlAnswer(arrayAnswer, PacketType::TYPE_XMLANSWER_QUERY_DB__LIST_TRAINEES);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user