HProjectDao.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef HPROJECTDAO_H
  2. #define HPROJECTDAO_H
  3. #include <QDateTime>
  4. #include <QJsonArray>
  5. #include <QJsonObject>
  6. #include <QList>
  7. #include <QMessageBox>
  8. #include <QObject>
  9. #include <QSqlDatabase>
  10. #include <QSqlError>
  11. #include <QSqlQuery>
  12. #include <QSqlRecord>
  13. #include "HProject.h"
  14. struct PaginatedHProjectResult {
  15. QList<QSharedPointer<HProject>> projects;
  16. int totalCount;
  17. };
  18. class HProjectDao {
  19. public:
  20. HProjectDao(QSqlDatabase db);
  21. bool addHProject(const HProject &project);
  22. bool updateHProject(const HProject &project);
  23. bool deleteHProject(const HProject &project);
  24. bool updateBlastStatusByUuid(const QString &uuid, const QString &blastStatus);
  25. HProject getHProjectById(qint64 id);
  26. PaginatedHProjectResult getAllHProjects(int page, int pageSize);
  27. PaginatedHProjectResult getAllHProjectsByOpera(int page, int pageSize);
  28. QList<QSharedPointer<HProject>> getAllHProjectsReg();
  29. QList<QSharedPointer<HProject>> getRegistedProjectByAddressUuid(QList<QString> addressUuids);
  30. QList<QSharedPointer<HProject>> getHProjectsFromJsonArray(const QJsonArray &jsonArray);
  31. private:
  32. QSqlDatabase database;
  33. // 将QSqlRecord转换为HProject对象
  34. QSharedPointer<HProject> recordToProject(const QSqlRecord &record);
  35. };
  36. #endif // HPROJECTDAO_H