#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 = new SchemePlanManager::SchemeProcessInfo(); 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; }