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