派生自 development/c++

chenshijun
2019-03-15 684b55231257011c11caacc5ae72b0f0977c6114
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -332,6 +332,7 @@
    rec.setValue("password", channelRec.str_password);
    rec.setValue("brand", channelRec.str_brand);
    rec.setValue("reserved", channelRec.str_reserved);
    rec.setValue("type", channelRec.type);
    pModel.insertRecord(-1, rec);//TODO
@@ -406,7 +407,7 @@
        ERR("deleteLDeviceTable err ,Database Error: " \
 << pModel_cam.lastError().text().toStdString() \
 << pModel_sdk.lastError().text().toStdString() \
 << pModel_week.lastError().text().toStdString() );
 << pModel_week.lastError().text().toStdString());
        //        QMessageBox::warning(NULL,QObject::tr("deleteLDeviceTable"),QObject::tr("Database Error: %1").arg(pModel.lastError().text()));
        return false;
    }
@@ -453,8 +454,8 @@
        return false;
    }
}
bool LDBTool::updateCamDevSnapshot(const QString& strIp,const QString& imgUrl)
{
bool LDBTool::updateCamDevSnapshot(const QString &strIp, const QString &imgUrl) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("cam_dev");
@@ -467,25 +468,22 @@
    rec.setValue("reserved", imgUrl);
    int rowCount = pModel.rowCount();
    if (rowCount > 0)
    {
    if (rowCount > 0) {
        pModel.setRecord(0, rec);//TODO
    }
    m_db.transaction();//开始事务操作
    if (pModel.submitAll())
    {
    if (pModel.submitAll()) {
        m_db.commit();//提交
        return true;
    }
    else
    {
    } else {
        m_db.rollback();//回滚
        ERR("updateCamDevSnapshot err ,Database Error: " << pModel.lastError().text().toStdString());
        return false;
    }
}
int LDBTool::searchCamDevNumber(void) {
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("cam_dev");
@@ -513,6 +511,7 @@
            Record_Cam_Dev lChannelRec;
            QSqlRecord rec = pModel.record(i);
            lChannelRec.n_id = rec.value("id").toInt();
            lChannelRec.type = rec.value("type").toInt();
            lChannelRec.str_cam_dev_id = rec.value("cam_dev_id").toString();
            lChannelRec.str_name = rec.value("name").toString();
            lChannelRec.str_addr = rec.value("addr").toString();
@@ -530,8 +529,8 @@
    return lst;
}
bool LDBTool::searchCamDevByCamId(QString strCamId)
{
bool LDBTool::searchCamDevByCamId(QString strCamId) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    std::list<Record_Cam_Dev> lst;
    QSqlTableModel pModel(NULL, m_db);
@@ -2435,7 +2434,7 @@
//config 修改裁剪视频时长
bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_duration,int n_cut_min_duration) {
bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_duration, int n_cut_min_duration) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("config");
@@ -2492,17 +2491,14 @@
        lRec.dev_name = rec.value("dev_name").toString();
    }
    lRec.dev_id = QString::fromStdString(appConfig.getStringProperty("DEV_ID"));
    if(lRec.n_cut_max_duration == 0)
    {
    if (lRec.n_cut_max_duration == 0) {
        lRec.n_cut_max_duration = 20;
    }
    if(lRec.n_cut_min_duration == 0)
    {
    if (lRec.n_cut_min_duration == 0) {
        lRec.n_cut_min_duration = 4;
    }
    return lRec;
}
bool LDBTool::insertRecordVedioPath(QString pathKey, QString filePath) {
@@ -2580,76 +2576,68 @@
}
bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord &weekRule) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("rule_week");
    pModel.setFilter(QObject::tr("camera_id = '%1' and type='%2' and sdk_type='%3'").arg(weekRule.m_strCamId).arg(
        weekRule.m_nType).arg(weekRule.m_nSdkType));
    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
    pModel.select();
    QSqlRecord rec = pModel.record(0);
    //rec.setGenerated("id", false);
    rec.setValue("camera_id", weekRule.m_strCamId);
    rec.setValue("sdk_type", weekRule.m_nSdkType);
    rec.setValue("type", weekRule.m_nType);
    rec.setValue("begin_time", weekRule.m_strBegin);
    rec.setValue("end_time", weekRule.m_strEnd);
    int rowCount = pModel.rowCount();
    if (rowCount == 0) {
        pModel.insertRecord(-1, rec);
    } else if (rowCount > 0) {
        pModel.setRecord(0, rec);//TODO
    }
    m_db.transaction();//开始事务操作
    if (pModel.submitAll()) {
        m_db.commit();//提交
        return true;
    } else {
        m_db.rollback();//回滚
        ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
        return false;
    }
}
std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString &camId, const int &sdkType) {
    std::vector<LActRuleWeekRecord> vecWeek;
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("rule_week");
    pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
    pModel.select();
    int rowCount = pModel.rowCount();
    for (int i = 0; i < rowCount; ++i) {
        LActRuleWeekRecord lActRuleWeekRec;
        QSqlRecord rec = pModel.record(i);
        lActRuleWeekRec.m_nSdkType = rec.value("sdk_type").toInt();
        lActRuleWeekRec.m_nType = rec.value("type").toInt();
        lActRuleWeekRec.m_strBegin = rec.value("begin_time").toString();
        lActRuleWeekRec.m_strEnd = rec.value("end_time").toString();
        lActRuleWeekRec.m_strCamId = rec.value("camera_id").toString();
        vecWeek.push_back(lActRuleWeekRec);
    }
    return vecWeek;
}
 bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord& weekRule)
 {
     QMutexLocker mutexLocker(&m_mutexVisit);//TODO
     QSqlTableModel pModel(NULL, m_db);
     pModel.setTable("rule_week");
     pModel.setFilter(QObject::tr("camera_id = '%1' and type='%2' and sdk_type='%3'").arg(weekRule.m_strCamId).arg(weekRule.m_nType).arg(weekRule.m_nSdkType));
     pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
     pModel.select();
     QSqlRecord rec = pModel.record(0);
     //rec.setGenerated("id", false);
     rec.setValue("camera_id",weekRule.m_strCamId);
     rec.setValue("sdk_type",weekRule.m_nSdkType);
     rec.setValue("type", weekRule.m_nType);
     rec.setValue("begin_time", weekRule.m_strBegin);
     rec.setValue("end_time",weekRule.m_strEnd);
     int rowCount = pModel.rowCount();
     if (rowCount == 0)
     {
         pModel.insertRecord(-1, rec);
     }
     else if (rowCount > 0)
     {
         pModel.setRecord(0, rec);//TODO
     }
     m_db.transaction();//开始事务操作
     if (pModel.submitAll()) {
         m_db.commit();//提交
         return true;
     } else {
         m_db.rollback();//回滚
         ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
         return false;
     }
 }
 std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString& camId,const int& sdkType)
 {
     std::vector<LActRuleWeekRecord> vecWeek;
     QMutexLocker mutexLocker(&m_mutexVisit);//TODO
     QSqlTableModel pModel(NULL, m_db);
     pModel.setTable("rule_week");
     pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
     pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
     pModel.select();
     int rowCount = pModel.rowCount();
     for(int i = 0;i < rowCount;++i)
     {
         LActRuleWeekRecord lActRuleWeekRec;
         QSqlRecord rec = pModel.record(i);
         lActRuleWeekRec.m_nSdkType = rec.value("sdk_type").toInt();
         lActRuleWeekRec.m_nType = rec.value("type").toInt();
         lActRuleWeekRec.m_strBegin = rec.value("begin_time").toString();
         lActRuleWeekRec.m_strEnd = rec.value("end_time").toString();
         lActRuleWeekRec.m_strCamId=rec.value("camera_id").toString();
         vecWeek.push_back(lActRuleWeekRec);
     }
     return vecWeek;
 }
