// ***************************************************************************** // ��Ȩ���У�C��2023~2099 �Ϻ����ɳ�������������˾ // ��������Ȩ�� // ***************************************************************************** // ���� : ��� // �汾 : 1.0 // ����˵��: // ���ݿ������ // ***************************************************************************** #ifndef __SQLOPERATION_H__ #define __SQLOPERATION_H__ 1 #include <QString> #include <QJsonDocument> #include <QDebug> #include <QSqlQuery> #include <QSqlDatabase> #include <QJsonObject> #include <QJsonArray> #include "CViewInterface.h" #include <QMap> //#define MENU_TABLE_NAME "Menu" //#define HOME_TABLE_NAME "HomeProduct" //#define Dir_Calibration_TABLE_NAME "Dir_Calibration" //#define Dir_Diagnosis_TABLE_NAME "Dir_Diagnosis" //#define Dir_Message_TABLE_NAME "Dir_Message" //#define Dir_ModuleConfig_TABLE_NAME "Dir_ModuleConfig" //#define Dir_ProductAssist_TABLE_NAME "Dir_ProductAssist" //#define Dir_Programme_TABLE_NAME "Dir_Programme" //#define Dir_SystemInfo_TABLE_NAME "Dir_SystemInfo" struct Table_Control_Data { //��ǰĿ¼�� ÿ�������Ӧ������ //QMap<QString, QList<CONFIG_BASE_STRUCT>> configData; QList<CONFIG_BASE_STRUCT> controlDataList; QString tableName; bool allChangeFlag = true; //��ʱ����,�ⲿ��ȡʱʹ�� // QList<CONFIG_BASE_STRUCT> configData; //bool IsThirdLevel = false; //��ʱ���� }; // ҳ���л����� struct ST_APP_CONFIG { int nID; int nGroupId_R; // Group int nIndex_R; // Group ����ڼ��� int nGroupId_L; // Group int nIndex_L; // Group ����ڼ��� }; class SqlOperation { public: SqlOperation(); // ��ȡ����ʵ�� static SqlOperation& GetInstance(); public: //�������ݿ����� int LoadSql(); //�������в˵� int loadMenu(); int loadAllDirectories(); //�������пؼ����� int loadAllControlData(); //���ݱ������ּ��ص���Ŀ¼,ÿ��QJsonObject����һ��Ŀ¼�������Ϣ int loadDirectories(QString tableName, QList<QJsonObject>& directories); //����ָ�������µĿؼ����� int loadGivenTableControlData(QString tableName, Table_Control_Data& controlData); //����ID���ز˵����� //int loadMenuName(int id, QString& name); //ͨ���������֣�Ŀ¼Id,���ҿؼ����ݼ���ť���� // QJsonObject fetchThirdLevelData(QString multiTableName, int directoryId, const int& userPrivilege); //���ݱ������ּ��û��ȼ�������Ŀ¼ int GetDirectories(QString tableName, const int& userPrivilege, QList<QJsonObject>& directories); //���ݶ���������ֻ�ȡ����Ŀ¼�µĿؼ���Ϣ,������ť int GetThirdDirControlData(QString multiTableName, const int& userPrivilege, QList<Table_Control_Data>& data,bool& allChangeFalg); //���ݶ���������ֻ�ȡ����Ŀ¼�µİ�ť, ������ȡ��ť int GetThirdDirButtons(QString multiTableName, const int& userPrivilege, QList<CONFIG_BASE_STRUCT>& buttons); int GetMuneName(int id, QString& name); //���¸����������֣������ؼ����ֵ�����, �������ݵ����ش洢�ͺ�� int updateControlData(QString tableName, QString name, const QString& currentValue); //ͨ���������ؼ������������ݿ��һ��value�����µ����ݿ� int updateDb(QString tableName, QString name, const QString currentValue); // bool GetDirectories(QString tableName, const int& userPrivilege, QList<CONFIG_BASE_STRUCT>& directories); int LoadAppConfig(); private: void ErrorInfo(const QString& strError); bool isModuleTable(QString tableName); int LoadControlDataFromModule(std::string tableName, Table_Control_Data& controlData); void DataChange(string strDbName, string strTableName); private: ns_module::CViewInterface* m_pCViewInterface; //ÿ��Ŀ¼�������ֶ�Ӧ��Ŀ¼ QMap<QString, QList<QJsonObject>> m_mapAllDirectories; /* * QJsonObject: * {["Id"]:; ["Name"]; ["ParentId"] ["IsThirdLevel"]; ["Separator"]; ["UserGrade"]; ["Circle"]; ["TableName"]:{ [] } ;} TableName ��ʽ�� BondHead,1,2 */ //ÿ������Ŀ¼��(���ܰ���������ݱ���) ��Ӧ������ // QMap<int, Third_Dir_Control_Data> m_mapControlData; //���б����Ӧ������ //QMap<QString, QList<CONFIG_BASE_STRUCT>> m_mapTableControlData; //���пؼ����� //ModuleConfig.db QList<Table_Control_Data> m_allControlData; //ÿ��ID��Ӧ�˵��� QMap<int, QString> m_mapMenu; /**ҳ��������Ϣ */ ST_APP_CONFIG m_appConifg; //Ŀ¼���� const QString MENU_TABLE_NAME = "Menu"; const QString HOME_TABLE_NAME = "HomeProduct"; const QString Dir_Calibration_TABLE_NAME = "Dir_Calibration"; const QString Dir_Diagnosis_TABLE_NAME = "Dir_Diagnosis"; const QString Dir_Message_TABLE_NAME = "Dir_Message"; const QString Dir_ModuleConfig_TABLE_NAME = "Dir_ModuleConfig"; const QString Dir_ProductAssist_TABLE_NAME = "Dir_ProductAssist"; const QString Dir_Programme_TABLE_NAME = "Dir_Programme"; const QString Dir_SystemInfo_TABLE_NAME = "Dir_SystemInfo"; //Module ���� }; #endif //__SQLOPERATION_H__