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