From 17675f1c6447b6e014b520608ce6d5f1f2e9707a Mon Sep 17 00:00:00 2001
From: xuxiuxi <554325746@qq.com>
Date: 星期一, 04 三月 2019 16:28:42 +0800
Subject: [PATCH] add models, daos and controllers for tables.

---
 QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 106 insertions(+), 4 deletions(-)

diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index dd8ba1c..42f22eb 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -356,11 +356,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 +388,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;
     }
@@ -433,7 +453,39 @@
         return false;
     }
 }
+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");
@@ -478,7 +530,20 @@
 
     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==========================
 ///
@@ -2667,3 +2732,40 @@
 
     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();
+            lst.push_back(lChannelRec);
+        }
+    }
+
+    return lst;
+}
\ No newline at end of file

--
Gitblit v1.8.0