#include "ProjectService.h" #include "SqlDBHelper.h" #include ProjectService::ProjectService(QObject *parent) { } //新增项目 int ProjectService::AddProjectInfo(const ProjectInfo &projectInfo) { int ret = -1; try { Transaction t(SqlDBHelper::getDatabase()); InsertQuery query = t.insertInto("t_project_info(`project_name`, `demand_mind_id`, `programme_mind_id`, " "`general_mind_id`, `remark`, `task_name`, `estimate_time`, `estimate_objective`, " "`estimate_dept`, `estimate_person`,`estimate_type`, `positional_titles`, `create_time`)"); NonQueryResult result = query.values(projectInfo.projectName, projectInfo.demandMindId, projectInfo.programmeMindId, projectInfo.generalMindId, projectInfo.remark, projectInfo.taskName, projectInfo.estimateTime, projectInfo.estimateObjective, projectInfo.estimateDept, projectInfo.estimatePerson, projectInfo.estimateType, projectInfo.positionalTitles, projectInfo.createTime) .exec(); t.commit(); ret = result.lastInsertId().toInt(); } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } //更新项目信息 bool ProjectService::UpdateProjectInfo(const ProjectInfo &proInfo) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.update("t_project_info") .set("project_name", proInfo.projectName) .set("remark", proInfo.remark) .set("task_name", proInfo.taskName) .set("estimate_time", proInfo.estimateTime) .set("estimate_objective", proInfo.estimateObjective) .set("estimate_dept", proInfo.estimateDept) .set("estimatePerson", proInfo.estimatePerson) .set("estimateType", proInfo.estimateType) .set("positionalTitles", proInfo.positionalTitles) .set("updateTime", proInfo.updateTime) .where("id = ?", proInfo.id); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } //更新脑图ID bool ProjectService::UpdateDemandById(int enjId, int demandId) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.update("t_project_info").set("demand_mind_id", demandId).where("id = ?", enjId); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } bool ProjectService::UpdateGeneralById(int enjId, int generalId) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.update("t_project_info").set("general", generalId).where("id = ?", enjId); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } bool ProjectService::UpdateProgrammeById(int enjId, int programmeId) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.update("t_project_info").set("programme_mind_id", programmeId).where("id = ?", enjId); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; } //获取项目详情 bool ProjectService::QueryProjectById(ProjectInfo *proJectInfo, int id) { QSqlDatabase db = SqlDBHelper::getDatabase(); QSqlQuery query(db); bool ret = false; QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, " "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept," "estimate_person,positional_titles,create_time,update_time,estimate_type FROM " "t_project_info WHERE id = %1") .arg(id); if (query.exec(selectSql)) { if (query.next()) { if (query.isNull(0) == false) { proJectInfo->id = query.value(0).toInt(); proJectInfo->projectName = query.value(1).toString(); proJectInfo->demandMindId = query.value(2).toInt(); proJectInfo->programmeMindId = query.value(3).toInt(); proJectInfo->generalMindId = query.value(4).toInt(); proJectInfo->remark = query.value(5).toString(); proJectInfo->taskName = query.value(6).toString(); proJectInfo->estimateTime = query.value(7).toString(); proJectInfo->estimateObjective = query.value(8).toString(); proJectInfo->estimateDept = query.value(9).toString(); proJectInfo->estimatePerson = query.value(10).toString(); proJectInfo->positionalTitles = query.value(11).toString(); proJectInfo->createTime = query.value(12).toString(); proJectInfo->updateTime = query.value(13).toString(); proJectInfo->estimateType = query.value(14).toString(); } ret = true; } } else { qDebug() << query.lastError(); } return ret; } //判断项目名是否存在 bool ProjectService::QueryProjectByName(QString name) { QSqlDatabase db = SqlDBHelper::getDatabase(); QSqlQuery query(db); bool ret = false; QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, " "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept," "estimate_person,positional_titles,create_time,update_time,estimate_type FROM " "t_project_info WHERE project_name = %1") .arg(name); if (query.exec(selectSql)) { if (query.next()) { ret = true; } } else { qDebug() << query.lastError(); } return ret; } bool ProjectService::QueryAll(QList *projectInfoList) { QSqlDatabase db = SqlDBHelper::getDatabase(); QSqlQuery query(db); bool ret = false; QString selectSql = QString("SELECT id, project_name, demand_mind_id, programme_mind_id, " "general_mind_id,remark,task_name,estimate_time,estimate_objective,estimate_dept," "estimate_person,positional_titles,create_time,update_time,estimate_type FROM " "t_project_info"); if (query.exec(selectSql)) { while (query.next()) { if (query.isNull(0) == false) { ProjectInfo *projectInfo = new ProjectInfo(); projectInfo->id = query.value(0).toInt(); projectInfo->projectName = query.value(1).toString(); projectInfo->demandMindId = query.value(2).toInt(); projectInfo->programmeMindId = query.value(3).toInt(); projectInfo->generalMindId = query.value(4).toInt(); projectInfo->remark = query.value(5).toString(); projectInfo->taskName = query.value(6).toString(); projectInfo->estimateTime = query.value(7).toString(); projectInfo->estimateObjective = query.value(8).toString(); projectInfo->estimateDept = query.value(9).toString(); projectInfo->estimatePerson = query.value(10).toString(); projectInfo->positionalTitles = query.value(11).toString(); projectInfo->createTime = query.value(12).toString(); projectInfo->updateTime = query.value(13).toString(); projectInfo->estimateType = query.value(14).toString(); projectInfoList->append(projectInfo); } ret = true; } } else { qDebug() << query.lastError(); } return ret; } //根据id删除 bool ProjectService::DeleteById(int id) { bool ret = false; try { Transaction t(SqlDBHelper::getDatabase()); t.deleteFrom("t_project_info").where("id = ?", id); t.commit(); ret = true; } catch (const DBException &ex) { qDebug() << ex.lastError.text(); } return ret; }