From 0a1992c1189eb162c6597289877cf060d4ea24cc Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期一, 28 一月 2019 18:09:31 +0800 Subject: [PATCH] 布控上传修改 --- QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 136 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 120 insertions(+), 16 deletions(-) diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp index d4cd14c..5fc72f5 100644 --- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp +++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp @@ -1875,6 +1875,22 @@ std::string createBy = value["createBy"].asString(); + string str_uuid; + uuid_t t_uuid; + char str[36]; + uuid_generate(t_uuid); + uuid_unparse(t_uuid, str); + str_uuid = str; + if (createBy == "analyDev") { + Uuid = Uuid.empty() ? str_uuid : Uuid; + } else if (createBy == "conCemter") { + if (Uuid.empty()) { + response->write(SimpleWeb::StatusCode::client_error_bad_request, "{\"error\":\"鍙傛暟閿欒锛� \"}"); + return ""; + } + } + + bool ret = false; FieldValues fieldValues; fieldValues.insert(std::make_pair("uuid", Uuid)); @@ -1910,10 +1926,17 @@ return ""; } - { + // #todo 涓婁紶銆備粎榛戝悕鍗曘�� // #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + if (createBy == "analyDev" && BwType == "1") { +// string &Uuid, string &TableName, string &SyncType, string &StartTime,string &EndTime, +// string &UploadFlag, string &CmpThreshold, string &Enabled + string str_SyncType(to_string(SyncType)); + UploadTaskToMonitorCenter(Uuid, TableName, str_SyncType, StartTime, EndTime, UploadFlag, CmpThreshold, + Enabled); } + erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); @@ -2244,6 +2267,19 @@ std::string BwType = value["BwType"].asString(); std::string CreateBy = value["createBy"].asString(); // std::string BwType = value["BwType"].asString(); + std::string UploadFlag = "-1"; + if (SyncType == "1") { + UploadFlag = erlangDbTool->findAllDatabase()[TableId].uploadFlag; + } else { + auto its = m_SqliteFaceEncap.getTableInfos(); + for (auto &item : its) { + if (item.uuid == TableId) { + UploadFlag = item.uploadFlag; + break; + } + } + } + DBG("content: " << TableName << "," << img_url << "," << idcard << "," << strUUID << "," << Enabled << "," << TableType << "," << SyncType << "," << TableId); @@ -2342,21 +2378,17 @@ // usleep(100); erlangDbTool->sendMessage(); -// #todo CreateBy == ""??? -// #TODO榛戝悕鍗曟洿鏂伴渶瑕佷笂浼� -// if (UploadFlag == "1") { -//// #todo db queue upload to server -// if (BwType == "0") { + if (CreateBy == "analyDev" && UploadFlag == "1") { +// #todo db queue upload to server + if (BwType == "0") { // UploadPersonToUserCenter(img_url, idcard, strUUID, feature_base64); -// } else { -// //todo send person to backServer -////#TODO 榛戝悕鍗曚笂浼� - { -// #todo 涓婁紶銆備粎榛戝悕鍗曘�� -// #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + } else if (BwType == "1") { + UpdatePersonToMonitorCenter(img_url, idcard, strUUID, TableId, Enabled); + } + } else { +// 涓嶄笂浼� } -// } -// } + return str_result; } else { std::string str_result = std::string("{\"error\":\"addPerson error\"}"); @@ -2392,7 +2424,7 @@ void devHttpServer_c::addPersonMToDB(const string &TableName, const string &img_url, const string &SyncType, const string &feature_base64, const Features &faceResults, string &idcard, - string &strUUID, bool &ret_addPerson) const { + string &strUUID, bool &ret_addPerson) { if (SyncType == "0") { FieldValues fieldValues; AddFaceData addFaceData; @@ -2488,6 +2520,73 @@ perInfos.append(perInfo); thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString()); + sendPerson.detach(); +} + +void +devHttpServer_c::UpdatePersonToMonitorCenter(string &img_url, string &idcard, string &strUUID, + string &strTableId, string &strControl) { + +// string sendUrl = "ip:3699/data/api-c/taskUser/updateFromC"; + string sendUrl = GET_STR_CONFIG("updateFromAnalyUrl"); + + if (sendUrl.empty()) { + ERR(""); + return; + } + + Json::Value perInfos; + Json::Value perInfo; +// #todo get string from config.json file + perInfo["id"] = strUUID; + perInfo["distributionIds"] = m_cluster_id; + perInfo["distributionNames"] = m_cluster_name; + auto rec = db_c.searchConfigTableWithinServerInfo(); + perInfo["deviceId"] = rec.dev_id.toStdString(); + perInfo["photos"] = img_url; + perInfo["cardId"] = idcard; // 鍥剧墖鎻忚堪 + + perInfo["taskId"] = strTableId; // 搴曞簱id + perInfo["isControl"] = strControl; // 甯冩帶鐘舵�侊紙0涓烘湭甯冩帶锛�1涓哄凡甯冩帶锛� + + perInfos.append(perInfo); + + thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString()); + sendPerson.detach(); +} + +void +devHttpServer_c::UploadTaskToMonitorCenter(string &Uuid, string &TableName, string &SyncType, string &StartTime, + string &EndTime, string &UploadFlag, string &CmpThreshold, string &Enabled) { + +// string sendUrl = "192.168.1.184:3699/addTaskByNode"; + string sendUrl = GET_STR_CONFIG("addTaskAnalyUrl"); + + if (sendUrl.empty()) { + ERR(""); + return; + } + +// Json::Value perInfos; + Json::Value perInfo; + + perInfo["uuid"] = Uuid; + perInfo["TableName"] = TableName; + perInfo["SyncType"] = SyncType; + perInfo["StartTime"] = StartTime; + perInfo["EndTime"] = EndTime; + perInfo["IsSync"] = UploadFlag; + perInfo["threshold"] = CmpThreshold; + perInfo["enabled"] = Enabled; + perInfo["distributionIds"] = m_cluster_id; + perInfo["distributionNames"] = m_cluster_name; + auto rec = db_c.searchConfigTableWithinServerInfo(); + perInfo["deviceId"] = rec.dev_id.toStdString(); + + +// perInfos.append(perInfo); + + thread sendPerson(uploadServer, this, sendUrl, perInfo.toStyledString()); sendPerson.detach(); } @@ -2635,11 +2734,16 @@ return ""; } - { // #todo 涓婁紶銆備粎榛戝悕鍗曘�� // #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼� + if (createBy == "analyDev" && BwType == "1") { +// UploadTaskToMonitorCenter(Uuid, TableName, SyncType, StartTime, EndTime, SyncType, Enabled); + string str_SyncType(to_string(SyncType)); + UploadTaskToMonitorCenter(Uuid, TableName, str_SyncType, StartTime, EndTime, UploadFlag, CmpThreshold, + Enabled); } + erlangDbTool->sendMessage(); std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}"); return str_result; -- Gitblit v1.8.0