From 55337c3876fa54863463ab7c30a7ed0fcb3c88e5 Mon Sep 17 00:00:00 2001
From: chenshijun <chenshijun@aiotlink.com>
Date: 星期四, 21 三月 2019 14:43:15 +0800
Subject: [PATCH] facesearchserver出现段错误,map的operater[],疑似该处,加些调试信息。
---
QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
index ffcd6fe..ad688f8 100755
--- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
+++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssDevTblDao.h
@@ -3,7 +3,9 @@
#define VSSDEVTBL_MANAGER_H
#include "../model/VssDevTbl.h"
+#include "VssChannelTblDao.h"
#include "BaseDao.h"
+#include "CamDevSqliteDao.h"
#define VSSDevTbl_TABLE_NAME "VSSDevTbl"
@@ -23,6 +25,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 +38,27 @@
/** 鍒犻櫎鍒涘缓涓�绾ц澶囪〃 whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */
bool deleteVssDevTbl(std::map<std::string, std::string>& whereKeyValues) {
+ QMutexLocker mutexLocker(&m_mutexVisit);
+ vector<map<string, string>> devRowDataList = findList(string("select * from ")
+ + VSSDevTbl_TABLE_NAME + " where 1=1 "
+ + getWhereColumnNameValuePair(whereKeyValues));
+ if (devRowDataList.size() > 0) {
+ auto DevPubID = devRowDataList.at(0)[VssDevTbl_DevPubID];
+ vector<map<string, string>> channelRowDataList = findList(string("select * from ")
+ + VSSChannelTbl_TABLE_NAME + " where 1=1 AND DevPubID='"+DevPubID+"'");
+ for (auto channelRowData : channelRowDataList) {
+ auto ChanPubID = channelRowData[VssChannelTbl_ChanPubID];
+ CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, ChanPubID);
+ }
+ CamDevSqliteDao::instance()->deleteByColumn(CamDev_cam_dev_id, DevPubID);
+ }
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 +73,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 +95,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));
}
--
Gitblit v1.8.0