mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
129 lines
4.1 KiB
C++
129 lines
4.1 KiB
C++
#ifndef DATABASELMS_H
|
|
#define DATABASELMS_H
|
|
|
|
#include <QSqlDatabase>
|
|
#include <QMutex>
|
|
#include <QWidget>
|
|
|
|
#include "instructor.h"
|
|
#include "trainee.h"
|
|
#include "group.h"
|
|
#include "tasksAmmFim.h"
|
|
#include "timingoftrainee.h"
|
|
|
|
class DataBaseSettings
|
|
{
|
|
public:
|
|
QString dbName = "DataBaseLMS";
|
|
QString dbType = "QPSQL";
|
|
QString connectionName = "Connection";
|
|
QString dbUserName = "postgres";
|
|
QString dbPassword = "12345678";
|
|
QString dbHostName = "";
|
|
int dbPort = 5432;
|
|
};
|
|
|
|
class DataBaseLMS
|
|
{
|
|
public:
|
|
DataBaseLMS(QWidget *ownerWidget);
|
|
~DataBaseLMS();
|
|
|
|
public:
|
|
const QString TypeUserDBInstructor = "instructor";
|
|
const QString TypeUserDBTrainee = "trainee";
|
|
|
|
protected:
|
|
//Подключение
|
|
bool createConnection();
|
|
void deleteConnection();
|
|
bool isConnected();
|
|
|
|
//Транзакции
|
|
bool transactionBegin();
|
|
bool transactionEnd();
|
|
|
|
//Инструктор
|
|
QList<Instructor> selectAllInstructors();
|
|
Instructor selectInstructor(int id_instructor);
|
|
int selectInstructorID(QString login, QString password = QStringLiteral(""));
|
|
QString selectInstructorNameByLogin(QString login);
|
|
bool selectInstructorIsAdmin(int id_instructor);
|
|
bool selectInstructorLoggedIn(int id_instructor);
|
|
bool selectInstructorArchived(int id_instructor);
|
|
int updateInstructorLoggedIn(int id_instructor, bool loggedIn);
|
|
bool updateAllInstructorsLoggedIn(bool loggedIn);
|
|
int updateInstructorArchived(int id_instructor, bool archived);
|
|
int insertInstructor();
|
|
int insertInstructor(Instructor instructor);
|
|
int deleteInstructor(int id_instructor);
|
|
int updateInstructor(Instructor instructor);
|
|
|
|
//Группа
|
|
QList<Group> selectAllGroups();
|
|
Group selectGroup(int id_group);
|
|
int insertGroup();
|
|
int insertGroup(Group group);
|
|
int deleteGroup(int id_group);
|
|
int updateGroup(Group group);
|
|
|
|
//Обучаемый
|
|
QList<Trainee> selectAllTrainees();
|
|
Trainee selectTrainee(int id_trainee);
|
|
QList<Trainee> selectAllTraineesInGroup(int id_group);
|
|
int selectTraineeID(QString login, QString password = QStringLiteral(""));
|
|
QString selectTraineeNameByLogin(QString login);
|
|
QString selectTraineeNameOnComputer(QString computer_name);
|
|
Trainee selectTraineeOnComputer(QString computer_name);
|
|
bool selectTraineeArchived(int id_trainee);
|
|
bool selectTraineeLoggedIn(int id_trainee);
|
|
int updateTraineeLoggedIn(int id_trainee, bool loggedIn);
|
|
bool updateAllTraineesLoggedIn(bool loggedIn);
|
|
int updateTraineeArchived(int id_trainee, bool archived);
|
|
int insertTrainee(int id_group);
|
|
int insertTrainee(Trainee trainee);
|
|
int deleteTrainee(int id_trainee);
|
|
int updateTrainee(Trainee trainee);
|
|
|
|
//Тайминг
|
|
int insertTimingTrainee(int id_trainee);
|
|
int updateTimingTrainee(int id_trainee, TimingOfTrainee timing);
|
|
TimingOfTrainee selectTimingTrainee(int id_trainee);
|
|
|
|
//Задача AMM
|
|
int insertTaskAMM(TaskAmmFim task, int id_trainee);
|
|
int updateTaskAMM(TaskAmmFim task);
|
|
int updateStatusTaskAMM(int task_id, QString status);
|
|
int deleteTaskAMM(int id_task);
|
|
QList<TaskAmmFim> selectTasksAMMofTrainee(int id_trainee);
|
|
TaskAmmFim selectTaskAMMbyID(int id_task);
|
|
//Задача FIM
|
|
int insertTaskFIM(TaskAmmFim task, int id_trainee);
|
|
int updateTaskFIM(TaskAmmFim task);
|
|
int updateStatusTaskFIM(int task_id, QString status);
|
|
int deleteTaskFIM(int id_task);
|
|
QList<TaskAmmFim> selectTasksFIMofTrainee(int id_trainee);
|
|
TaskAmmFim selectTaskFIMbyID(int id_task);
|
|
int deleteReportFIM(int task_id);
|
|
int insertReportFIM(TaskAmmFim task);
|
|
|
|
private:
|
|
DataBaseSettings getDataBaseSettings();
|
|
int queryExecInt(QString queryStr);
|
|
QString queryExecString(QString queryStr);
|
|
bool queryExecBool(QString queryStr);
|
|
bool queryExec(QString queryStr, QSqlQuery* query);
|
|
void messageWarningErrorQuery(QString queryStr, QSqlQuery* query);
|
|
|
|
protected:
|
|
QSqlDatabase* db;
|
|
DataBaseSettings dbSettings;
|
|
|
|
private:
|
|
bool transactionBegined;
|
|
QMutex mtxAccess;
|
|
QWidget* ownerWidget;
|
|
};
|
|
|
|
#endif // DATABASELMS_H
|