SchemeProcessService.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #include "SchemeProcessService.h"
  2. #include "SqlDBHelper.h"
  3. #include <QDebug>
  4. SchemeProcessService::SchemeProcessService(QObject *parent) { }
  5. int SchemeProcessService::AddSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo)
  6. {
  7. int ret = -1;
  8. try {
  9. Transaction t(SqlDBHelper::getDatabase());
  10. InsertQuery query = t.insertInto(
  11. "t_scheme_process_info(`project_id`, `index_type`, `step`, `type`, `name`, "
  12. "`data_source`, `algorithm`,`efficiency_grades`, `is_optional`,`is_checked`, `create_time`)");
  13. NonQueryResult result =
  14. query.values(schemeProcessInfo.projectId, schemeProcessInfo.indexType, schemeProcessInfo.step,
  15. schemeProcessInfo.type, schemeProcessInfo.name, schemeProcessInfo.dSource,
  16. schemeProcessInfo.algorithm, schemeProcessInfo.efficiencyGrades,
  17. schemeProcessInfo.isChecked, schemeProcessInfo.isOptional,
  18. QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
  19. .exec();
  20. t.commit();
  21. ret = result.lastInsertId().toInt();
  22. } catch (const DBException &ex) {
  23. qDebug() << ex.lastError.text();
  24. }
  25. return ret;
  26. }
  27. bool SchemeProcessService::UpdateSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo)
  28. {
  29. bool ret = false;
  30. try {
  31. Transaction t(SqlDBHelper::getDatabase());
  32. t.update("t_scheme_process_info")
  33. .set("project_id", schemeProcessInfo.projectId)
  34. .set("index_type", schemeProcessInfo.indexType)
  35. .set("step", schemeProcessInfo.step)
  36. .set("type", schemeProcessInfo.type)
  37. .set("name", schemeProcessInfo.name)
  38. .set("data_source", schemeProcessInfo.dSource)
  39. .set("algorithm", schemeProcessInfo.algorithm)
  40. .set("efficiency_grades", schemeProcessInfo.efficiencyGrades)
  41. .set("is_optional", schemeProcessInfo.isOptional)
  42. .set("is_checked", schemeProcessInfo.isChecked)
  43. .set("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
  44. .where("id = ?", schemeProcessInfo.id);
  45. t.commit();
  46. ret = true;
  47. } catch (const DBException &ex) {
  48. qDebug() << ex.lastError.text();
  49. }
  50. return ret;
  51. }
  52. bool SchemeProcessService::QueryAllByProjectIdAndIndexType(
  53. QList<SchemePlanManager::SchemeProcessInfo *> *schemeProcessInfo)
  54. {
  55. QSqlDatabase db = SqlDBHelper::getDatabase();
  56. QSqlQuery query(db);
  57. bool ret = false;
  58. QString selectSql = QString("SELECT `id`, `project_id`, `index_type`, `step`, `type`, `name`, `data_source`, "
  59. "`algorithm`, `efficiency_grades`, `is_optional`, `is_checked` FROM "
  60. "t_scheme_process_info order by create_time desc");
  61. if (query.exec(selectSql)) {
  62. while (query.next()) {
  63. if (query.isNull(0) == false) {
  64. SchemePlanManager::SchemeProcessInfo *info = new SchemePlanManager::SchemeProcessInfo();
  65. info->id = query.value(0).toInt();
  66. info->projectId = query.value(1).toInt();
  67. info->indexType = query.value(2).toInt();
  68. info->step = query.value(3).toInt();
  69. info->type = (SchemePlanManager::SchemeProcessType)query.value(4).toInt();
  70. info->name = query.value(5).toString();
  71. info->dSource = (SchemePlanManager::SchemeDataSource)query.value(6).toInt();
  72. info->algorithm = (SchemePlanManager::Algorithm)query.value(7).toInt();
  73. info->efficiencyGrades = query.value(8).toInt();
  74. info->isOptional = query.value(9).toInt();
  75. info->isChecked = query.value(10).toInt();
  76. schemeProcessInfo->append(info);
  77. }
  78. }
  79. ret = true;
  80. } else {
  81. qDebug() << query.lastError();
  82. }
  83. return ret;
  84. }
  85. bool SchemeProcessService::DeleteById(int id)
  86. {
  87. bool ret = false;
  88. try {
  89. qDebug() << __FUNCTION__ << __LINE__
  90. << SqlDBHelper::getDatabase().driver()->hasFeature(QSqlDriver::Transactions) << endl;
  91. Transaction t(SqlDBHelper::getDatabase());
  92. t.deleteFrom("t_scheme_process_info").where("id = ?", id);
  93. t.commit();
  94. ret = true;
  95. } catch (const DBException &ex) {
  96. qDebug() << ex.lastError.text();
  97. }
  98. return ret;
  99. }