From cdfb8eb2a956d25d688033be735f4741b2ab58bd Mon Sep 17 00:00:00 2001
From: xuxiuxi <554325746@qq.com>
Date: 星期五, 15 三月 2019 09:48:42 +0800
Subject: [PATCH] Merge branch 'yw.1.2.fixbug' of http://192.168.1.226:10010/r/development/c++ into yw.1.2.fixbug

---
 QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp |  324 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 204 insertions(+), 120 deletions(-)

diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index dd8ba1c..3e4f741 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/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
 
@@ -356,11 +357,23 @@
     pModel_cam.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
     pModel_cam.select();
 
+//    QSqlTableModel pModel_sdk(NULL, m_db);
+//    pModel_sdk.setTable("cam_sdk");
+//    pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
+//    pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+//    pModel_sdk.select();
+
     QSqlTableModel pModel_sdk(NULL, m_db);
-    pModel_sdk.setTable("cam_sdk");
-    pModel_sdk.setFilter(QObject::tr("cam_dev_id = '%1'").arg(strCamId));
+    pModel_sdk.setTable("sdk_rule");
+    pModel_sdk.setFilter(QObject::tr("cam_id = '%1'").arg(strCamId));
     pModel_sdk.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
     pModel_sdk.select();
+
+    QSqlTableModel pModel_week(NULL, m_db);
+    pModel_week.setTable("rule_week");
+    pModel_week.setFilter(QObject::tr("camera_id = '%1'").arg(strCamId));
+    pModel_week.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+    pModel_week.select();
 
     int rowCount_cam = pModel_cam.rowCount();
     if (rowCount_cam >= 1) {
@@ -376,17 +389,25 @@
         }
     }
 
+    int rowCount_week = pModel_week.rowCount();
+    if (rowCount_week >= 1) {
+        for (int i = 0; i < rowCount_week; i++) {
+            pModel_week.removeRow(i);//TODO
+        }
+    }
+
     m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
 
     if (pModel_cam.submitAll() && \
-        pModel_sdk.submitAll()) {
+        pModel_sdk.submitAll() && pModel_week.submitAll()) {
         m_db.commit();//鎻愪氦
         return true;
     } else {
         m_db.rollback();//鍥炴粴
         ERR("deleteLDeviceTable err ,Database Error: " \
  << pModel_cam.lastError().text().toStdString() \
- << pModel_sdk.lastError().text().toStdString());
+ << pModel_sdk.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;
     }
@@ -434,6 +455,35 @@
     }
 }
 
+bool LDBTool::updateCamDevSnapshot(const QString &strIp, const QString &imgUrl) {
+    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+    QSqlTableModel pModel(NULL, m_db);
+    pModel.setTable("cam_dev");
+    pModel.setFilter(
+        QObject::tr("ip = '%1'").arg(strIp));
+    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+    pModel.select();
+
+    QSqlRecord rec = pModel.record(0);
+    rec.setValue("reserved", imgUrl);
+
+    int rowCount = pModel.rowCount();
+    if (rowCount > 0) {
+        pModel.setRecord(0, rec);//TODO
+    }
+
+    m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
+
+    if (pModel.submitAll()) {
+        m_db.commit();//鎻愪氦
+        return true;
+    } 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");
@@ -451,7 +501,7 @@
     std::list<Record_Cam_Dev> lst;
     QSqlTableModel pModel(NULL, m_db);
     pModel.setTable("cam_dev");
-    pModel.setFilter(QObject::tr("cam_dev_id != '' and cam_dev_id is not null"));
+    pModel.setFilter(QObject::tr("cam_dev_id != '' and cam_dev_id is not null "));
     pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
     pModel.select();
 
@@ -479,6 +529,19 @@
     return lst;
 }
 
+bool LDBTool::searchCamDevByCamId(QString strCamId) {
+    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+    std::list<Record_Cam_Dev> lst;
+    QSqlTableModel pModel(NULL, m_db);
+    pModel.setTable("cam_dev");
+    pModel.setFilter(QObject::tr("cam_dev_id ='%1' and cam_dev_id != '' and cam_dev_id is not null").arg(strCamId));
+    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+    pModel.select();
+
+    int rowCount = pModel.rowCount();
+
+    return rowCount > 0;
+}
 
 //chn==========================
 ///
@@ -2370,7 +2433,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");
@@ -2427,17 +2490,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) {
@@ -2515,76 +2575,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");
@@ -2595,75 +2647,107 @@
     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);
     }
 
     return ruleMap;
 }
+
+
+/**
+ * type 0 rtsp, 1 gb28181
+ */
+std::list<Record_Cam_Dev> LDBTool::searchCamDevTableByType(int type) {
+    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+    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.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+    pModel.select();
+
+    int rowCount = pModel.rowCount();
+    if (rowCount > 0) {
+        for (int i = 0; i < rowCount; ++i) {
+            Record_Cam_Dev lChannelRec;
+            QSqlRecord rec = pModel.record(i);
+            lChannelRec.n_id = rec.value("id").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();
+            lChannelRec.str_longitude = rec.value("longitude").toString();
+            lChannelRec.str_latitude = rec.value("latitude").toString();
+            lChannelRec.str_ip = rec.value("ip").toString();
+            lChannelRec.n_port = rec.value("port").toInt();
+            lChannelRec.str_username = rec.value("username").toString();
+            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);
+        }
+    }
+
+    return lst;
+}
\ No newline at end of file

--
Gitblit v1.8.0