From abd9036f024a77d22b47a108bc88b27b9732e3c5 Mon Sep 17 00:00:00 2001
From: zhangjixing <775834166@qq.com>
Date: 星期二, 15 一月 2019 17:27:27 +0800
Subject: [PATCH]
---
QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp | 295 ++++++++++++++++++++++++++--------------------------------
1 files changed, 134 insertions(+), 161 deletions(-)
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index f2e61a4..acabafb 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -478,7 +478,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==========================
///
@@ -2370,7 +2383,7 @@
//config 淇敼瑁佸壀瑙嗛鏃堕暱
-bool LDBTool::updateConfigTableByCutDuration(int n_cut_max_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");
@@ -2379,7 +2392,7 @@
QSqlRecord rec = pModel.record(0);
rec.setValue("cut_max_duration", n_cut_max_duration);
-
+ rec.setValue("cut_min_duration", n_cut_min_duration);
while (pModel.canFetchMore()) {
pModel.fetchMore();
}
@@ -2423,32 +2436,22 @@
lRec.str_es_pic_ip = rec.value("es_pic_ip").toString();
lRec.n_es_pic_port = rec.value("es_pic_port").toInt();
lRec.n_cut_max_duration = rec.value("cut_max_duration").toInt();
- lRec.dev_id = QString::fromStdString(appConfig.getStringProperty("DEV_ID"));
+ lRec.n_cut_min_duration = rec.value("cut_min_duration").toInt();
lRec.dev_name = rec.value("dev_name").toString();
}
-
+ lRec.dev_id = QString::fromStdString(appConfig.getStringProperty("DEV_ID"));
+ if(lRec.n_cut_max_duration == 0)
+ {
+ lRec.n_cut_max_duration = 20;
+ }
+ if(lRec.n_cut_min_duration == 0)
+ {
+ lRec.n_cut_min_duration = 4;
+ }
return lRec;
}
-//config 鏌ヨ瑁佸壀瑙嗛鏃堕暱
-int LDBTool::searchConfigTableWithinCutDuration(void) {
- int cut_max_duration = 5;//榛樿5鍒嗛挓
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("config");
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
- int rowCount = pModel.rowCount();
- if (rowCount > 0) {
- QSqlRecord rec = pModel.record(0);
- if (cut_max_duration != 0) {
- cut_max_duration = rec.value("cut_max_duration").toInt();
- }
- }
-
- return cut_max_duration;
-}
bool LDBTool::insertRecordVedioPath(QString pathKey, QString filePath) {
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
@@ -2523,55 +2526,33 @@
return false;
}
}
- bool LDBTool::insertPerimeterRule(ActRule actRule)
+
+
+
+
+ bool LDBTool::updateCameraWeekRule(const LActRuleWeekRecord& weekRule)
{
QMutexLocker mutexLocker(&m_mutexVisit);//TODO
QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_perimeter");
+ 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
-
- QSqlRecord rec = pModel.record();
- rec.setGenerated("rule_id", false);
- rec.setValue("camera_id", actRule.nCamId);
- rec.setValue("sensitivity", actRule.fSensitivity);
- rec.setValue("delay",actRule.nTriggerDelay);
- rec.setValue("tolerance",actRule.nTriggertolerance);
- rec.setValue("show_pepole_num",actRule.nAlarmPeopleNum);
-
- pModel.insertRecord(-1, rec);//TODO
-
- m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
-
- if (pModel.submitAll()) {
- m_db.commit();//鎻愪氦
- return true;
- } else {
- m_db.rollback();//鍥炴粴
- ERR("insertCameraRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
-
- return false;
- }
- }
- bool LDBTool::updatePerimeterRuleByCamId(ActRule actRule)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_perimeter");
- pModel.setFilter(QObject::tr("camera_id = '%1' ").arg(actRule.nCamId));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
-
-
+ pModel.select();
QSqlRecord rec = pModel.record(0);
- rec.setValue("camera_id", actRule.nCamId);
- rec.setValue("sensitivity", actRule.fSensitivity);
- rec.setValue("delay",actRule.nTriggerDelay);
- rec.setValue("tolerance",actRule.nTriggertolerance);
- rec.setValue("show_pepole_num",actRule.nAlarmPeopleNum);
+ //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) {
+ if (rowCount == 0)
+ {
pModel.insertRecord(-1, rec);
- } else if (rowCount > 0) {
+ }
+ else if (rowCount > 0)
+ {
pModel.setRecord(0, rec);//TODO
}
@@ -2582,69 +2563,18 @@
return true;
} else {
m_db.rollback();//鍥炴粴
- ERR("updateCameraRuleByCamId ,pModel_load Error: " << pModel.lastError().text().toStdString());
- return false;
- }
-
- }
- ActRule LDBTool::searchPerimeterRuleByCamId(int camId)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_perimeter");
- pModel.setFilter(QObject::tr("camera_id = '%1' ").arg(camId));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
-
- ActRule rule;
- int rowCount = pModel.rowCount();
- if (rowCount > 0) {
- QSqlRecord rec = pModel.record(0);
- rule.nTriggerDelay=rec.value("delay").toInt();
- rule.nTriggertolerance=rec.value("tolerance").toInt();
- rule.strAreas=rec.value("area_points").toString();
- rule.nAlarmPeopleNum=rec.value("show_people_sum").toInt();
- rule.fSensitivity=rec.value("sensitivity").toFloat();
- }
-
- return rule;
- }
-
- bool LDBTool::insertCameraWeekRule(LActRuleWeekRecord weekRule)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_week");
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
-
- QSqlRecord rec = pModel.record();
- rec.setGenerated("id", false);
- rec.setValue("camera_id",weekRule.m_nCamId);
- rec.setValue("type", weekRule.m_nType);
- rec.setValue("start_time", weekRule.m_strBegin);
- rec.setValue("end_time",weekRule.m_strEnd);
-
- pModel.insertRecord(-1, rec);//TODO
-
- m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
-
- if (pModel.submitAll()) {
- m_db.commit();//鎻愪氦
- return true;
- } else {
- m_db.rollback();//鍥炴粴
- ERR("insertCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
+ ERR("updateCameraWeekRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
return false;
}
}
- QVector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(int camId)
+ std::vector<LActRuleWeekRecord> LDBTool::searchCameraWeekRuleByCamId(const QString& camId,const int& sdkType)
{
- QVector<LActRuleWeekRecord> vecWeek;
+ 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' ").arg(camId));
+ pModel.setFilter(QObject::tr("camera_id = '%1' and sdk_type='%2'").arg(camId).arg(sdkType));
pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
pModel.select();
@@ -2653,57 +2583,100 @@
{
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").toString();
- lActRuleWeekRec.m_strEnd = rec.value("end").toString();
+ 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;
}
- ActRule LDBTool::searchActRuleByCamId(int camId)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_act");
- pModel.setFilter(QObject::tr("cam_id = '%1' ").arg(camId));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
- ActRule rule;
- int rowCount = pModel.rowCount();
- if (rowCount > 0) {
- QSqlRecord rec = pModel.record(0);
- rule.nTriggertolerance=rec.value("tolerance").toInt();
- rule.nTriggerDelay=rec.value("delay").toInt();
- rule.strAreas=rec.value("act_left_area").toString();
- rule.strLine=rec.value("act_left_line").toString();
- rule.strExAreas=rec.value("act_right_area").toString();
- rule.strExLine=rec.value("act_right_line").toString();
- rule.fSensitivity=rec.value("sensitivity").toFloat();
- }
- return rule;
- }
- ActRule LDBTool::searchCrowdRuleByCamId(int camId)
- {
- QMutexLocker mutexLocker(&m_mutexVisit);//TODO
- QSqlTableModel pModel(NULL, m_db);
- pModel.setTable("rule_crowd");
- pModel.setFilter(QObject::tr("camera_id = '%1' ").arg(camId));
- pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
- pModel.select();
+bool LDBTool::updateSdkRule(const SdkRule& sdkRule)
+{
+ QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+ QSqlTableModel pModel(NULL, m_db);
+ pModel.setTable("sdk_rule");
+ pModel.setFilter(QObject::tr("cam_id = '%1' and sdk_type = '%2' ").arg(sdkRule.strCamId).arg(sdkRule.nSdkType));
+ pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+ pModel.select();
+ QSqlRecord rec = pModel.record(0);
+ 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);
- ActRule rule;
- int rowCount = pModel.rowCount();
- if (rowCount > 0) {
- QSqlRecord rec = pModel.record(0);
- rule.nTriggertolerance=rec.value("tolerance").toInt();
- rule.nTriggerDelay=rec.value("delay").toInt();
- rule.strAreas=rec.value("area_points").toString();
- rule.nAlarmPeopleNum=rec.value("alarm_people_num").toInt();
- }
+ int rowCount = pModel.rowCount();
+ if (rowCount == 0)
+ {
+ pModel.insertRecord(-1, rec);
+ }
+ else if (rowCount > 0)
+ {
+ pModel.setRecord(0, rec);//TODO
+ }
- return rule;
- }
+ m_db.transaction();//寮�濮嬩簨鍔℃搷浣�
+
+ if (pModel.submitAll())
+ {
+ m_db.commit();//鎻愪氦
+ return true;
+ }
+ else
+ {
+ m_db.rollback();//鍥炴粴
+ ERR("updateSdkRule ,pModel_load Error: " << pModel.lastError().text().toStdString());
+ return false;
+ }
+}
+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::vector<SdkRule> ruleVec;
+ int rowCount = pModel.rowCount();
+ 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;
+ //ruleVec.push_back(rule);
+ }
+
+ return ruleMap;
+}
--
Gitblit v1.8.0