| | |
| | | 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) { |
| | |
| | | // 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::string str_serIp = GET_STR_CONFIG("mainServerIp"); |
| | | std::string str_serPort = GET_STR_CONFIG("mainServerPort"); |
| | | |
| | | std::string str_serUrl; |
| | | if (1) { |
| | | str_serUrl = GET_STR_CONFIG("uploadPersonUrl"); |
| | | // string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary"; |
| | | string sendUrl = str_serIp; |
| | | sendUrl.append(":").append(str_serPort).append("/addPerson/uploadToTemporary"); |
| | | |
| | | std::thread sendPerson(uploadPersonToServer, this, sendUrl, strUUID, img_url, idcard, feature_base64); |
| | | } 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(); |
| | | } |
| | | |
| | |
| | | // |
| | | std::string getFacesFromTableSql(std::string tableName) { |
| | | std::string sql = |
| | | "select uuid,feature,create_time,faceUrl,del_flag from " + tableName + |
| | | "_fea where feature is not null "; |
| | | "select uuid,feature,create_time,faceUrl,del_flag from '" + tableName + |
| | | "_fea' where feature is not null "; |
| | | return sql; |
| | | } |
| | | |
| | | std::string getTableListSqlWithType(std::string type) { |
| | | std::string sql = "select tableName,del_flag from " + g_tableName + " where del_flag = 0"; |
| | | std::string sql = "select tableName,del_flag from '" + g_tableName + "' where del_flag = 0"; |
| | | if (type.size() > 0) { |
| | | sql.append(" and tableType = '" + type + "'"); |
| | | } |
| | |
| | | } |
| | | |
| | | std::string getTableInfosSql(std::string tableName) { |
| | | std::string sql = "select * from " + tableName;// + " where del_flag = 0"; |
| | | std::string sql = "select * from '" + tableName+"';";// + " where del_flag = 0"; |
| | | return sql; |
| | | } |
| | | |
| | |
| | | std::string getTableInfosSql() { |
| | | //uuid,tableName,tableDesc,tableType,bwType,startTime,endTime |
| | | std::string sql = |
| | | "select uuid,tableName,tableType,bwType,startTime,endTime,uploadFlag,cmpThreshold,enabled from " + |
| | | g_tableName + " where del_flag = 0"; |
| | | "select uuid,tableName,tableType,bwType,startTime,endTime,uploadFlag,cmpThreshold,enabled from '" + |
| | | g_tableName + "' where del_flag = 0"; |
| | | return sql; |
| | | } |
| | | |
| | |
| | | str_fea.assign(feature.begin(), feature.end()); |
| | | |
| | | std::stringstream sql;//= ; |
| | | sql << "INSERT INTO " << tableName << " ("; |
| | | sql << "INSERT INTO '" << tableName << "' ("; |
| | | //std::string sqlTemp = sql; |
| | | std::string sql2 = ") VALUES(\""; |
| | | if (id >= 0) { |
| | |
| | | //#todo errInfo |
| | | return "tableName or fieldValues is NULL"; |
| | | } |
| | | std::string sql = "DELETE from " + tableName + " where 1 = 1 "; |
| | | std::string sql = "DELETE from '" + tableName + "' where 1 = 1 "; |
| | | for (auto item : fieldValues) { |
| | | if (item.first.size() != 0) { |
| | | sql.append("and " + item.first + " = '" + item.second + "' "); |
| | |
| | | //#todo errInfo |
| | | return "tableName or fieldValues is NULL"; |
| | | } |
| | | std::string sql = "INSERT INTO " + tableName + " ("; |
| | | std::string sql = "INSERT INTO '" + tableName + "' ("; |
| | | std::string sqlTemp = sql; |
| | | std::string sql2 = ") VALUES('"; |
| | | for (auto item : fieldValues) { |
| | |
| | | sql = sql.substr(0, sql.length() - 1); |
| | | //sql2 delete 2 ,' add ) |
| | | sql2 = sql2.substr(0, sql2.length() - 2); |
| | | sql2.append(" )"); |
| | | sql2.append(" );"); |
| | | sql.append(sql2); |
| | | return sql; |
| | | } |
| | |
| | | return "tableName is NULL"; |
| | | } |
| | | // 人员信息表 |
| | | std::string sql = "CREATE TABLE " + g_dbName + "."; |
| | | std::string sql = "CREATE TABLE " + g_dbName + ".'"; |
| | | sql.append(tableName); |
| | | sql.append(" ( uuid varchar(255) PRIMARY KEY,"); |
| | | sql.append("' ( uuid varchar(255) PRIMARY KEY,"); |
| | | sql.append("personName varchar(255) DEFAULT NULL,"); |
| | | sql.append("age varchar(255) DEFAULT NULL,"); |
| | | sql.append("sex varchar(255) DEFAULT NULL,"); |
| | |
| | | sql.append("del_flag INTEGER DEFAULT 0"); |
| | | sql.append(");"); |
| | | // 人脸特征表 |
| | | sql.append("CREATE TABLE " + g_dbName + "."); |
| | | sql.append(tableName + "_fea"); |
| | | sql.append("CREATE TABLE " + g_dbName + ".'"); |
| | | sql.append(tableName + "_fea'"); |
| | | sql.append(" ( uuid varchar(255) PRIMARY KEY,"); |
| | | sql.append(" feature BLOB NOT NULL,"); |
| | | sql.append(" faceUrl BLOB NOT NULL,"); |
| | |
| | | SQLERR("fieldValues size is error"); |
| | | return ""; |
| | | } |
| | | std::string sql = "update "; |
| | | sql.append(tableName + " set "); |
| | | std::string sql = "update '"; |
| | | sql.append(tableName + "' set "); |
| | | for (auto &item :fieldValues) { |
| | | sql.append(item.first + " = '" + item.second + "',"); |
| | | } |
| | | sql.append(" update_time ='" + AppUtil::getTimeSecString() + "'"); |
| | | sql.append(" where uuid ='" + uuid + "'"); |
| | | sql.append(" where uuid ='" + uuid + "';"); |
| | | return sql; |
| | | } |
| | | |
| | |
| | | //#todo errInfo |
| | | return "tableName is NULL"; |
| | | } |
| | | std::string sql = "DROP TABLE " + g_dbName + "." + tableName + ";"; |
| | | sql.append("DROP TABLE " + g_dbName + "." + tableName + "_fea;"); |
| | | std::string sql = "DROP TABLE " + g_dbName + ".'" + tableName + "';"; |
| | | sql.append("DROP TABLE " + g_dbName + ".'" + tableName + "_fea';"); |
| | | return sql; |
| | | } |
| | | |
| | |
| | | { |
| | | "mainServerIp": "192.168.1.182", |
| | | "mainServerPort": "3697", |
| | | "logPath": "/home/basic/work/log/", |
| | | "uploadPersonUrl": "192.168.1.203:3697/addPerson/uploadToTemporary", |
| | | "DEV_ID": "DSVAD010120181119", |
| | | "ES_IP": "192.168.1.122", |
| | | "ES_PORT": 9200, |
| | | "FaceDetectionSampleSize": 720, |
| | | "FaceSeachSleepTime": 60, |
| | | "TotalLoadSize": "500", |
| | | "buildAddr": "/home/basic/Apps/QiaoJiaSystem/build/", |
| | | "clusterID": "d26c8fdd-bcdc-4819-990f-d7b44068cd88", |
| | | "cutPath": "/home/basic/work/qiaojia/cut", |
| | | "erlCookie": "", |
| | | "erlFatherNode": "", |
| | | "erlNode": "", |
| | | "erlPath": "", |
| | | "encode_thread_num": 3, |
| | | "erlCookie": "123", |
| | | "erlFatherNode": " ", |
| | | "erlNode": "d813ec12-d065-4792-8144-2edfbf0e6228@192.168.1.116", |
| | | "erlPath": "/opt/erlang/d813ec12-d065-4792-8144-2edfbf0e6228", |
| | | "loadPath": "/home/basic/work/qiaojia/load", |
| | | "localPasswd": "123456", |
| | | "netIfName": "enp3s0", |
| | | "srsAddr": "rtmp://192.168.1.122:1934/live/", |
| | | "webPort": 11111, |
| | | "redis_ip": "127.0.0.1", |
| | | "logPath": "/home/pans/work/log/", |
| | | "mainServerIp": "192.168.1.182", |
| | | "mainServerPort": "3697", |
| | | "netIfName": "wlo1", |
| | | "redis_buf_len": 750, |
| | | "encode_thread_num": 3, |
| | | "FaceDetectionSampleSize": 720, |
| | | "clusterID" : "sssss" |
| | | "redis_ip": "127.0.0.1", |
| | | "srsAddr": "rtmp://192.168.1.122:1934/live/", |
| | | "webPort": 11111 |
| | | } |
| | |
| | | ErlMessage emsg; /* Incoming message */ |
| | | int ret = -1; |
| | | ETERM *arrlist[7]; |
| | | arrlist[0] = erl_mk_atom(strSql.c_str()); |
| | | arrlist[0] = erl_mk_string(strSql.c_str()); |
| | | ETERM *list = erl_mk_list(arrlist, 1); |
| | | |
| | | ret = erl_rpc_to(m_fd, "syncDB", "exeSomeSql", list); |
| | |
| | | return false; |
| | | } |
| | | |
| | | bool ErlangTool::ErlangDbTool::updatePerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues) { |
| | | // #todo 记得测试中文 只有人员信息表更新,特征更新暂时没做 |
| | | // bool ret = updateFaceData(t_tableName + "_fea", faceData); |
| | | // updateFaceInfo(t_tableName, fieldValues); |
| | | std::string strSql = getUpdateFaceTableSql(t_tableName, fieldValues); |
| | | // FieldValues fieldValues2; |
| | | |
| | | return getExecSqlResult(strSql); |
| | | } |
| | | |
| | | ErlangTool::vec_AddDataCache |
| | | ErlangTool::ErlangDbTool::addPersons(std::string TableUuid, std::vector<SyncDB::AddPersonInfo> &tmpPer) { |
| | |
| | | std::string IdCard = " ", std::string PersonName = " ", std::string Age = " ", |
| | | std::string Sex = " ", std::string PhoneNum = " "); |
| | | |
| | | bool updatePerson(std::string t_tableName, AddFaceData &faceData, FieldValues &fieldValues); |
| | | |
| | | vec_AddDataCache addPersons(std::string TableUuid, std::vector<SyncDB::AddPersonInfo> &tmpPer); |
| | | |
| | | /*** |