CNodeDataService.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #include "CNodeDataService.h"
  2. #include "SqlDBHelper.h"
  3. #include <QDebug>
  4. CNodeDataService::CNodeDataService(QObject *parent) { }
  5. //新增节点
  6. int CNodeDataService::AddCNodeData(const CNodeData &cNodeData)
  7. {
  8. int ret = -1;
  9. try {
  10. Transaction t(SqlDBHelper::getDatabase());
  11. InsertQuery query = t.insertInto(
  12. "t_node_data(`project_id`, `eval_type`, `number`, `p_number`, `name`, `remark`, `create_time`)");
  13. NonQueryResult result = query.values(cNodeData.projectId, cNodeData.indexType, cNodeData.number,
  14. cNodeData.pNumber, cNodeData.name, cNodeData.remark,
  15. QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
  16. .exec();
  17. t.commit();
  18. ret = result.lastInsertId().toInt();
  19. } catch (const DBException &ex) {
  20. qDebug() << ex.lastError.text();
  21. }
  22. return ret;
  23. }
  24. //更新节点信息
  25. bool CNodeDataService::UpdateCNodeData(const CNodeData &cNodeData)
  26. {
  27. bool ret = false;
  28. try {
  29. Transaction t(SqlDBHelper::getDatabase());
  30. t.update("t_node_data")
  31. .set("project_id", cNodeData.projectId)
  32. .set("eval_type", cNodeData.indexType)
  33. .set("number", cNodeData.number)
  34. .set("p_number", cNodeData.pNumber)
  35. .set("name", cNodeData.name)
  36. .set("remark", cNodeData.remark)
  37. .set("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"))
  38. .where("id = ?", cNodeData.id);
  39. t.commit();
  40. ret = true;
  41. } catch (const DBException &ex) {
  42. qDebug() << ex.lastError.text();
  43. }
  44. return ret;
  45. }
  46. /*根据项目id查询节点信息*/
  47. bool CNodeDataService::QueryCNodeDataById(CNodeData &cNodeData, int id)
  48. {
  49. QSqlDatabase db = SqlDBHelper::getDatabase();
  50. QSqlQuery query(db);
  51. bool ret = false;
  52. QString selectSql = QString("SELECT id,project_id, eval_type,number,p_number,name,remark FROM "
  53. "t_node_data WHERE id = %1")
  54. .arg(id);
  55. if (query.exec(selectSql)) {
  56. if (query.next()) {
  57. if (query.isNull(0) == false) {
  58. cNodeData.id = query.value(0).toInt();
  59. cNodeData.projectId = query.value(1).toInt();
  60. cNodeData.indexType = query.value(1).toInt();
  61. cNodeData.number = query.value(2).toInt();
  62. cNodeData.pNumber = query.value(3).toInt();
  63. cNodeData.name = query.value(4).toString();
  64. cNodeData.remark = query.value(5).toString();
  65. }
  66. ret = true;
  67. }
  68. } else {
  69. qDebug() << query.lastError();
  70. }
  71. return ret;
  72. }
  73. //查询所有
  74. bool CNodeDataService::QueryAll(QList<CNodeData> &cNodeDataList, int projectId, int evalType)
  75. {
  76. QSqlDatabase db = SqlDBHelper::getDatabase();
  77. QSqlQuery query(db);
  78. bool ret = false;
  79. QString selectSql = QString("SELECT id,project_id, eval_type,number,p_number,name,remark FROM t_node_data WHERE "
  80. "project_id = %1 and eval_type= %2")
  81. .arg(projectId)
  82. .arg(evalType);
  83. if (query.exec(selectSql)) {
  84. while (query.next()) {
  85. if (query.isNull(0) == false) {
  86. CNodeData cNodeData;
  87. cNodeData.id = query.value(0).toInt();
  88. cNodeData.projectId = query.value(1).toInt();
  89. cNodeData.indexType = query.value(2).toInt();
  90. cNodeData.number = query.value(3).toInt();
  91. cNodeData.pNumber = query.value(4).toInt();
  92. cNodeData.name = query.value(5).toString();
  93. cNodeData.remark = query.value(6).toString();
  94. cNodeDataList.append(cNodeData);
  95. }
  96. }
  97. ret = true;
  98. } else {
  99. qDebug() << query.lastError();
  100. }
  101. return ret;
  102. }
  103. //根据id删除
  104. bool CNodeDataService::DeleteCNodeDataById(int id)
  105. {
  106. bool ret = false;
  107. try {
  108. qDebug() << __FUNCTION__ << __LINE__
  109. << SqlDBHelper::getDatabase().driver()->hasFeature(QSqlDriver::Transactions) << endl;
  110. Transaction t(SqlDBHelper::getDatabase());
  111. t.deleteFrom("t_node_data").where("id = ?", id);
  112. t.commit();
  113. ret = true;
  114. } catch (const DBException &ex) {
  115. qDebug() << ex.lastError.text();
  116. }
  117. return ret;
  118. }