123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- // *****************************************************************************
- // 版权所有(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);
- private:
- std::unique_ptr<ns_module::CViewInterface> m_pCViewInterface;
- //每个目录表格名字对应的目录
- QMap<QString, QList<QJsonObject>> m_mapAllDirectories;
- /*
- * QJsonObject:
- * {["Id"]:;
- ["Name"];
- ["ParentId"]
- ["IsThirdLevel"];
- ["Separator"];
- ["UserGrade"];
- ["Circle"];
- ["TableName"];}
- */
- //每个三级目录下(可能包括多个数据表格) 对应的数据
- // QMap<int, Third_Dir_Control_Data> m_mapControlData;
- //所有表格对应的数据
- //QMap<QString, QList<CONFIG_BASE_STRUCT>> m_mapTableControlData;
- //所有控件数据
- QList<Table_Control_Data> m_allControlData;
- //每个ID对应菜单名
- QMap<int, QString> m_mapMenu;
- /**页面配置信息
- */
- ST_APP_CONFIG m_appConifg;
- };
- #endif //__SQLOPERATION_H__
|