Починил клинч с мьютексом Провайдера ДБ

This commit is contained in:
2025-08-13 16:15:28 +03:00
parent 842118cbea
commit ef12d4f7a9
7 changed files with 74 additions and 65 deletions

View File

@@ -62,7 +62,7 @@ Trainee DataBaseLMS::selectTrainee(int id_trainee)
"LEFT OUTER JOIN public.computers ON computers.computer_id = users.fk_computer_id "
"LEFT OUTER JOIN public.classrooms ON classrooms.classroom_id = computers.fk_classroom_id "
"WHERE users.user_id = %1 AND users.type = '%2' "
"ORDER BY groups.name, trainees.name ASC").arg(
"ORDER BY groups.name, users.name ASC").arg(
QString::number(id_trainee),
TypeUserDBTrainee);

View File

@@ -21,7 +21,7 @@ void InterfaceDataBaseLMS::slot_LanguageChanged(QString language)
bool InterfaceDataBaseLMS::connectionToDB()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
if(!createConnection())
{
QMessageBox::critical(ownerWidget, dbSettings.dbName, tr("Connection error: ") + db->lastError().text());
@@ -36,7 +36,7 @@ bool InterfaceDataBaseLMS::connectionToDB()
bool InterfaceDataBaseLMS::disConnectionFromDB()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
deleteConnection();
//QMessageBox::information(ownerWidget, dbName, tr("Disconnection is successful!"));
return true;
@@ -44,7 +44,7 @@ bool InterfaceDataBaseLMS::disConnectionFromDB()
bool InterfaceDataBaseLMS::DBisConnected()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return isConnected();
}
@@ -53,7 +53,7 @@ bool InterfaceDataBaseLMS::DBisConnected()
bool InterfaceDataBaseLMS::authorizationInstructor(QString login, QString password)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
if(int id = selectUserID(DataBaseLMS::TypeUserDBInstructor, login, password))
{
@@ -68,7 +68,7 @@ bool InterfaceDataBaseLMS::authorizationInstructor(QString login, QString passwo
bool InterfaceDataBaseLMS::deAuthorizationInstructor(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
if(int id = selectUserID(DataBaseLMS::TypeUserDBInstructor, login))
{
@@ -80,49 +80,49 @@ bool InterfaceDataBaseLMS::deAuthorizationInstructor(QString login)
bool InterfaceDataBaseLMS::deAuthorizationAllInstructors()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateAllUsersLoggedIn(DataBaseLMS::TypeUserDBInstructor, false);
}
QString InterfaceDataBaseLMS::getNameInstructorByLogin(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserNameByLogin(DataBaseLMS::TypeUserDBInstructor, login);
}
int InterfaceDataBaseLMS::getIdInstructorByLogin(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserID(DataBaseLMS::TypeUserDBInstructor, login);
}
QList<Instructor> InterfaceDataBaseLMS::getListInstructors()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectAllInstructors();
}
Instructor InterfaceDataBaseLMS::getInstructor(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectInstructor(id);
}
int InterfaceDataBaseLMS::newInstructor()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return insertInstructor();
}
int InterfaceDataBaseLMS::delInstructor(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return deleteInstructor(id);
}
int InterfaceDataBaseLMS::editInstructor(Instructor instructor)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
//Проверка корректности логина, имени, пароля
@@ -159,19 +159,19 @@ int InterfaceDataBaseLMS::editInstructor(Instructor instructor)
bool InterfaceDataBaseLMS::isAdminInstructor(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectInstructorIsAdmin(id);
}
bool InterfaceDataBaseLMS::isArchivedInstructor(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserArchived(DataBaseLMS::TypeUserDBInstructor, id);
}
bool InterfaceDataBaseLMS::isLoggedInInstructor(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserLoggedIn(DataBaseLMS::TypeUserDBInstructor, id);
}
@@ -180,7 +180,7 @@ bool InterfaceDataBaseLMS::isLoggedInInstructor(int id)
bool InterfaceDataBaseLMS::authorizationTrainee(QString login, QString password, QString classroom_name, QString computer_name)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
if(int id = selectUserID(DataBaseLMS::TypeUserDBTrainee, login, password))
{
@@ -195,7 +195,7 @@ bool InterfaceDataBaseLMS::authorizationTrainee(QString login, QString password,
bool InterfaceDataBaseLMS::deAuthorizationTrainee(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
if(int id = selectUserID(DataBaseLMS::TypeUserDBTrainee, login))
{
@@ -207,13 +207,13 @@ bool InterfaceDataBaseLMS::deAuthorizationTrainee(QString login)
bool InterfaceDataBaseLMS::deAuthorizationAllTrainees()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateAllUsersLoggedIn(DataBaseLMS::TypeUserDBTrainee, false);
}
int InterfaceDataBaseLMS::entryTraineeOnSimulator(int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
TimingOfTrainee timing(id_trainee);
@@ -235,7 +235,7 @@ int InterfaceDataBaseLMS::entryTraineeOnSimulator(int id_trainee)
int InterfaceDataBaseLMS::exitTraineeFromSimulator(int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
TimingOfTrainee timing(id_trainee);
@@ -257,73 +257,73 @@ int InterfaceDataBaseLMS::exitTraineeFromSimulator(int id_trainee)
QString InterfaceDataBaseLMS::getNameTraineeOnComputer(QString computer_name)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTraineeNameOnComputer(computer_name);
}
Trainee InterfaceDataBaseLMS::getTraineeOnComputer(QString computer_name)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTraineeOnComputer(computer_name);
}
QString InterfaceDataBaseLMS::getNameTraineeByLogin(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserNameByLogin(DataBaseLMS::TypeUserDBTrainee, login);
}
int InterfaceDataBaseLMS::getIdTraineeByLogin(QString login)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserID(DataBaseLMS::TypeUserDBTrainee, login);
}
QList<Trainee> InterfaceDataBaseLMS::getListTraineesInGroup(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectAllTraineesInGroup(id);
}
QList<Group> InterfaceDataBaseLMS::getListGroups()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectAllGroups();
}
QList<Trainee> InterfaceDataBaseLMS::getListTrainees()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectAllTrainees();
}
Trainee InterfaceDataBaseLMS::getTrainee(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTrainee(id);
}
Group InterfaceDataBaseLMS::getGroup(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectGroup(id);
}
int InterfaceDataBaseLMS::newGroup()
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return insertGroup();
}
int InterfaceDataBaseLMS::delGroup(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return deleteGroup(id);
}
int InterfaceDataBaseLMS::editGroup(Group group)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
//Проверка корректности имени
QList<Group> listGroups = selectAllGroups();
@@ -349,97 +349,97 @@ int InterfaceDataBaseLMS::editGroup(Group group)
int InterfaceDataBaseLMS::newTaskAMM(TaskAmmFim task, int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return insertTaskAMM(task, id_trainee);
}
int InterfaceDataBaseLMS::delTaskAMM(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return deleteTaskAMM(id);
}
int InterfaceDataBaseLMS::editTaskAMM(TaskAmmFim task)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateTaskAMM(task);
}
QList<TaskAmmFim> InterfaceDataBaseLMS::getListTasksAMMofTrainee(int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTasksAMMofTrainee(id_trainee);
}
QList<TaskAmmFim> InterfaceDataBaseLMS::getListTasksFIMofTrainee(int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTasksFIMofTrainee(id_trainee);
}
TaskAmmFim InterfaceDataBaseLMS::getTaskAMMbyID(int id_task)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTaskAMMbyID(id_task);
}
TaskAmmFim InterfaceDataBaseLMS::getTaskFIMbyID(int id_task)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectTaskFIMbyID(id_task);
}
int InterfaceDataBaseLMS::newTaskFIM(TaskAmmFim task, int id_trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return insertTaskFIM(task, id_trainee);
}
int InterfaceDataBaseLMS::delTaskFIM(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return deleteTaskFIM(id);
}
int InterfaceDataBaseLMS::editTaskFIM(TaskAmmFim task)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateTaskFIM(task);
}
int InterfaceDataBaseLMS::replaceReportFIM(TaskAmmFim task)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateReportFIMforTask(task);
}
int InterfaceDataBaseLMS::changeStatusTaskFIM(int id_task, QString status)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateStatusTaskFIM(id_task, status);
}
int InterfaceDataBaseLMS::changeStatusTaskAMM(int id_task, QString status)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return updateStatusTaskAMM(id_task, status);
}
int InterfaceDataBaseLMS::newTrainee(int id_group)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return insertTrainee(id_group);
}
int InterfaceDataBaseLMS::delTrainee(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return deleteTrainee(id);
}
int InterfaceDataBaseLMS::editTrainee(Trainee trainee)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
//Проверка корректности логина, имени, пароля
@@ -476,12 +476,12 @@ int InterfaceDataBaseLMS::editTrainee(Trainee trainee)
bool InterfaceDataBaseLMS::isArchivedTrainee(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserArchived(DataBaseLMS::TypeUserDBTrainee, id);
}
bool InterfaceDataBaseLMS::isLoggedInTrainee(int id)
{
QMutexLocker mtxLocker(&mtxAccess);
//QMutexLocker mtxLocker(&mtxAccess);
return selectUserLoggedIn(DataBaseLMS::TypeUserDBTrainee, id);
}

View File

@@ -105,7 +105,7 @@ public:
private:
QTranslator qtLanguageTranslator;
QWidget* ownerWidget;
QMutex mtxAccess;
//QMutex mtxAccess;
};
#endif // INTERFACEDATABASELMS_H