Newer
Older
AppendIrisCodeUtils / dao / IrisDataDao.cpp
#ifdef _MSC_VER
#pragma execution_character_set("utf-8")    // Qt VS 中文兼容(UTF-8)
#endif

#include "IrisDataDao.h"

IrisDataDao::IrisDataDao(QObject *parent) : BaseDao(parent)
{

}

QVector<QVariantMap> IrisDataDao::findAllRecord()
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // 查询语句
    QString sql = "SELECT * FROM IRIS_DATA";
    query.prepare(sql);

    // 执行查询
    query.exec();

    // 返回结果
    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("id_card_no", query.value("id_card_no").toString());
        item.insert("left_iris_code1", query.value("left_iris_code1"));
        item.insert("left_iris_code2", query.value("left_iris_code2"));
        item.insert("left_iris_code3", query.value("left_iris_code3"));
        item.insert("right_iris_code1", query.value("right_iris_code1"));
        item.insert("right_iris_code2", query.value("right_iris_code2"));
        item.insert("right_iris_code3", query.value("right_iris_code3"));

        result.append(item);
    }

//    LOG_DEBUG(QString("查询IRIS_DATA表的所有记录[结果数:%1]").arg(result.size()).toStdString());
    return result;
}

QVariantMap IrisDataDao::findRecordById(QString id)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // 查询语句
    QString sql = QString("SELECT * FROM IRIS_DATA WHERE ID = :id");
    query.prepare(sql);
    query.bindValue(":id", id);

    // 执行查询
    query.exec();

    // 返回结果
    QVariantMap result;

    // 获取结果
    if (query.next())
    {
        result.insert("id", query.value("id").toString());
        result.insert("person_id", query.value("person_id").toLongLong());
        result.insert("id_card_no", query.value("id_card_no").toString());
        result.insert("left_iris_code1", query.value("left_iris_code1"));
        result.insert("left_iris_code2", query.value("left_iris_code2"));
        result.insert("left_iris_code3", query.value("left_iris_code3"));
        result.insert("right_iris_code1", query.value("right_iris_code1"));
        result.insert("right_iris_code2", query.value("right_iris_code2"));
        result.insert("right_iris_code3", query.value("right_iris_code3"));
    }

//    LOG_DEBUG(QString("根据id查询IRIS_DATA表的记录[id=%1]").arg(id).toStdString());
    return result;
}

QVariantMap IrisDataDao::findRecordByPersonId(QString personId)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // 查询语句
    QString sql = QString("SELECT * FROM IRIS_DATA WHERE PERSON_ID = :personId");
    query.prepare(sql);
    query.bindValue(":personId", personId);

    // 执行查询
    query.exec();

    // 返回结果
    QVariantMap result;

    if (query.next())
    {
        result.insert("id", query.value("id").toString());
        result.insert("person_id", query.value("person_id").toLongLong());
        result.insert("id_card_no", query.value("id_card_no").toString());
        result.insert("left_iris_code1", query.value("left_iris_code1"));
        result.insert("left_iris_code2", query.value("left_iris_code2"));
        result.insert("left_iris_code3", query.value("left_iris_code3"));
        result.insert("right_iris_code1", query.value("right_iris_code1"));
        result.insert("right_iris_code2", query.value("right_iris_code2"));
        result.insert("right_iris_code3", query.value("right_iris_code3"));
    }

//    LOG_TRACE(QString("根据personId查询IRIS_DATA表的记录[personId=%1]").arg(personId).toStdString());
    return result;
}

QString IrisDataDao::findIrisIdByPersonId(QString personId)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // 查询语句
    QString sql = QString("SELECT ID FROM IRIS_DATA WHERE PERSON_ID = :personId");
    query.prepare(sql);
    query.bindValue(":personId", personId);

    // 执行查询
    query.exec();

    // 返回结果
    QString existedId;

    // 遍历查询结果
    if (query.next()) {
        existedId = query.value("id").toString();
    }

    return existedId;
}


QString IrisDataDao::save(QVariantMap object)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    qulonglong id;
    if (object.contains("id") == true) {
        id = object.value("id").toULongLong();
    } else {
        id = ConnectionManager::getInstance()->generateId();
    }

    // INSERT语句
    QString sql = QString("INSERT INTO IRIS_DATA (ID, PERSON_ID, ID_CARD_NO, LEFT_IRIS_CODE1, RIGHT_IRIS_CODE1) VALUES (:id, :personId, :idCardNo, :left1, :right1)");

    query.prepare(sql);
    query.bindValue(":id", id);
    query.bindValue(":personId", object.value("person_id").toString());
    query.bindValue(":idCardNo", object.value("id_card_no").toString());
    query.bindValue(":left1", object.value("left_iris_code1"));
    query.bindValue(":right1", object.value("right_iris_code1"));

    // 开启事务
    ConnectionManager::getInstance()->getConnection().transaction();

    // 执行插入
    bool success = query.exec();

//    LOG_DEBUG(QString("保存虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString());
    qDebug() << QString("保存虹膜特征值[%1][id=%2]").arg(success).arg(id);

    // 结束事务
    ConnectionManager::getInstance()->getConnection().commit();

    // 返回结果
    if (success == true)
    {
        return QString("%1").arg(id);
    }
    else
    {
        return "-1";
    }
}

bool IrisDataDao::edit(QVariantMap newObject, QString id)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // UPDATE语句
    if (!newObject.contains("left_iris_code1") || !newObject.contains("right_iris_code1")){
        return false;
    }
    QString sql = QString("UPDATE IRIS_DATA SET LEFT_IRIS_CODE1 = :left1, RIGHT_IRIS_CODE1 = :right1 WHERE ID = :id");
    query.prepare(sql);
    query.bindValue(":id", id);
    query.bindValue(":left1", newObject.value("left_iris_code1"));
    query.bindValue(":right1", newObject.value("right_iris_code1"));

    // 开启事务
    ConnectionManager::getInstance()->getConnection().transaction();

    // 执行更新
    bool success = query.exec();

//    LOG_DEBUG(QString("编辑虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString());

    // 结束事务
    ConnectionManager::getInstance()->getConnection().commit();

    // 返回结果
    return success;
}


bool IrisDataDao::dele(QString id)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    QString sql = QString("DELETE FROM IRIS_DATA WHERE ID = :id");
    query.prepare(sql);
    query.bindValue(":id", id);

    // 开启事务
    ConnectionManager::getInstance()->getConnection().transaction();

    // 执行更新
    bool success = query.exec();

//    LOG_DEBUG(QString("删除虹膜特征值[%1][id=%2]").arg(success).arg(id).toStdString());

    // 结束事务
    ConnectionManager::getInstance()->getConnection().commit();

    // 返回结果
    return success;
}