From 979bc003bce710bf300bc2bd87a8278585678763 Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期四, 07 三月 2019 14:47:14 +0800
Subject: [PATCH] GB28181集成完成。录像bug暂未解决,已注释
---
QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.cpp | 3 +
QiaoJiaSystem/StructureApp/PerimeterElement.cpp | 2
QiaoJiaSystem/DataManagerServer/CMakeLists.txt | 2
QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.cpp | 7 +++
QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h | 6 +++
syncDBTool/ErlangDbTool.cpp | 2
QiaoJiaSystem/VideoAnalysFromHC/main.cpp | 8 ++--
QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp | 5 +-
QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h | 60 +++++++++++++-----------------
QiaoJiaSystem/DataManagerServer/vss/dao/VssChannelTblDao.h | 7 +++
10 files changed, 57 insertions(+), 45 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/CMakeLists.txt b/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
index e36f449..641363f 100644
--- a/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
+++ b/QiaoJiaSystem/DataManagerServer/CMakeLists.txt
@@ -110,7 +110,7 @@
../LocalDBTool/SqliteFaceEncap.cpp
../../../BasicPlatForm/basic/db/sqlite/sqliteEncapsulation.cpp
../../../BasicPlatForm/basic/db/sqlite/sqliteEncapsulation.h
- )
+ vss/dao/BaseDao.cpp)
target_link_libraries(DataWebServer
glog
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.cpp b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.cpp
new file mode 100644
index 0000000..7246923
--- /dev/null
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.cpp
@@ -0,0 +1,3 @@
+#include "BaseDao.h"
+mysqlpp::Connection* BaseDao::conn = nullptr;
+QMutex BaseDao::m_mutexVisit;
\ No newline at end of file
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
index 3bb9da3..aaf3865 100644
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseDao.h
@@ -8,14 +8,17 @@
#include <iostream>
#include <mysql++.h>
#include <AppConfig.h>
+#include <QtCore/QMutex>
using namespace std;
-static mysqlpp::Connection *conn;
-
class BaseDao {
public:
- static mysqlpp::SimpleResult add(std::map<std::string, std::string> &columns, string tableName) {
+ static QMutex m_mutexVisit;
+private:
+ static mysqlpp::Connection* conn;
+public:
+ static mysqlpp::SimpleResult add(std::map<std::string, std::string>& columns, string tableName) {
initConnection();
mysqlpp::SimpleResult simpleResult;
try {
@@ -29,20 +32,17 @@
}
return simpleResult;
}
-
- static bool del(string tableName, std::map<std::string, std::string> &whereColumns) {
+ static bool del(string tableName, std::map<std::string, std::string>& whereColumns) {
initConnection();
string sql = "DELETE FROM " + tableName + " where 1=1 " + getWhereColumnNameValuePair(whereColumns);
mysqlpp::Query query = conn->query(sql);
bool ret = query.exec();
if (!ret) {
- cout << "error " << query.error() << endl;
+ cout << "error " <<query.error() << endl;
}
return ret;
}
-
- static bool update(std::map<std::string, std::string> &columns, string tableName,
- std::map<std::string, std::string> &whereColumns) {
+ static bool update(std::map<std::string, std::string>& columns, string tableName, std::map<std::string, std::string>& whereColumns) {
string updateSql = getUpdateSql(columns, tableName, whereColumns);
initConnection();
mysqlpp::Query query = conn->query(updateSql);
@@ -62,7 +62,7 @@
map<string, string> rowData;
mysqlpp::Row row = *it;
auto field_list = row.field_list();
- const mysqlpp::FieldNames *fieldNames = field_list.list;
+ const mysqlpp::FieldNames* fieldNames = field_list.list;
for (int i = 0; i < fieldNames->size(); i++) {
string columnValue;
row[i].to_string(columnValue);
@@ -84,7 +84,7 @@
if (auto res = query.store()) {
for (auto it = res.begin(); it != res.end(); ++it) {
Json::Value row;
- const mysqlpp::FieldNames *fieldNames = it->field_list().list;
+ const mysqlpp::FieldNames* fieldNames = it->field_list().list;
for (int i = 0; i < fieldNames->size(); i++) {
string columnValue;
(*it)[i].to_string(columnValue);
@@ -107,13 +107,12 @@
mysqlpp::Query query = conn->query(sql);
bool ret = query.exec();
if (!ret) {
- cout << "error " << query.error() << endl;
+ cout << "error " <<query.error() << endl;
}
return ret;
}
-
- static string getInsertSql(std::map<std::string, std::string> &columns, string tableName) {
- string insertSql = "INSERT INTO " + tableName + " ("
+ static string getInsertSql(std::map<std::string, std::string>& columns, string tableName) {
+ string insertSql = "INSERT INTO "+tableName+" ("
+ getColumnNames(columns) +
" ) values ( "
+ getColumnValues(columns) +
@@ -121,17 +120,15 @@
cout << "insertSql " << insertSql << endl;
return insertSql;
}
-
- static string getUpdateSql(std::map<std::string, std::string> &columns, string tableName,
- std::map<std::string, std::string> &whereColumns) {
- string updateSql = "update " + tableName + " set "
+ static string getUpdateSql(std::map<std::string, std::string>& columns, string tableName, std::map<std::string, std::string>& whereColumns) {
+ string updateSql = "update "+tableName+" set "
+ getColumnNameValuePair(columns) +
- " where 1=1 " +
- getWhereColumnNameValuePair(whereColumns);
+ " where 1=1 "+
+ getWhereColumnNameValuePair(whereColumns)
+ ;
cout << "updateSql " << updateSql << endl;
return updateSql;
}
-
static void doConnect() {
if (conn->connect(
appConfig.getStringProperty("database").c_str(),
@@ -152,7 +149,6 @@
cout << "connect failed" << endl;
}
}
-
static void initConnection() {
static bool inited = false;
if (!inited) {
@@ -164,8 +160,7 @@
doConnect();
}
}
-
- static string getColumnNames(std::map<std::string, std::string> &columns) {
+ static string getColumnNames(std::map<std::string, std::string>& columns) {
string columnNames;
auto size = columns.size();
int i = 0;
@@ -178,13 +173,12 @@
}
return columnNames;
}
-
- static string getColumnValues(std::map<std::string, std::string> &columns) {
+ static string getColumnValues(std::map<std::string, std::string>& columns) {
string columnValues;
auto size = columns.size();
int i = 0;
for (auto column : columns) {
- columnValues.append("'" + column.second + "'");
+ columnValues.append("'"+column.second+"'");
if (i != columns.size() - 1) {
columnValues.append(",");
}
@@ -192,15 +186,14 @@
}
return columnValues;
}
-
- static string getColumnNameValuePair(std::map<std::string, std::string> &columns) {
+ static string getColumnNameValuePair(std::map<std::string, std::string>& columns) {
string columnNameValuePair;
auto size = columns.size();
int i = 0;
for (auto column : columns) {
columnNameValuePair.append(column.first);
columnNameValuePair.append("=");
- columnNameValuePair.append("'" + column.second + "'");
+ columnNameValuePair.append("'"+column.second+"'");
if (i != size - 1) {
columnNameValuePair.append(",");
@@ -209,8 +202,7 @@
}
return columnNameValuePair;
}
-
- static string getWhereColumnNameValuePair(std::map<std::string, std::string> &columns) {
+ static string getWhereColumnNameValuePair(std::map<std::string, std::string>& columns) {
string columnNameValuePair;
auto size = columns.size();
int i = 0;
@@ -218,7 +210,7 @@
columnNameValuePair.append(" and ");
columnNameValuePair.append(column.first);
columnNameValuePair.append("=");
- columnNameValuePair.append("'" + column.second + "' ");
+ columnNameValuePair.append("'"+column.second+"' ");
i++;
}
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.cpp b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.cpp
new file mode 100644
index 0000000..7982039
--- /dev/null
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/BaseSqliteDao.cpp
@@ -0,0 +1,7 @@
+#include "BaseSqliteDao.h"
+
+LDBTool* BaseSqliteDao::lDBTool = nullptr;
+QSqlDatabase* BaseSqliteDao::m_db = nullptr;
+QSqlTableModel *BaseSqliteDao::m_pModel = nullptr;
+QMutex* BaseSqliteDao::m_mutexVisit = nullptr;
+ErlangTool::ErlangDbTool *BaseSqliteDao::erlangDbTool = nullptr;
\ No newline at end of file
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssChannelTblDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssChannelTblDao.h
index 9db3d3b..ed07dd7 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssChannelTblDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssChannelTblDao.h
@@ -23,6 +23,7 @@
/** 娣诲姞鍒涘缓浜岀骇璁惧琛� keyValuesToAdd 闇�瑕佹坊鍔犵殑鍒楀悕鍜屽垪鍊煎map*/
mysqlpp::SimpleResult addVssChannelTbl(std::map<std::string, std::string>& keyValuesToAdd) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return add(keyValuesToAdd, VSSChannelTbl_TABLE_NAME);
}
@@ -35,12 +36,14 @@
/** 鍒犻櫎鍒涘缓浜岀骇璁惧琛� whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */
bool deleteVssChannelTbl(std::map<std::string, std::string>& whereKeyValues) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return del(VSSChannelTbl_TABLE_NAME, whereKeyValues);
}
/** 鏇存柊鍒涘缓浜岀骇璁惧琛� keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */
- bool updateVssChannelTbl(std::map<std::string, std::string>& keyValuesToUpdate,
+ bool updateVssChannelTbl(std::map<std::string, std::string>& keyValuesToUpdate,
std::map<std::string, std::string>& whereKeyValues) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return update(keyValuesToUpdate, VSSChannelTbl_TABLE_NAME, whereKeyValues);
}
@@ -55,6 +58,7 @@
/** 鏌ヨ鍒涘缓浜岀骇璁惧琛ㄥ垪琛� querySql 瑕佹煡璇㈢殑sql璇彞 */
vector<VssChannelTbl> findVssChannelTblList(string querySql) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
vector<VssChannelTbl> vssChannelTblVec;
vector<map<string, string>> rowDatList = findList(querySql);
vssChannelTblVec.reserve(rowDatList.size());
@@ -81,6 +85,7 @@
/** 鎵цsql璇彞 */
bool execute(string sql) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return exec(move(sql));
}
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
index ffcd6fe..87b5963 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
@@ -23,6 +23,7 @@
/** 娣诲姞鍒涘缓涓�绾ц澶囪〃 keyValuesToAdd 闇�瑕佹坊鍔犵殑鍒楀悕鍜屽垪鍊煎map*/
mysqlpp::SimpleResult addVssDevTbl(std::map<std::string, std::string>& keyValuesToAdd) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return add(keyValuesToAdd, VSSDevTbl_TABLE_NAME);
}
@@ -35,12 +36,14 @@
/** 鍒犻櫎鍒涘缓涓�绾ц澶囪〃 whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */
bool deleteVssDevTbl(std::map<std::string, std::string>& whereKeyValues) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return del(VSSDevTbl_TABLE_NAME, whereKeyValues);
}
/** 鏇存柊鍒涘缓涓�绾ц澶囪〃 keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */
bool updateVssDevTbl(std::map<std::string, std::string>& keyValuesToUpdate,
std::map<std::string, std::string>& whereKeyValues) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return update(keyValuesToUpdate, VSSDevTbl_TABLE_NAME, whereKeyValues);
}
@@ -55,6 +58,7 @@
/** 鏌ヨ鍒涘缓涓�绾ц澶囪〃鍒楄〃 querySql 瑕佹煡璇㈢殑sql璇彞 */
vector<VssDevTbl> findVssDevTblList(string querySql) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
vector<VssDevTbl> vssDevTblVec;
vector<map<string, string>> rowDatList = findList(querySql);
vssDevTblVec.reserve(rowDatList.size());
@@ -76,11 +80,13 @@
/** 鏌ヨmap鍒楄〃 querySql 瑕佹煡璇㈢殑sql璇彞 */
vector<map<string, string>> findMapList(string querySql) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return findList(querySql);
}
/** 鎵цsql璇彞 */
bool execute(string sql) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
return exec(move(sql));
}
diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
index 19f3a92..a88ed9f 100644
--- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -13,7 +13,7 @@
#include <uuid/uuid.h>
#include <jsoncpp/json/json.h>
-#define ALARM_PERCENT (10) //10%
+#define ALARM_PERCENT (25) //25%
PerimeterElement::PerimeterElement(const SdkRule &rule) :
m_sdkRule(rule),
PipeElement(true),
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
index 9755c39..39abc9a 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
@@ -137,10 +137,10 @@
// faceSearchRpcClient("faceCmServer", "", 10004, "tcp")
//loopRecord server
- appPref.setStringData("loopRecord.proxy", "LoopRecordVideoServer");
- //#todo
- appPref.setStringData("loopRecord.ip", "");
- appPref.setIntData("loopRecord.port", 10010);
+// appPref.setStringData("loopRecord.proxy", "LoopRecordVideoServer");
+// //#todo
+// appPref.setStringData("loopRecord.ip", "");
+// appPref.setIntData("loopRecord.port", 10010);
//rpcClient(appPref.getStringData("loopRecord.proxy"), appPref.getStringData("loopRecord.ip"), appPref.getLongData("loopRecord.port"),"tcp"),
LDBTool _dbTool;
diff --git a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
index bb406ce..60c32ed 100644
--- a/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
+++ b/QiaoJiaSystem/YoloServer/YoloDetectClientTest.cpp
@@ -75,12 +75,11 @@
appPref.setIntData("yolo.port", 10003);
// rpcClient(appPref.getStringData("yolo.proxy"), appPref.getStringData("yolo.ip"), appPref.getLongData("yolo.port"),"tcp"),
- Controllor *_Controllor = new Controllor(1, "/home/bsk/210235C23NF187000045$2019-02-28-23-07-30_209850_210049.mp4");
+ Controllor *_Controllor = new Controllor(1,
+ "/home/pans/work/qiaojia/cut/44120000001325000005/201903/06/2019030617/44120000001325000005$2019-03-06-17-51-53_4747_4946.mp4");
_Controllor->start();
getchar();
-
-
YoloRpcElement m_YoloRpcElement("YoloRpc");
diff --git a/syncDBTool/ErlangDbTool.cpp b/syncDBTool/ErlangDbTool.cpp
index e736943..bb8efcc 100755
--- a/syncDBTool/ErlangDbTool.cpp
+++ b/syncDBTool/ErlangDbTool.cpp
@@ -1614,7 +1614,7 @@
}
if (str_tableUuid.size() > 0) {
QString sql = QString::fromStdString(
- "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enable,b.monitorLevel from '" +
+ "Select a.uuid as id ,a.faceUrl as img,a.feature,b.idCard as idcard,b.enabled,b.monitorLevel from '" +
str_tableUuid +
"_fea' as a ,'" + str_tableUuid + "' as b where a.uuid = b.uuid and ( a.del_flag=0 AND b.del_flag=0);");
QSqlQuery query(g_syncDbFile);
--
Gitblit v1.8.0