From b3a8f07c53c479051e427830379779cb56e87736 Mon Sep 17 00:00:00 2001
From: pans <pansen626@sina.com>
Date: 星期六, 30 三月 2019 12:06:17 +0800
Subject: [PATCH] fix bug
---
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp | 303 +++++++++++++++++++++++++++++---------------------
1 files changed, 176 insertions(+), 127 deletions(-)
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index 8b8a3e1..cba8280 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
@@ -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,37 @@
return false;
}
}
-bool LDBTool::updateCamDevSnapshot(const QString& strIp,const QString& imgUrl)
-{
+
+bool LDBTool::updateCamDevSnapshotbyID(const QString &strID, const QString &imgUrl) {
+ QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+ QSqlTableModel pModel(NULL, m_db);
+ pModel.setTable("cam_dev");
+ pModel.setFilter(
+ QObject::tr("cam_dev_id = '%1'").arg(strID));
+ 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;
+ }
+}
+
+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 +497,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 +540,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 +558,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 +2463,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 +2520,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 +2605,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,75 +2677,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