From d3b7bbe7102cd089680a828f5d8f6402c8cf6342 Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期四, 07 三月 2019 14:43:28 +0800 Subject: [PATCH] GB28181集成完成,集成推流模块 --- QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h | 505 ++++++++++++++++++++++++-------------------------------- 1 files changed, 216 insertions(+), 289 deletions(-) diff --git a/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h b/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h index 0d42524..4096fa0 100755 --- a/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h +++ b/QiaoJiaSystem/DataManagerServer/vss/dao/VssLocalSettingTblSqliteDao.h @@ -1,289 +1,216 @@ - -#ifndef VSSLOCALSETTINGTBL_Sqlite_MANAGER_H -#define VSSLOCALSETTINGTBL_Sqlite_MANAGER_H - -#include "../model/VssLocalSettingTbl.h" -#include "BaseDao.h" - -#define VSSLocalSettingTbl_Sqlite_TABLE_NAME "VSSLocalSettingTbl" - -/** - * 鏈湴鍥芥爣閰嶇疆绠$悊绫� - */ -class VssLocalSettingTblSqliteDao : public BaseDao { -private: - /** 鏈湴鍥芥爣閰嶇疆鏋勯�犲嚱鏁� */ - VssLocalSettingTblSqliteDao() {} -private: - LDBTool* lDBTool; - - QSqlDatabase* m_db; - QSqlTableModel *m_pModel; - QMutex* m_mutexVisit; -public: - void setLDBTool(LDBTool* lDBTool) { - this->lDBTool = lDBTool; - this->m_db = lDBTool->get_m_db(); - this->m_pModel = lDBTool->get_m_pModel(); - this->m_mutexVisit = lDBTool->get_m_mutexVisit(); - } -public: - /** 鏈湴鍥芥爣閰嶇疆鍗曚緥妯″紡 */ - static VssLocalSettingTblSqliteDao* instance() { - static VssLocalSettingTblSqliteDao instance; - return &instance; - } - - /** 娣诲姞鏈湴鍥芥爣閰嶇疆 keyValuesToAdd 闇�瑕佹坊鍔犵殑鍒楀悕鍜屽垪鍊煎map*/ - Json::Value addVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToAdd) { - Json::Value responseJsonValue; - responseJsonValue["message"] = "娣诲姞澶辫触锛�"; - responseJsonValue["success"] = "false"; - QMutexLocker mutexLocker(m_mutexVisit);//TODO - QSqlTableModel pModel(NULL, *m_db); - - pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); - pModel.setEditStrategy(QSqlTableModel::OnManualSubmit); - - QSqlRecord rec = pModel.record(); - for (auto keyValueToAdd : keyValuesToAdd) { - rec.setValue(QString::fromUtf8(keyValueToAdd.first.c_str()), QString::fromUtf8(keyValueToAdd.second.c_str())); - } - rec.setGenerated("ID", false); - - pModel.insertRecord(-1, rec);//TODO - - m_db->transaction();//寮�濮嬩簨鍔℃搷浣� - - if (pModel.submitAll()) { - m_db->commit();//鎻愪氦 - responseJsonValue["success"] = "true"; - responseJsonValue["message"] = "娣诲姞鎴愬姛锛�"; - } else { - m_db->rollback();//鍥炴粴 - ERR("addVssLocalSettingTbl err ,Database Error: " << pModel.lastError().text().toStdString()); - } - return responseJsonValue; - } - - /** 鍒犻櫎鏈湴鍥芥爣閰嶇疆 whereKey 鍒楀悕锛泈hereValue 鍒楀�� */ - Json::Value deleteByColumn(string whereKey, string whereValue) { - - - std::map<std::string, std::string> whereKeyValues; - whereKeyValues[whereKey] = whereValue; - return deleteVssLocalSettingTbl(whereKeyValues); - } - - /** 鍒犻櫎鏈湴鍥芥爣閰嶇疆 whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */ - Json::Value deleteVssLocalSettingTbl(std::map<std::string, std::string>& whereKeyValues) { - - Json::Value responseJsonValue; - responseJsonValue["message"] = "鍒犻櫎澶辫触锛�"; - responseJsonValue["success"] = "false"; - QMutexLocker mutexLocker(m_mutexVisit);//TODO - QSqlTableModel pModel(NULL, *m_db); - pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); - for (auto whereKeyValue : whereKeyValues ) { - pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str()))); - } - pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange - pModel.select(); - - int rowCount = pModel.rowCount(); - - if (rowCount >= 1) { - for (int i = 0; i < rowCount; i++) { - pModel.removeRow(i);//TODO - } - } else { - return responseJsonValue; - } - - m_db->transaction();//寮�濮嬩簨鍔℃搷浣� - - if (pModel.submitAll()) { - m_db->commit();//鎻愪氦 - responseJsonValue["success"] = "true"; - responseJsonValue["message"] = "鍒犻櫎鎴愬姛锛�"; - } else { - m_db->rollback();//鍥炴粴 - ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString()); - } - - return responseJsonValue; - } - - /** 鏇存柊鏈湴鍥芥爣閰嶇疆 keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */ - Json::Value updateVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToUpdate, - std::map<std::string, std::string>& whereKeyValues) { - Json::Value responseJsonValue; - responseJsonValue["message"] = "鍒犻櫎澶辫触锛�"; - responseJsonValue["success"] = "false"; - QMutexLocker mutexLocker(m_mutexVisit);//TODO - QSqlTableModel pModel(NULL, *m_db); - pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); - for (auto whereKeyValue : whereKeyValues) { - pModel.setFilter(QObject::tr((whereKeyValue.first + " = '%1'").c_str()).arg(QString::fromStdString(whereKeyValue.second))); - } - pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange - pModel.select(); - - /*QSqlRecord rec = pModel.record(); - rec.setValue("dst_path",QString::fromStdString(dst_path)); - rec.setValue("total",total); - rec.setValue("finish_flag",1); - rec.setValue("update_time",QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));*/ - - int rowCount = pModel.rowCount(); - if (rowCount > 0) { - QSqlRecord rec = pModel.record(0); - for (auto keyValueToUpdate : keyValuesToUpdate) { - rec.setValue(keyValueToUpdate.first.c_str(), keyValueToUpdate.second.c_str()); - } -// rec.setValue("dst_path", QString::fromStdString(dst_path)); -// rec.setValue("total", total); -// rec.setValue("finish_flag", 1); - rec.setValue("UpdateTime", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); - - pModel.setRecord(0, rec); - } else { - return responseJsonValue; - } - - m_db->transaction();//寮�濮嬩簨鍔℃搷浣� - - if (pModel.submitAll()) { - m_db->commit();//鎻愪氦 - responseJsonValue["success"] = "true"; - responseJsonValue["message"] = "鍒犻櫎鎴愬姛锛�"; - } else { - m_db->rollback();//鍥炴粴 - ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString()); - } - return responseJsonValue; - } - - /** 鏇存柊鍒涘缓浜岀骇璁惧琛� keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */ - bool updateVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToUpdate, - string whereKey, - string whereValue) { - std::map<std::string, std::string> whereKeyValues; - whereKeyValues[whereKey] = whereValue; - return update(keyValuesToUpdate, VSSLocalSettingTbl_TABLE_NAME, whereKeyValues); - } - - /** 鏌ヨ鏈湴鍥芥爣閰嶇疆鍒楄〃 querySql 瑕佹煡璇㈢殑sql璇彞 */ - Json::Value findVssLocalSettingTblList(string querySql) { - - Json::Value responseJsonValue; - responseJsonValue["message"] = "鍒犻櫎澶辫触锛�"; - responseJsonValue["success"] = "false"; - responseJsonValue["data"] = "[]"; - - QMutexLocker mutexLocker(m_mutexVisit);//TODO - std::list<Record_Cut_Video_info> lst; - QSqlTableModel pModel(NULL, *m_db); - pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); - pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange - pModel.select(); - - int rowCount = pModel.rowCount(); - if (rowCount > 0) { - Json::Value rowDataList; - for (int i = 0; i < rowCount; ++i) { - Json::Value rowData; - Record_Cut_Video_info lRec; - QSqlRecord rec = pModel.record(i); -// if (!rec.value("finish_flag").toBool()) { -// lRec.n_id = rec.value("id").toInt(); -// lRec.str_storage_dev_id = rec.value("storage_dev_id").toString(); -// lRec.n_chn = rec.value("chn").toInt(); -// lRec.str_src_path = rec.value("src_path").toString(); -// lRec.str_dst_path = rec.value("dst_path").toString(); -// lRec.n_total = rec.value("total").toInt(); -// lRec.b_finish_flag = rec.value("finish_flag").toBool(); -// lRec.tim_update_time = QDateTime::fromString(rec.value("update_time").toString(), -// "yyyy-MM-dd hh:mm:ss"); -// lRec.str_reserved = rec.value("reserved").toString(); -// lst.push_back(lRec); -// } - rowDataList.append(rowData); - } - responseJsonValue["data"] = rowDataList; - } - - return responseJsonValue; - - - - -// vector<VssLocalSettingTbl> vssLocalSettingTblVec; -// vector<map<string, string>> rowDatList = findList(querySql); -// vssLocalSettingTblVec.reserve(rowDatList.size()); -// for (auto rowData : rowDatList) { -// vssLocalSettingTblVec.emplace_back(mapToModel(rowData)); -// } -// return vssLocalSettingTblVec; - } - - /**鏌ヨ鏈湴鍥芥爣閰嶇疆鍒楄〃 whereKeyValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */ - Json::Value findVssLocalSettingTblList(std::map<std::string, std::string>& whereKeyValues) { - return findVssLocalSettingTblList(string("select * from ") + VSSLocalSettingTbl_TABLE_NAME + " where 1=1 " + getWhereColumnNameValuePair(whereKeyValues)); - } - - /**鏌ヨ鎵�鏈夋湰鍦板浗鏍囬厤缃垪琛� */ - Json::Value findAllVssLocalSettingTblList() { - return findVssLocalSettingTblList(string("select * from ") + VSSLocalSettingTbl_TABLE_NAME + " where 1=1 "); - } - - /** 鏌ヨmap鍒楄〃 querySql 瑕佹煡璇㈢殑sql璇彞 */ - vector<map<string, string>> findMapList(string querySql) { - return findList(querySql); - } - - /** 鎵цsql璇彞 */ - bool execute(string sql) { - return exec(move(sql)); - } - - /** map杞琺odel绫� */ - VssLocalSettingTbl mapToModel(map<string, string>& rowData) { - VssLocalSettingTbl vssLocalSettingTbl; - string IDValue = rowData[VssLocalSettingTbl_ID]; - if (IDValue.length() != 0 && IDValue != "NULL") { - vssLocalSettingTbl.ID = std::stoi(IDValue); - } - string ServerIpValue = rowData[VssLocalSettingTbl_ServerIp]; - if (ServerIpValue.length() != 0 && ServerIpValue != "NULL") { - vssLocalSettingTbl.ServerIp = ServerIpValue; - } - string ServerPortValue = rowData[VssLocalSettingTbl_ServerPort]; - if (ServerPortValue.length() != 0 && ServerPortValue != "NULL") { - vssLocalSettingTbl.ServerPort = ServerPortValue; - } - string ServerIdValue = rowData[VssLocalSettingTbl_ServerId]; - if (ServerIdValue.length() != 0 && ServerIdValue != "NULL") { - vssLocalSettingTbl.ServerId = ServerIdValue; - } - string UserAuthIdValue = rowData[VssLocalSettingTbl_UserAuthId]; - if (UserAuthIdValue.length() != 0 && UserAuthIdValue != "NULL") { - vssLocalSettingTbl.UserAuthId = UserAuthIdValue; - } - string PasswordValue = rowData[VssLocalSettingTbl_Password]; - if (PasswordValue.length() != 0 && PasswordValue != "NULL") { - vssLocalSettingTbl.Password = PasswordValue; - } - string UpdateTimeValue = rowData[VssLocalSettingTbl_UpdateTime]; - if (UpdateTimeValue.length() != 0 && UpdateTimeValue != "NULL") { - vssLocalSettingTbl.UpdateTime = UpdateTimeValue; - } - return vssLocalSettingTbl; - } - -}; - - -#endif //VSSLOCALSETTINGTBL_Sqlite_MANAGER_H - - + +#ifndef VSSLOCALSETTINGTBL_Sqlite_MANAGER_H +#define VSSLOCALSETTINGTBL_Sqlite_MANAGER_H + +#include "../model/VssLocalSettingTbl.h" +#include "BaseSqliteDao.h" + +#define VSSLocalSettingTbl_Sqlite_TABLE_NAME "VSSLocalSettingTbl" + +#include <qsqlfield.h> +/** + * 鏈湴鍥芥爣閰嶇疆绠$悊绫� + */ +class VssLocalSettingTblSqliteDao : public BaseSqliteDao { +private: + /** 鏈湴鍥芥爣閰嶇疆鏋勯�犲嚱鏁� */ + VssLocalSettingTblSqliteDao() {} + +public: + /** 鏈湴鍥芥爣閰嶇疆鍗曚緥妯″紡 */ + static VssLocalSettingTblSqliteDao* instance() { + static VssLocalSettingTblSqliteDao instance; + return &instance; + } + + /** 娣诲姞鏈湴鍥芥爣閰嶇疆 keyValuesToAdd 闇�瑕佹坊鍔犵殑鍒楀悕鍜屽垪鍊煎map*/ + Json::Value addVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToAdd) { + Json::Value responseJsonValue; + responseJsonValue["message"] = "娣诲姞澶辫触锛�"; + responseJsonValue["success"] = "false"; + QMutexLocker mutexLocker(m_mutexVisit);//TODO + QSqlTableModel pModel(NULL, *m_db); + + pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); + pModel.setEditStrategy(QSqlTableModel::OnManualSubmit); + + QSqlRecord rec = pModel.record(); + for (auto keyValueToAdd : keyValuesToAdd) { + rec.setValue(QString::fromUtf8(keyValueToAdd.first.c_str()), QString::fromUtf8(keyValueToAdd.second.c_str())); + } + rec.setGenerated("ID", false); + + pModel.insertRecord(-1, rec);//TODO + + m_db->transaction();//寮�濮嬩簨鍔℃搷浣� + + if (pModel.submitAll()) { + m_db->commit();//鎻愪氦 + responseJsonValue["success"] = "true"; + responseJsonValue["message"] = "娣诲姞鎴愬姛锛�"; + } else { + m_db->rollback();//鍥炴粴 + ERR("addVssLocalSettingTbl err ,Database Error: " << pModel.lastError().text().toStdString()); + } + return responseJsonValue; + } + + /** 鍒犻櫎鏈湴鍥芥爣閰嶇疆 whereKey 鍒楀悕锛泈hereValue 鍒楀�� */ + Json::Value deleteByColumn(string whereKey, string whereValue) { + + + std::map<std::string, std::string> whereKeyValues; + whereKeyValues[whereKey] = whereValue; + return deleteVssLocalSettingTbl(whereKeyValues); + } + + /** 鍒犻櫎鏈湴鍥芥爣閰嶇疆 whereColumnNameValues 鍒楀悕鍜屽垪鍊煎鏉′欢 */ + Json::Value deleteVssLocalSettingTbl(std::map<std::string, std::string>& whereKeyValues) { + + Json::Value responseJsonValue; + responseJsonValue["message"] = "鍒犻櫎澶辫触锛�"; + responseJsonValue["success"] = "false"; + QMutexLocker mutexLocker(m_mutexVisit);//TODO + QSqlTableModel pModel(NULL, *m_db); + pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); + for (auto whereKeyValue : whereKeyValues ) { + pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str()))); + } + pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange + pModel.select(); + + int rowCount = pModel.rowCount(); + + if (rowCount >= 1) { + for (int i = 0; i < rowCount; i++) { + pModel.removeRow(i);//TODO + } + } else { + return responseJsonValue; + } + + m_db->transaction();//寮�濮嬩簨鍔℃搷浣� + + if (pModel.submitAll()) { + m_db->commit();//鎻愪氦 + responseJsonValue["success"] = "true"; + responseJsonValue["message"] = "鍒犻櫎鎴愬姛锛�"; + } else { + m_db->rollback();//鍥炴粴 + ERR("deleteLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString()); + } + + return responseJsonValue; + } + + /** 鏇存柊鏈湴鍥芥爣閰嶇疆 keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */ + Json::Value updateVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToUpdate, + std::map<std::string, std::string>& whereKeyValues) { + Json::Value responseJsonValue; + responseJsonValue["message"] = "鏇存柊澶辫触锛�"; + responseJsonValue["success"] = "false"; + QMutexLocker mutexLocker(m_mutexVisit);//TODO + QSqlTableModel pModel(NULL, *m_db); + pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME); + for (auto whereKeyValue : whereKeyValues) { + pModel.setFilter(QObject::tr((whereKeyValue.first + " = '%1'").c_str()).arg(QString::fromStdString(whereKeyValue.second))); + } + pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange + pModel.select(); + + /*QSqlRecord rec = pModel.record(); + rec.setValue("dst_path",QString::fromStdString(dst_path)); + rec.setValue("total",total); + rec.setValue("finish_flag",1); + rec.setValue("update_time",QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));*/ + + int rowCount = pModel.rowCount(); + if (rowCount > 0) { + QSqlRecord rec = pModel.record(0); + for (auto keyValueToUpdate : keyValuesToUpdate) { + rec.setValue(keyValueToUpdate.first.c_str(), keyValueToUpdate.second.c_str()); + } +// rec.setValue("dst_path", QString::fromStdString(dst_path)); +// rec.setValue("total", total); +// rec.setValue("finish_flag", 1); + rec.setValue("UpdateTime", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")); + + pModel.setRecord(0, rec); + } else { + return responseJsonValue; + } + + m_db->transaction();//寮�濮嬩簨鍔℃搷浣� + + if (pModel.submitAll()) { + m_db->commit();//鎻愪氦 + responseJsonValue["success"] = "true"; + responseJsonValue["message"] = "鏇存柊鎴愬姛锛�"; + } else { + m_db->rollback();//鍥炴粴 + ERR("updateLDeviceTable ,pModel_load Error: " << pModel.lastError().text().toStdString()); + } + return responseJsonValue; + } + + /** 鏇存柊鍒涘缓浜岀骇璁惧琛� keyValuesToUpdate 闇�瑕佹洿鏂扮殑鍒楀悕鍜屽垪鍊煎锛� whereKeyValues 鍒楀悕鍜屽垪鍊兼潯浠� */ + Json::Value updateVssLocalSettingTbl(std::map<std::string, std::string>& keyValuesToUpdate, + string whereKey, + string whereValue) { + std::map<std::string, std::string> whereKeyValues; + whereKeyValues[whereKey] = whereValue; + return updateVssLocalSettingTbl(keyValuesToUpdate, whereKeyValues); + } + + /** 鏌ヨ鏈湴鍥芥爣閰嶇疆鍒楄〃 querySql 瑕佹煡璇㈢殑sql璇彞 */ + Json::Value findVssLocalSettingTblList(std::map<std::string, std::string>& whereKeyValues) { + + Json::Value responseJsonValue; + responseJsonValue["message"] = "鏌ヨ澶辫触锛�"; + responseJsonValue["success"] = "false"; + responseJsonValue["data"] = Json::arrayValue; + + QMutexLocker mutexLocker(m_mutexVisit);//TODO + std::list<Record_Cut_Video_info> lst; + QSqlTableModel pModel(NULL, *m_db); + pModel.setTable(VSSLocalSettingTbl_Sqlite_TABLE_NAME);; + for (auto whereKeyValue : whereKeyValues ) { + pModel.setFilter(QObject::tr((string(whereKeyValue.first)+" = '%1'").c_str()).arg(QString::fromUtf8(whereKeyValue.second.c_str()))); + } + pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange + pModel.select(); + + int rowCount = pModel.rowCount(); + if (rowCount > 0) { + Json::Value rowDataList = Json::arrayValue; + for (int i = 0; i < rowCount; ++i) { + Json::Value rowData = Json::objectValue; + Record_Cut_Video_info lRec; + QSqlRecord rec = pModel.record(i); + for (int i = 0; i < rec.count(); i++) { + QSqlField field = rec.field(i); + rowData[field.name().toStdString()] = field.value().toString().toStdString(); + } + rowDataList.append(rowData); + } + responseJsonValue["data"] = rowDataList; + } + + responseJsonValue["message"] = "鏌ヨ鎴愬姛锛�"; + responseJsonValue["success"] = "true"; + return responseJsonValue; + } + + /**鏌ヨ鎵�鏈夋湰鍦板浗鏍囬厤缃垪琛� */ + Json::Value findAllVssLocalSettingTblList() { + std::map<std::string, std::string> whereKeyValues; + return findVssLocalSettingTblList(whereKeyValues); + } + + +}; + + +#endif //VSSLOCALSETTINGTBL_Sqlite_MANAGER_H + + -- Gitblit v1.8.0