#include "PersonDao.h" PersonDao::PersonDao(QObject *parent) : BaseDao(parent) { } QVector<QVariantMap> PersonDao::findAllRecord() { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT ID, VALID, NAME, PERSON_CODE, CARD_SERIAL, DEPT_NAME, PHOTO, TS FROM WCR_PERSON WHERE VALID = 1"; // 执行查询 query.exec(sql); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("id", query.value("ID").toString()); item.insert("valid", query.value("VALID").toUInt()); item.insert("name", query.value("NAME").toString()); item.insert("personCode", query.value("PERSON_CODE").toString()); item.insert("cardSerial", query.value("CARD_SERIAL").toString()); item.insert("deptName", query.value("DEPT_NAME").toString()); item.insert("photo", query.value("PHOTO").toString()); item.insert("ts", query.value("TS").toString()); result.append(item); } LOG(DEBUG) << QString("查询PERSON表的所有记录[%1]").arg(result.size()).toStdString(); return result; } QVariantMap PersonDao::findRecordById(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT ID, VALID, NAME, PERSON_CODE, CARD_SERIAL, DEPT_NAME, PHOTO, TS FROM WCR_PERSON WHERE VALID = 1 AND ID = '%1'").arg(id); // 执行查询 query.exec(sql); // 返回结果 QVariantMap result; if (query.next()) { result.insert("id", query.value("ID").toString()); result.insert("valid", query.value("VALID").toUInt()); result.insert("name", query.value("NAME").toString()); result.insert("personCode", query.value("PERSON_CODE").toString()); result.insert("cardSerial", query.value("CARD_SERIAL").toString()); result.insert("deptName", query.value("DEPT_NAME").toString()); result.insert("photo", query.value("PHOTO").toString()); result.insert("ts", query.value("TS").toString()); } LOG(DEBUG) << QString("根据id查询PERSON表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } QVariantMap findRecordByIdWithoutValid(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT ID, VALID, NAME, PERSON_CODE, CARD_SERIAL, DEPT_NAME, PHOTO, TS FROM WCR_PERSON WHERE ID = '%1'").arg(id); // 执行查询 query.exec(sql); // 返回结果 QVariantMap result; if (query.next()) { result.insert("id", query.value("ID").toString()); result.insert("valid", query.value("VALID").toUInt()); result.insert("name", query.value("NAME").toString()); result.insert("personCode", query.value("PERSON_CODE").toString()); result.insert("cardSerial", query.value("CARD_SERIAL").toString()); result.insert("deptName", query.value("DEPT_NAME").toString()); result.insert("photo", query.value("PHOTO").toString()); result.insert("ts", query.value("TS").toString()); } LOG(DEBUG) << QString("根据id查询PERSON表的记录[含已删除][id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } QVector<QVariantMap> PersonDao::findRecordsByProperty(QString properName, QVariant properValue) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT ID, VALID, NAME, PERSON_CODE, CARD_SERIAL, DEPT_NAME, PHOTO, TS FROM WCR_PERSON WHERE VALID = 1 AND %1 = '%2'"; sql = sql.arg(properName).arg(properValue.toString()); // 执行查询 query.exec(sql); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("id", query.value("ID").toString()); item.insert("valid", query.value("VALID").toUInt()); item.insert("name", query.value("NAME").toString()); item.insert("personCode", query.value("PERSON_CODE").toString()); item.insert("cardSerial", query.value("CARD_SERIAL").toString()); item.insert("deptName", query.value("DEPT_NAME").toString()); item.insert("photo", query.value("PHOTO").toString()); item.insert("ts", query.value("TS").toString()); result.append(item); } LOG(DEBUG) << QString("根据属性值查询PERSON表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString(); return result; } QString PersonDao::save(QVariantMap object) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); qulonglong id = ConnectionManager::getInstance()->generateId(); // INSERT语句 QString sql = QString("INSERT INTO WCR_PERSON " "(ID, VALID, NAME, PERSON_CODE, CARD_SERIAL, DEPT_NAME, PHOTO, TS) " "VALUES ('%1', 1, '%2', '%3', '%4', '%5', '%6', '%7')") .arg(id) .arg(object.value("name").toString()) .arg(object.value("personCode").toString()) .arg(object.value("cardSerial").toString()) .arg(object.value("deptName").toString()) .arg(object.value("photo").toString()) .arg(object.value("ts").toString()); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行插入 bool success = query.exec(sql); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 if (success == true) { LOG(DEBUG) << QString("保存PERSON记录成功[ID = %1][%2]").arg(id).arg(sql).toStdString(); return QString("%1").arg(id); } else { return "-1"; } } bool PersonDao::edit(QVariantMap newObject, QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // UPDATE语句 QString sql = QString("UPDATE PERSON SET TS = '%1'").arg(newObject.value("ts").toString()); if (newObject.contains("name")) { sql.append(QString(", NAME = '%1'").arg(newObject.value("name").toString())); } if (newObject.contains("personCode")) { sql.append(QString(", PERSON_CODE = '%1'").arg(newObject.value("personCode").toString())); } if (newObject.contains("cardSerial")) { sql.append(QString(", CARD_SERIAL = '%1'").arg(newObject.value("cardSerial").toString())); } if (newObject.contains("deptName")) { sql.append(QString(", DEPT_NAME = '%1'").arg(newObject.value("deptName").toString())); } if (newObject.contains("photo")) { sql.append(QString(", PHOTO = '%1'").arg(newObject.value("photo").toString())); } sql.append(QString(" WHERE ID = '%1'").arg(id)); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行更新 bool success = query.exec(sql); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); LOG(DEBUG) << QString("编辑人员[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; } bool PersonDao::dele(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); qint64 ts = QDateTime::currentDateTime().toMSecsSinceEpoch(); // UPDATE语句 QString sql = QString("UPDATE WCR_PERSON SET TS = '%1', VALID = '%1' WHERE ID = '%2'") .arg(ts).arg(id); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行更新 bool success = query.exec(sql); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); LOG(DEBUG) << QString("删除人员PERSON[ID=%1][%2]").arg(id).arg(sql).toStdString(); // 返回结果 return success; }