Newer
Older
CasicBioRecNew / dao / IrisDataImgDao.cpp
tanyue on 1 Feb 2023 6 KB 20230201 更新日志組件庫
#include "IrisDataImgDao.h"

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

}


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

    // 查询语句
    QString sql = "SELECT * FROM IRIS_DATA_IMAGE";

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

    // 返回结果
    QVector<QVariantMap> result;

    // 遍历查询结果
    while (query.next()) {
        QVariantMap item;

        item.insert("id", query.value("id").toString());
        result.append(item);
    }

//    LOG(DEBUG) << QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString();
    LOG_DEBUG(QString("查询IRIS_DATA_IMAGE表的所有记录[%1]").arg(result.size()).toStdString());
    return result;
}

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

    // 查询语句
    QString sql = QString("SELECT * FROM IRIS_DATA_IMAGE WHERE ID = %1").arg(id);

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

    // 返回结果
    QVariantMap result;

    // 获取结果集的大小
    query.last();
    int count = query.at() + 1;

    if (count >=1)
    {
        query.first();

        result.insert("id", query.value("id").toString());
        result.insert("person_id", query.value("person_id").toString());
        result.insert("left_image1", query.value("left_image1").toString());
        result.insert("left_image2", query.value("left_image2").toString());
        result.insert("left_image3", query.value("left_image3").toString());
        result.insert("right_image1", query.value("right_image1").toString());
        result.insert("right_image2", query.value("right_image2").toString());
        result.insert("right_image3", query.value("right_image3").toString());

    }

//    LOG(DEBUG) << QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString();
    LOG_DEBUG(QString("根据id查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(id).arg(sql).toStdString());
    return result;
}

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

    // 查询语句
    QString sql = QString("SELECT * FROM IRIS_DATA_IMAGE WHERE PERSON_ID = '%1'").arg(personId);

    // 执行查询
    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("left_image1", query.value("left_image1").toString());
        result.insert("right_image1", query.value("right_image1").toString());
    }

//    LOG(TRACE) << QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString();
    LOG_TRACE(QString("根据personId查询IRIS_DATA_IMAGE表的记录[personId=%1][%2]").arg(personId).arg(sql).toStdString());

    return result;
}

QVector<QVariantMap> IrisDataImgDao::findRecordsByProperty(QString properName, QVariant properValue)
{
    // 新建查询
    QSqlQuery query(ConnectionManager::getInstance()->getConnection());

    // 查询语句
    QString sql = "SELECT * FROM IRIS_DATA_IMAGE WHERE %1 = '%2'";
    sql = sql.arg(properName).arg(properValue.toString());

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

    // 获取结果集的大小
    int count = 0;

    // 返回结果
    QVector<QVariantMap> result;

    // 遍历查询结果
    while (query.next()) {
        QVariantMap item;

        count++;

        item.insert("id", query.value("id").toString());
        item.insert("person_id", query.value("person_id").toString());
        item.insert("left_image1", query.value("left_image1").toString());
        item.insert("left_image2", query.value("left_image2").toString());
        item.insert("left_image3", query.value("left_image3").toString());
        item.insert("right_image1", query.value("right_image1").toString());
        item.insert("right_image2", query.value("right_image2").toString());
        item.insert("right_image3", query.value("right_image3").toString());
        result.append(item);
    }

//    LOG(DEBUG) << QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString();
    LOG_DEBUG(QString("根据属性值查询IRIS_DATA_IMAGE表的记录[%1][%2]").arg(result.size()).arg(sql).toStdString());
    return result;
}

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

    qulonglong id = ConnectionManager::getInstance()->generateId();

    // INSERT语句
    QString sql = QString("INSERT INTO IRIS_DATA_IMAGE "
                  "(ID, PERSON_ID, LEFT_IMAGE1, RIGHT_IMAGE1) "
                  "VALUES ('%1', '%2', :leftImage1, :rightImage1)")
            .arg(id).arg(object.value("person_id").toString());

    query.prepare(sql);
    query.bindValue(":leftImage1", object.value("left_image1"));
    query.bindValue(":rightImage1", object.value("right_image1"));

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

    // 执行插入
    bool success = query.exec();
//    LOG(DEBUG) << QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString();
    LOG_DEBUG(QString("保存虹膜图片[%1][%2]").arg(success).arg(sql).toStdString());

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

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

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

    if(!newObject.contains("left_image1") && !newObject.contains("right_image1")) {
        return false;
    }

    // UPDATE语句
    QString sql = QString("UPDATE IRIS_DATA_IMAGE SET LEFT_IMAGE1 = :left1, RIGHT_IMAGE1 = :right1 WHERE ID = '%1'").arg(id);

    query.prepare(sql);
    query.bindValue(":left1", newObject.value("left_image1"));
    query.bindValue(":right1", newObject.value("right_image1"));

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

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

//    LOG(DEBUG) << QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString();
    LOG_DEBUG(QString("编辑虹膜图片[%1][%2]").arg(success).arg(sql).toStdString());

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

    // 返回结果
    return success;
}

bool IrisDataImgDao::dele(QString id)
{
    return false;
}