bool LDBTool::updateSdkRule(const SdkRule& sdkRule)
{
bool LDBTool::updateSdkRule(const SdkRule &sdkRule) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("sdk_rule");
@@ -2660,73 +2648,66 @@
    rec.setValue("cam_id", sdkRule.strCamId);
    rec.setValue("sdk_type", sdkRule.nSdkType);
    rec.setValue("area", sdkRule.strAreas);
    rec.setValue("ex_area",sdkRule.strExAreas);
    rec.setValue("line",sdkRule.strLine);
    rec.setValue("ex_line",sdkRule.strExLine);
    rec.setValue("alarm_delay",sdkRule.nTriggerDelay);
    rec.setValue("tolerance",sdkRule.nTriggerTolerance);
    rec.setValue("alarm_num_upper",sdkRule.nAlarmNumUpperLimit);
    rec.setValue("alarm_num_lower",sdkRule.nAlarmNumLowerLimit);
    rec.setValue("broadcast_area",sdkRule.strBroadcast);
    rec.setValue("is_run",sdkRule.nIsRun);
    rec.setValue("img_threshold",sdkRule.nThreshold);
    rec.setValue("img_quality",sdkRule.nQuality);
    rec.setValue("ex_area", sdkRule.strExAreas);
    rec.setValue("line", sdkRule.strLine);
    rec.setValue("ex_line", sdkRule.strExLine);
    rec.setValue("alarm_delay", sdkRule.nTriggerDelay);
    rec.setValue("tolerance", sdkRule.nTriggerTolerance);
    rec.setValue("alarm_num_upper", sdkRule.nAlarmNumUpperLimit);
    rec.setValue("alarm_num_lower", sdkRule.nAlarmNumLowerLimit);
    rec.setValue("broadcast_area", sdkRule.strBroadcast);
    rec.setValue("is_run", sdkRule.nIsRun);
    rec.setValue("img_threshold", sdkRule.nThreshold);
    rec.setValue("img_quality", sdkRule.nQuality);
    int rowCount = pModel.rowCount();
    if (rowCount == 0)
    {
    if (rowCount == 0) {
        pModel.insertRecord(-1, rec);
    }
    else if (rowCount > 0)
    {
    } else if (rowCount > 0) {
        pModel.setRecord(0, rec);//TODO
    }
    m_db.transaction();//开始事务操作
    if (pModel.submitAll())
    {
    if (pModel.submitAll()) {
        m_db.commit();//提交
        return true;
    }
    else
    {
    } else {
        m_db.rollback();//回滚
        ERR("updateSdkRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
        return false;
    }
}
SdkRuleMap LDBTool::searchSdkRuleByCamId(const QString& camId)
{
SdkRuleMap LDBTool::searchSdkRuleByCamId(const QString &camId) {
    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("sdk_rule");
    pModel.setFilter(QObject::tr("cam_id = '%1' ").arg(camId));
    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
    pModel.select();
    std::map<int,SdkRule> ruleMap;
    std::map<int, SdkRule> ruleMap;
    //std::vector<SdkRule> ruleVec;
    int rowCount = pModel.rowCount();
    for(int i=0;i<rowCount;++i)
    {
    for (int i = 0; i < rowCount; ++i) {
        SdkRule rule;
        QSqlRecord rec = pModel.record(i);
        rule.strCamId=rec.value("cam_id").toString();
        rule.strAreas=rec.value("area").toString();
        rule.strExAreas=rec.value("ex_area").toString();
        rule.strLine=rec.value("line").toString();
        rule.strExLine=rec.value("ex_line").toString();
        rule.nTriggerDelay=rec.value("alarm_delay").toInt();
        rule.nTriggerTolerance=rec.value("tolerance").toInt();
        rule.nQuality=rec.value("img_quality").toInt();
        rule.nThreshold=rec.value("img_threshold").toInt();
        rule.nAlarmNumUpperLimit=rec.value("alarm_num_upper").toInt();
        rule.nAlarmNumLowerLimit=rec.value("alarm_num_lower").toInt();
        rule.strBroadcast=rec.value("broadcast_area").toString();
        rule.nIsRun=rec.value("is_run").toInt();
        rule.nSdkType=rec.value("sdk_type").toInt();
        ruleMap[rule.nSdkType]=rule;
        rule.strCamId = rec.value("cam_id").toString();
        rule.strAreas = rec.value("area").toString();
        rule.strExAreas = rec.value("ex_area").toString();
        rule.strLine = rec.value("line").toString();
        rule.strExLine = rec.value("ex_line").toString();
        rule.nTriggerDelay = rec.value("alarm_delay").toInt();
        rule.nTriggerTolerance = rec.value("tolerance").toInt();
        rule.nQuality = rec.value("img_quality").toInt();
        rule.nThreshold = rec.value("img_threshold").toInt();
        rule.nAlarmNumUpperLimit = rec.value("alarm_num_upper").toInt();
        rule.nAlarmNumLowerLimit = rec.value("alarm_num_lower").toInt();
        rule.strBroadcast = rec.value("broadcast_area").toString();
        rule.nIsRun = rec.value("is_run").toInt();
        rule.nSdkType = rec.value("sdk_type").toInt();
        ruleMap[rule.nSdkType] = rule;
        //ruleVec.push_back(rule);
    }
@@ -2742,7 +2723,8 @@
    std::list<Record_Cam_Dev> lst;
    QSqlTableModel pModel(NULL, m_db);
    pModel.setTable("cam_dev");
    pModel.setFilter(QObject::tr((string("cam_dev_id != '' and cam_dev_id is not null and type='")+to_string(type)+"'").c_str()));
    pModel.setFilter(QObject::tr(
        (string("cam_dev_id != '' and cam_dev_id is not null and type='") + to_string(type) + "'").c_str()));
    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
    pModel.select();
@@ -2763,6 +2745,7 @@
            lChannelRec.str_password = rec.value("password").toString();
            lChannelRec.str_brand = rec.value("brand").toString();
            lChannelRec.str_reserved = rec.value("reserved").toString();
            lChannelRec.n_type = rec.value("type").toInt();
            lst.push_back(lChannelRec);
        }
    }