| | |
| | | std::string EndTime = value["EndTime"].asString(); |
| | | |
| | | std::string UploadFlag = value["IsSync"].asString(); |
| | | UploadFlag = UploadFlag.empty() ? "0" : UploadFlag; |
| | | std::string CmpThreshold = value["threshold"].asString(); |
| | | CmpThreshold = CmpThreshold.empty() ? "60" : CmpThreshold; |
| | | std::string Enabled = value["enabled"].asString(); |
| | | Enabled = Enabled.empty() ? "1" : Enabled; |
| | | |
| | | bool ret = false; |
| | | FieldValues fieldValues; |
| | | fieldValues.insert(std::make_pair("uuid", Uuid)); |
| | |
| | | subJson.append("\"bwType\":\"" + item.second.bwType + "\","); |
| | | //#todo modify |
| | | subJson.append("\"start_time\":\"" + item.second.startTime + "\","); |
| | | subJson.append("\"end_time\":\"" + item.second.endTime + "\""); |
| | | subJson.append("\"end_time\":\"" + item.second.endTime + "\","); |
| | | |
| | | subJson.append("\"IsSync\":\"" + item.second.uploadFlag + "\""); |
| | | subJson.append("\"threshold\":\"" + item.second.cmpThreshold + "\""); |
| | | subJson.append("\"IsSync\":\"" + item.second.uploadFlag + "\","); |
| | | subJson.append("\"threshold\":\"" + item.second.cmpThreshold + "\","); |
| | | subJson.append("\"enabled\":\"" + item.second.enabled + "\""); |
| | | subJson.append("},"); |
| | | json.append(subJson); |
| | |
| | | subJson.append("\"tableType\":\"" + item.tableType + "\","); |
| | | subJson.append("\"bwType\":\"" + item.bwType + "\","); |
| | | subJson.append("\"start_time\":\"" + item.startTime + "\","); |
| | | subJson.append("\"end_time\":\"" + item.endTime + "\""); |
| | | subJson.append("\"IsSync\":\"" + item.uploadFlag + "\""); |
| | | subJson.append("\"threshold\":\"" + item.cmpThreshold + "\""); |
| | | subJson.append("\"end_time\":\"" + item.endTime + "\","); |
| | | subJson.append("\"IsSync\":\"" + item.uploadFlag + "\","); |
| | | subJson.append("\"threshold\":\"" + item.cmpThreshold + "\","); |
| | | subJson.append("\"enabled\":\"" + item.enabled + "\""); |
| | | subJson.append("},"); |
| | | json.append(subJson); |
| | |
| | | std::string idcard = value["idcard"].asString(); |
| | | std::string strUUID = value["uuid"].asString(); |
| | | std::string UploadFlag = value["IsSync"].asString(); |
| | | // #todo |
| | | |
| | | cv::Mat image; |
| | | if (img_url.size() > 0) { |
| | |
| | | } |
| | | |
| | | for (auto &item : faceResults) { |
| | | //#todo 去重 |
| | | |
| | | feature_base64 = base64.Encode(item.feature.data(), item.feature.size()); |
| | | int x = item.left; |
| | | int y = item.top; |
| | | int w = item.width; |
| | | int h = item.height; |
| | | cv::Rect t_rect = {x, y, w, h}; |
| | | auto t_image = image(CvUtil::zoomRect(t_rect, 1.5, 1.5) & cv::Rect(0, 0, image.cols, image.rows)).clone(); |
| | | auto t_image = image(CvUtil::zoomRect(t_rect, 2, 2) & cv::Rect(0, 0, image.cols, image.rows)).clone(); |
| | | std::vector<uchar> buffer; |
| | | cvutil.cvMat2Buffer(t_image, buffer); |
| | | img_url = "http://"; |
| | |
| | | // std::string uuid = ""; |
| | | bool ret_addPerson = false; |
| | | |
| | | FieldValues fieldValues; |
| | | AddFaceData addFaceData; |
| | | if (TableName.find("lt_") == 0) { |
| | | FieldValues fieldValues; |
| | | AddFaceData addFaceData; |
| | | addFaceData.feature.resize(faceResults[0].feature.size()); |
| | | memcpy(addFaceData.feature.data(), faceResults[0].feature.data(), faceResults[0].feature.size()); |
| | | |
| | | //#todo uuid have value is update |
| | | if (strUUID.size() <= 0) { |
| | | // get Person id |
| | | addFaceData.feature.resize(faceResults[0].feature.size()); |
| | | memcpy(addFaceData.feature.data(), faceResults[0].feature.data(), faceResults[0].feature.size()); |
| | | |
| | | // get Person id |
| | | strUUID = AppUtil::getPersonId(m_batch, m_SerialNumber); |
| | | addFaceData.uuid = strUUID; |
| | | addFaceData.faceUrl = img_url; |
| | |
| | | |
| | | fieldValues.insert(std::make_pair("uuid", strUUID)); |
| | | fieldValues.insert(std::make_pair("idCard", idcard)); |
| | | m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues); |
| | | ret_addPerson = m_SqliteFaceEncap.updateFace(TableName, addFaceData, fieldValues); |
| | | } |
| | | |
| | | } else { |
| | | //#todo update data |
| | | // get Person id |
| | | strUUID = strUUID.size() > 0 ? strUUID : AppUtil::getPersonId(m_batch, m_SerialNumber); |
| | | ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url, idcard); |
| | | |
| | | if (strUUID.size() <= 0) { |
| | | strUUID = strUUID.size() > 0 ? strUUID : AppUtil::getPersonId(m_batch, m_SerialNumber); |
| | | ret_addPerson = erlangDbTool->addPerson(strUUID, TableName, feature_base64, img_url, idcard); |
| | | } else { |
| | | addFaceData.uuid = strUUID; |
| | | addFaceData.faceUrl = img_url; |
| | | fieldValues.insert(std::make_pair("uuid", strUUID)); |
| | | fieldValues.insert(std::make_pair("idCard", idcard)); |
| | | // #todo update |
| | | ret_addPerson = erlangDbTool->updatePerson(TableName, addFaceData, fieldValues); |
| | | } |
| | | } |
| | | |
| | | if (ret_addPerson && strUUID.size() > 0) { |
| | |
| | | |
| | | if (UploadFlag == "1") { |
| | | // #todo db queue upload to server |
| | | std::thread sendPerson(uploadPersonToServer, this, strUUID, img_url, idcard, feature_base64); |
| | | |
| | | std::string str_serUrl; |
| | | if (1) { |
| | | str_serUrl = GET_STR_CONFIG("uploadPersonUrl"); |
| | | // string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; |
| | | } else { |
| | | str_serUrl = GET_STR_CONFIG("uploadPersonUrl"); |
| | | // string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; |
| | | } |
| | | std::thread sendPerson(uploadPersonToServer, this, str_serUrl, strUUID, img_url, idcard, |
| | | feature_base64); |
| | | sendPerson.detach(); |
| | | } |
| | | |
| | |
| | | //#更新底库管理表 |
| | | FieldValues fieldValues; |
| | | fieldValues.insert(std::make_pair("uuid", Uuid)); |
| | | if (TableName.find("lt_") != 0) { |
| | | TableName.insert(0, "lt_"); |
| | | } |
| | | fieldValues.insert(std::make_pair("tableName", TableName)); |
| | | // fieldValues.insert(std::make_pair("tableDesc", "ceshi2")); |
| | | fieldValues.insert(std::make_pair("tableType", TableType)); |
| | | fieldValues.insert(std::make_pair("bwType", BwType)); |
| | |
| | | |
| | | if (TableType == "person") { |
| | | if (SyncType == 1) { |
| | | fieldValues.insert(std::make_pair("tableName", TableName)); |
| | | //同步库 |
| | | ret = erlangDbTool->updateDatabase("sys_o_tables", fieldValues); |
| | | } else if (SyncType == 0) { |
| | | if (TableName.find("lt_") != 0) { |
| | | TableName.insert(0, "lt_"); |
| | | } |
| | | fieldValues.insert(std::make_pair("tableName", TableName)); |
| | | //本地库 |
| | | ret = m_SqliteFaceEncap.updateTable("sys_o_tables", fieldValues); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | void devHttpServer_c::uploadPersonToServer(devHttpServer_c *t_ptrThis, std::string parm_uuid, std::string parm_img_url, |
| | | std::string parm_idcard, |
| | | std::string parm_fea) { |
| | | void devHttpServer_c::uploadPersonToServer(devHttpServer_c *t_ptrThis, std::string sendUrl, std::string parm_uuid, |
| | | std::string parm_img_url, std::string parm_idcard, std::string parm_fea) { |
| | | HttpRequestWithCrul m_requestWithCrul; |
| | | Json::Value perInfos; |
| | | Json::Value perInfo; |
| | |
| | | perInfo["cardId"] = parm_idcard;//图片描述 |
| | | perInfos.append(perInfo); |
| | | |
| | | std::string str_serIp = GET_STR_CONFIG("mainServerIp"); |
| | | std::string str_serPort = GET_STR_CONFIG("mainServerPort"); |
| | | |
| | | // string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; |
| | | string sendUrl = str_serIp; |
| | | sendUrl.append(":").append(str_serPort).append("/addPerson/uploadToTemporary"); |
| | | string postParams = perInfos.toStyledString(); |
| | | string str_addRes; |
| | | |