#include "SchemeProcessService.h" #include "SqlDBHelper.h" #include SchemeProcessService::SchemeProcessService(QObject *parent) { } int SchemeProcessService::AddSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo) { int ret = -1; try { Transaction t(SqlDBHelper::getDatabase()); InsertQuery query = t.insertInto( "t_scheme_process_info(`project_id`, `index_type`, `step`, `type`, `name`, " "`data_source`, `algorithm`,`efficiency_grades`, `is_optional`,`is_checked`, `create_time`)"); NonQueryResult result = query.values(schemeProcessInfo.projectId, schemeProcessInfo.indexType, schemeProcessInfo.step, schemeProcessInfo.type, schemeProcessInfo.name, schemeProcessInfo.dSource, schemeProcessInfo.algorithm, schemeProcessInfo.efficiencyGrades, schemeProcessInfo.isChecked, schemeProcessInfo.isOptional, QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")) .exec(); t.commit(); ret = result.lastInsertId().toInt(); } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } bool SchemeProcessService::UpdateSchemeProcess(const SchemePlanManager::SchemeProcessInfo &schemeProcessInfo) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.update("t_scheme_process_info") .set("project_id", schemeProcessInfo.projectId) .set("index_type", schemeProcessInfo.indexType) .set("step", schemeProcessInfo.step) .set("type", schemeProcessInfo.type) .set("name", schemeProcessInfo.name) .set("data_source", schemeProcessInfo.dSource) .set("algorithm", schemeProcessInfo.algorithm) .set("efficiency_grades", schemeProcessInfo.efficiencyGrades) .set("is_optional", schemeProcessInfo.isOptional) .set("is_checked", schemeProcessInfo.isChecked) .set("update_time", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")) .where("id = ?", schemeProcessInfo.id); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } bool SchemeProcessService::QueryAllByProjectIdAndIndexType( QList &schemeProcessInfo) { QSqlDatabase db = SqlDBHelper::getDatabase(); QSqlQuery query(db); bool ret = false; QString selectSql = QString("SELECT `id`, `project_id`, `index_type`, `step`, `type`, `name`, `data_source`, " "`algorithm`, `efficiency_grades`, `is_optional`, `is_checked` FROM " "t_scheme_process_info order by create_time desc"); if (query.exec(selectSql)) { while (query.next()) { if (query.isNull(0) == false) { SchemePlanManager::SchemeProcessInfo info; info.id = query.value(0).toInt(); info.projectId = query.value(1).toInt(); info.indexType = query.value(2).toInt(); info.step = query.value(3).toInt(); info.type = (SchemePlanManager::SchemeProcessType)query.value(4).toInt(); info.name = query.value(5).toString(); info.dSource = (SchemePlanManager::SchemeDataSource)query.value(6).toInt(); info.algorithm = (SchemePlanManager::Algorithm)query.value(7).toInt(); info.efficiencyGrades = query.value(8).toInt(); info.isOptional = query.value(9).toInt(); info.isChecked = query.value(10).toInt(); schemeProcessInfo.append(info); } } ret = true; } else { qDebug() << query.lastError(); } return ret; } bool SchemeProcessService::DeleteById(int id) { bool ret = false; try { qDebug() << __FUNCTION__ << __LINE__ << SqlDBHelper::getDatabase().driver()->hasFeature(QSqlDriver::Transactions) << endl; Transaction t(SqlDBHelper::getDatabase()); t.deleteFrom("t_scheme_process_info").where("id = ?", id); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; }