#include "RecordsDao.h" RecordsDao::RecordsDao(QObject *parent) : BaseDao(parent) { } QVector<QVariantMap> RecordsDao::findAllRecord() { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT PERSON_ID, TS FROM WCR_RECORDS ORDER BY TS DESC"; // 执行查询 query.exec(sql); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("person_id", query.value("PERSON_ID").toString()); item.insert("ts", query.value("TS").toString()); result.append(item); } LOG(DEBUG) << QString("查询RECORDS表的所有记录[%1]").arg(result.size()).toStdString(); return result; } QVector<QVariantMap> RecordsDao::findLatestRecords(int count) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT PERSON_ID, TS FROM WCR_RECORDS ORDER BY TS DESC LIMIT %1"; sql = sql.arg(count); // 执行查询 query.exec(sql); // 返回结果 QVector<QVariantMap> result; // 遍历查询结果 while (query.next()) { QVariantMap item; item.insert("person_id", query.value("PERSON_ID").toString()); item.insert("ts", query.value("TS").toString()); result.append(item); } LOG(DEBUG) << QString("查询RECORDS表的最近[%1]条记录[%2]").arg(count).arg(result.size()).toStdString(); return result; } QVariantMap RecordsDao::findRecordById(QString id) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = QString("SELECT ID, PERSON_ID, TS, SYNCHED FROM WCR_RECORDS WHERE ID = '%1'").arg(id); // 执行查询 query.exec(sql); // 返回结果 QVariantMap result; if (query.next()) { result.insert("id", query.value("ID").toString()); result.insert("person_id", query.value("PERSON_ID").toString()); result.insert("ts", query.value("TS").toString()); result.insert("synched", query.value("SYNCHED").toUInt()); } LOG(DEBUG) << QString("根据id查询RECORDS表的记录[id=%1][%2]").arg(id).arg(sql).toStdString(); return result; } QVector<QVariantMap> RecordsDao::findRecordsByProperty(QString properName, QVariant properValue) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); // 查询语句 QString sql = "SELECT ID, PERSON_ID, TS, SYNCHED FROM WCR_RECORDS WHERE %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("person_id", query.value("PERSON_ID").toString()); item.insert("ts", query.value("TS").toString()); item.insert("synched", query.value("SYNCHED").toUInt()); result.append(item); } LOG(DEBUG) << sql.toStdString(); LOG(DEBUG) << QString("根据属性值查询RECORDS表的记录[%1]").arg(result.size()).toStdString(); return result; } QString RecordsDao::save(QVariantMap object) { // 新建查询 QSqlQuery query(ConnectionManager::getInstance()->getConnection()); qulonglong id = ConnectionManager::getInstance()->generateId(); // INSERT语句 QString sql = QString("INSERT INTO WCR_RECORDS (ID, PERSON_ID, TS, SYNCHED) VALUES ('%1', '%2', '%3', %4)") .arg(id).arg(object.value("person_id").toString()) .arg(object.value("ts").toString()) .arg(object.value("synched").toUInt()); query.prepare(sql); LOG(DEBUG) << sql.toStdString(); // 开启事务 ConnectionManager::getInstance()->getConnection().transaction(); // 执行插入 bool success = query.exec(); // 结束事务 ConnectionManager::getInstance()->getConnection().commit(); // 返回结果 if (success == true) { return QString("%1").arg(id); } else { return "-1"; } } bool RecordsDao::edit(QVariantMap newObject, QString id) { return false; } bool RecordsDao::dele(QString id) { return false; }