SqlOperation.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // *****************************************************************************
  2. // 版权所有(C)2023~2099 上海骄成超声波技术有限公司
  3. // 保留所有权利
  4. // *****************************************************************************
  5. // 作者 : 杨坚
  6. // 版本 : 1.0
  7. // 功能说明:
  8. // 数据库操作类
  9. // *****************************************************************************
  10. #ifndef __SQLOPERATION_H__
  11. #define __SQLOPERATION_H__ 1
  12. #include <QString>
  13. #include <QJsonDocument>
  14. #include <QDebug>
  15. #include <QSqlQuery>
  16. #include <QSqlDatabase>
  17. #include <QJsonObject>
  18. #include <QJsonArray>
  19. #include "CViewInterface.h"
  20. #include <QMap>
  21. #define MENU_TABLE_NAME "Menu"
  22. #define HOME_TABLE_NAME "HomeProduct"
  23. #define Dir_Calibration_TABLE_NAME "Dir_Calibration"
  24. #define Dir_Diagnosis_TABLE_NAME "Dir_Diagnosis"
  25. #define Dir_Message_TABLE_NAME "Dir_Message"
  26. #define Dir_ModuleConfig_TABLE_NAME "Dir_ModuleConfig"
  27. #define Dir_ProductAssist_TABLE_NAME "Dir_ProductAssist"
  28. #define Dir_Programme_TABLE_NAME "Dir_Programme"
  29. #define Dir_SystemInfo_TABLE_NAME "Dir_SystemInfo"
  30. struct Table_Control_Data
  31. {
  32. //当前目录下 每个表格对应的数据
  33. //QMap<QString, QList<CONFIG_BASE_STRUCT>> configData;
  34. QList<CONFIG_BASE_STRUCT> controlDataList;
  35. QString tableName;
  36. bool allChangeFlag = true; //临时数据,外部读取时使用
  37. // QList<CONFIG_BASE_STRUCT> configData;
  38. //bool IsThirdLevel = false; //临时数据
  39. };
  40. class SqlOperation
  41. {
  42. public:
  43. SqlOperation();
  44. // 获取单例实例
  45. static SqlOperation& GetInstance();
  46. public:
  47. //创建数据库连接
  48. int LoadSql();
  49. //加载所有菜单
  50. int loadMenu();
  51. int loadAllDirectories();
  52. //加载所有控件数据
  53. int loadAllControlData();
  54. //根据表格名字加载单个目录,每个QJsonObject保存一个目录的相关信息
  55. int loadDirectories(QString tableName, QList<QJsonObject>& directories);
  56. //加载指定表格下的控件数据
  57. int loadGivenTableControlData(QString tableName, Table_Control_Data& controlData);
  58. //根据ID加载菜单名字
  59. //int loadMenuName(int id, QString& name);
  60. //通过表格名字,目录Id,查找控件数据及按钮数据
  61. // QJsonObject fetchThirdLevelData(QString multiTableName, int directoryId, const int& userPrivilege);
  62. //根据表格名字及用户等级,加载目录
  63. int GetDirectories(QString tableName, const int& userPrivilege, QList<QJsonObject>& directories);
  64. //根据多个表格名字获取三级目录下的控件信息,包括按钮
  65. int GetThirdDirControlData(QString multiTableName, const int& userPrivilege, QList<Table_Control_Data>& data,bool& allChangeFalg);
  66. //根据多个表格名字获取三级目录下的按钮, 仅仅获取按钮
  67. int GetThirdDirButtons(QString multiTableName, const int& userPrivilege, QList<CONFIG_BASE_STRUCT>& buttons);
  68. int GetMuneName(int id, QString& name);
  69. //更新给定表格名字,给定控件名字的数据, 更新数据到本地存储和后端
  70. int updateControlData(QString tableName, QString name, const QString& currentValue);
  71. //通过表名,控件名,更新数据库的一个value,更新到数据库
  72. int updateDb(QString tableName, QString name, const QString currentValue);
  73. // bool GetDirectories(QString tableName, const int& userPrivilege, QList<CONFIG_BASE_STRUCT>& directories);
  74. private:
  75. void ErrorInfo(const QString& strError);
  76. private:
  77. std::unique_ptr<ns_module::CViewInterface> m_pCViewInterface;
  78. //每个目录表格名字对应的目录
  79. QMap<QString, QList<QJsonObject>> m_mapAllDirectories;
  80. /*
  81. * QJsonObject:
  82. * {["Id"]:;
  83. ["Name"];
  84. ["ParentId"]
  85. ["IsThirdLevel"];
  86. ["Separator"];
  87. ["UserGrade"];
  88. ["Circle"];
  89. ["TableName"];}
  90. */
  91. //每个三级目录下(可能包括多个数据表格) 对应的数据
  92. // QMap<int, Third_Dir_Control_Data> m_mapControlData;
  93. //所有表格对应的数据
  94. //QMap<QString, QList<CONFIG_BASE_STRUCT>> m_mapTableControlData;
  95. //所有控件数据
  96. QList<Table_Control_Data> m_allControlData;
  97. //每个ID对应菜单名
  98. QMap<int, QString> m_mapMenu;
  99. };
  100. #endif //__SQLOPERATION_H__