From 8bfd4cc90f25f1800eb5e61d50d4fa74854e0f2a Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期一, 28 一月 2019 16:41:30 +0800
Subject: [PATCH] 布控上传修改

---
 QiaoJiaSystem/build/DataWebServer                           |    0 
 QiaoJiaSystem/build/configjson说明.md                         |  121 ++++++++++
 QiaoJiaSystem/DataManagerServer/http_configserver.cpp       |   81 ++++++
 QiaoJiaSystem/StructureApp/PerimeterElement.cpp             |   94 +++----
 QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp |    6 
 QiaoJiaSystem/DataManagerServer/http_configserver.h         |    3 
 QiaoJiaSystem/DataManagerServer/web-server接口.txt            |  219 +++++++++++------
 QiaoJiaSystem/build/config.json                             |   50 ++--
 syncDBTool/ErlangDbTool.cpp                                 |    2 
 QiaoJiaSystem/DataManagerServer/uploadDataInterface.md      |   98 ++++++++
 QiaoJiaSystem/StructureApp/AppPipeController.h              |   24 +
 11 files changed, 520 insertions(+), 178 deletions(-)

diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index 9a632e9..d4cd14c 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1873,6 +1873,8 @@
         std::string Enabled = value["enabled"].asString();
         Enabled = Enabled.empty() ? "1" : Enabled;
 
+        std::string createBy = value["createBy"].asString();
+
         bool ret = false;
         FieldValues fieldValues;
         fieldValues.insert(std::make_pair("uuid", Uuid));
@@ -1908,6 +1910,10 @@
             return "";
         }
 
+        {
+//            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+        }
 
         erlangDbTool->sendMessage();
         std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
@@ -1941,6 +1947,8 @@
         std::string TableName = value["TableName"].asString();
         int SyncType = atoi(value["SyncType"].asCString());
 
+        std::string createBy = value["createBy"].asString();
+
         bool ret = false;
         if (TableType == "person") {
             if (SyncType == 1) {
@@ -1962,6 +1970,10 @@
             return "";
         }
 
+        {
+//            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+        }
         erlangDbTool->sendMessage();
         std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
         return str_result;
@@ -2051,7 +2063,7 @@
             subJson.append("\"IsSync\":\"" + item.uploadFlag + "\",");
             subJson.append("\"threshold\":\"" + item.cmpThreshold + "\",");
             subJson.append("\"create_by\":\"" + item.createBy + "\",");
-            subJson.append("\"enabled\":\"" + item.enabled + "\",");
+            subJson.append("\"enabled\":\"" + item.enabled + "\"");
             subJson.append("},");
             json.append(subJson);
         }
@@ -2092,6 +2104,7 @@
         std::string SyncType = value["SyncType"].asString();
         std::string TableId = value["TableId"].asString();
         std::string BwType = value["BwType"].asString();
+        std::string createBy = value["createBy"].asString();
 
         std::string UploadFlag = "-1";
         if (SyncType == "1") {
@@ -2108,12 +2121,12 @@
 
         DBG("content: " << TableName << "," << img_url << "," << idcard << "," << strUUID << "," << UploadFlag << ","
                         << Enabled << "," << TableType << "," << SyncType << "," << TableId);
+
         cv::Mat image;
         getMat(img_url, img_base64, image);
         if (image.empty()) {
             response->write(SimpleWeb::StatusCode::server_error_not_implemented, "{\"error\":\"not found img\"}");
             return "";
-//            return "{\"error\":\"not found img\"}";
         }
 
         thread::id pid = std::this_thread::get_id();
@@ -2181,15 +2194,15 @@
 //            usleep(100);
             erlangDbTool->sendMessage();
 
-            if (UploadFlag == "1") {
+            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 榛戝悕鍗曚笂浼�
+                } else if (BwType == "1") {
+                    UploadPersonToMonitorCenter(img_url, idcard, strUUID, feature_base64, TableId, Enabled);
                 }
-
+            } else {
+//                涓嶄笂浼�
             }
             return str_result;
         } else {
@@ -2338,6 +2351,10 @@
 //                } else {
 //                    //todo send person to backServer
 ////#TODO 榛戝悕鍗曚笂浼�
+            {
+//            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+            }
 //                }
 //            }
             return str_result;
@@ -2417,10 +2434,11 @@
 devHttpServer_c::UploadPersonToUserCenter(string &img_url, string &idcard, string &strUUID, string &feature_base64) {
     string str_serIp = GET_STR_CONFIG("mainServerIp");
     string str_serPort = GET_STR_CONFIG("mainServerPort");
+    string str_serUrl = GET_STR_CONFIG("mainServerrUrl");
 
 //  string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary";
     string sendUrl = str_serIp;
-    sendUrl.append(":").append(str_serPort).append("/addPerson/uploadToTemporary");
+    sendUrl.append(":").append(str_serPort).append(str_serUrl);
 
     Json::Value perInfos;
     Json::Value perInfo;
@@ -2434,6 +2452,39 @@
     perInfo["photos"] = img_url;
     perInfo["featureBase64"] = feature_base64;
     perInfo["cardId"] = idcard;//鍥剧墖鎻忚堪
+    perInfos.append(perInfo);
+
+    thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString());
+    sendPerson.detach();
+}
+
+void
+devHttpServer_c::UploadPersonToMonitorCenter(string &img_url, string &idcard, string &strUUID, string &feature_base64,
+                                             string &strTableId, string &strControl) {
+
+//  string sendUrl = "192.168.1.203:3697/addPerson/uploadToTemporary";
+    string sendUrl = GET_STR_CONFIG("addFromAnalyUrl");
+
+    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["featureBase64"] = feature_base64;
+    perInfo["cardId"] = idcard; // 鍥剧墖鎻忚堪
+
+    perInfo["taskId"] = strTableId; // 搴曞簱id
+    perInfo["isControl"] = strControl; // 甯冩帶鐘舵�侊紙0涓烘湭甯冩帶锛�1涓哄凡甯冩帶锛�
+
     perInfos.append(perInfo);
 
     thread sendPerson(uploadServer, this, sendUrl, perInfos.toStyledString());
@@ -2469,6 +2520,7 @@
                     subJson.append("\"uuid\":\"" + item.second.uuid + "\",");
                     subJson.append("\"tableName\":\"" + TableName + "\",");
                     subJson.append("\"idcard\":\"" + t_faceInfoCache[item.second.uuid].idCard + "\",");
+                    subJson.append("\"enable\":\"" + item.second.enable + "\",");
                     subJson.append("\"imgUrl\":\"" + item.second.faceurl + "\"");
 //                subJson.append("\"feature\":\"" + item.second.feature + "\",");
                     //#todo modifysvn upda  svn comm
@@ -2490,6 +2542,7 @@
                     subJson.append("\"uuid\":\"" + item.second.id + "\",");
                     subJson.append("\"tableName\":\"" + TableName + "\",");
                     subJson.append("\"idcard\":\"" + item.second.idcard + "\",");
+                    subJson.append("\"enable\":\"" + item.second.enable + "\",");
                     subJson.append("\"imgUrl\":\"" + item.second.img + "\"");
 //                subJson.append("\"feature\":\"" + item.second.feature + "\",");
                     //#todo modifysvn upda  svn comm
@@ -2541,6 +2594,8 @@
         std::string UploadFlag = value["IsSync"].asString();
         std::string CmpThreshold = value["threshold"].asString();
         std::string Enabled = value["enabled"].asString();
+        Enabled = Enabled.empty() ? "1" : Enabled;
+        std::string createBy = value["createBy"].asString();
 
         bool ret = false;
         //#鏇存柊搴曞簱绠$悊琛�
@@ -2580,6 +2635,10 @@
             return "";
         }
 
+        {
+//            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+        }
 
         erlangDbTool->sendMessage();
         std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
@@ -2607,6 +2666,7 @@
     if (reader.parse(content, value)) {
         std::string TableName = value["TableName"].asString();
         std::string strUUID = value["uuid"].asString();
+        std::string createBy = value["createBy"].asString();
 
         bool ret = false;
         if (TableName.find("lt_") == 0) {
@@ -2614,7 +2674,10 @@
         } else {
             ret = erlangDbTool->delPerson(strUUID, TableName);
         }
-
+        {
+//            #todo 涓婁紶銆備粎榛戝悕鍗曘��
+//            #TODO 鏍规嵁createBy鍒ゆ柇鏄惁闇�瑕佷笂浼�
+        }
         erlangDbTool->sendMessage();
         std::string str_result = std::string("{\"result\":").append("\"" + std::to_string(ret) + "\"}");
         return str_result;
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.h b/QiaoJiaSystem/DataManagerServer/http_configserver.h
index b25f94a..41625ab 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.h
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.h
@@ -192,6 +192,9 @@
     void devHttpServer_c::UploadPersonToUserCenter(string &img_url, string &idcard, string &strUUID,
                                                    string &feature_base64);
 
+    void devHttpServer_c::UploadPersonToMonitorCenter(string &img_url, string &idcard, string &strUUID,
+                                                      string &feature_base64, string &strTableId, string &strControl);
+
     void
     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;
diff --git a/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md b/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md
new file mode 100644
index 0000000..993df8c
--- /dev/null
+++ b/QiaoJiaSystem/DataManagerServer/uploadDataInterface.md
@@ -0,0 +1,98 @@
+
+
+----
+
+#1.璋冪敤鍒涘缓甯冩帶鎶ヨ搴曞簱浠诲姟
+
+192.168.1.184:3699/addTaskByNode
+
+
+
+    {
+    	"TableName": "test",                //琛ㄥ悕
+    	"SyncType": "1",                    //鍚屾绫诲瀷  1鍚屾/0鏈湴搴�
+    	"StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂�
+    	"EndTime": "2018-12-31 01:02:00"    //缁撴潫鏃堕棿
+    	"IsSync":"",   						//  鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸
+    	"threshold":0-100,					// 鍥剧墖闃堝��   0-100
+    	"enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+    	"uuid":"uuid-搴曞簱id",
+    	"cluId":"",
+    	"devId":""
+    }
+
+
+//琛ㄧ被鍨嬩负 person 鐨勬暟鎹洰鍓嶈皟鐢ㄥ竷鎺�  "TableType": "person",   
+//榛戠櫧鍚嶅崟  1榛戝悕鍗� "BwType": "1",   甯冩帶鍙榛戝悕鍗�      
+----
+
+#2.璋冪敤涓婁紶甯冩帶浜哄憳鎺ュ彛
+   鍒嗘瀽璁惧涓婁紶甯冩帶浜哄憳
+   
+    path锛歩p:3699/data/api-c/taskUser/addFromAnaly
+    鍙傛暟锛�
+    userId     浜哄憳ID(蹇呴渶)
+    userName   濮撳悕 锛堝彲绌猴級  
+    idCard     韬唤璇佸彿锛堝彲浠ヤ笉鍑嗭級 
+    sex        (0涓哄コ锛�1涓虹敺) 鎬у埆锛堝彲绌猴級
+    mobile     鎵嬫満鍙凤紙鍙┖锛�
+    taskId     搴曞簱id     
+    imgUrl     鍥剧墖鐨刦stdfs璺緞锛堝繀闇�锛�
+    featureBase64   鍥剧墖鐨勭壒寰佸�硷紙蹇呴渶锛�  锛堜互base64鏍煎紡绌胯繃鏉ワ級
+    isControl   甯冩帶鐘舵�侊紙0涓烘湭甯冩帶锛�1涓哄凡甯冩帶锛�
+    璇锋眰绫诲瀷锛歨ttpMethod = "POST"(json)
+    
+----
+
+#3.浜哄憳绠$悊涓婁紶浜哄憳鎺ュ彛
+    浜哄憳ID(蹇呴渶)锛� id   渚嬪锛歅SSVR010120181208175534014
+    濮撳悕锛堝彲绌猴級  name  
+    韬唤璇佸彿锛堝彲浠ヤ笉鍑嗭級cardId  
+    鎬у埆锛堝彲绌猴級gender
+    鎵嬫満鍙凤紙鍙┖锛塸hone
+    闆嗙兢id锛堝繀闇�锛塪istributionIds
+    闆嗙兢鍚嶇О锛堝繀闇�锛塪istributionNames
+    鍥剧墖鐨刦stdfs璺緞锛堝繀闇�锛塸hotos
+    鍥剧墖鐨勭壒寰佸�硷紙蹇呴渶锛塮eatureBase64  锛堜互base64鏍煎紡绌胯繃鏉ワ級  
+    
+    鏁版嵁绫诲瀷锛屾病鏍囨敞鐨勯兘鏄瓧绗︿覆
+    娉ㄦ剰浼犺緭鏃剁殑椹煎嘲寮忓懡鍚�
+
+
+浼犲弬涓句緥锛�
+
+        [
+            {
+                "name":鈥滃紶涓夆��,
+                "cardId":"130430199809090876",
+                "gender":"鐢�",
+                "phone":"13700678954",
+                "deviceId":"DSPAD010120181101",
+                鈥漝istributionIds鈥�:"fcjaw-soifaw-2134-432",
+                "distributionNames":"pad1",
+                "photos":"group1/M00/01/90/wKgBy1wLa-qAA5cJAABHxJUyH0A935.jpg",
+                "featureBase64  ":"kQZbUt48zxqUQfwv/r2mYfCz/VU5K7lg3KIgBdrc/+=="
+            },
+            {
+                "name":鈥滈噷鏂��,
+                "cardId":"130430199809090876",
+                "gender":"鐢�",
+                "phone":"13700678954",
+                鈥漝istributionIds鈥�:"fcjaw-soifaw-2134-432",
+                "distributionNames":"pad1",
+                "photos":"group1/M00/01/90/wKgBy1wLa-qAA5cJAABHxJUyH0A935.jpg",
+                "featureBase64  ":"kQZbUt48zxqUQfwv/r2mYfCz//+=="
+            }
+        ]
+
+璇锋眰鏂规硶涓簆ost锛屼互json鏍煎紡浼犺緭锛屾敮鎸佹壒閲忎笂浼�
+鐩墠鐨刬p涓�203
+鎺ュ彛璺緞锛欼P锛�3697/addPerson/uploadToTemporary
+
+
+---
+
+
+
+
+
diff --git "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
index 5091681..09d5596 100644
--- "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
+++ "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
@@ -393,29 +393,36 @@
 	"error": ["erlang is null"]
 }
 
+#TODO 甯冩帶
 鍒涘缓搴曞簱 createDatabase
 涓嬪彂锛�
 {
+    "createBy","",						//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
 	"TableType": "person",              //琛ㄧ被鍨媝erson/car
 	"TableName": "test",                //琛ㄥ悕
-	"SyncType": "1",                    //鍚屾绫诲瀷1鍚屾/0鏈湴搴�
-	"BwType": "1",                      //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗�
+	"SyncType": "1",                    //鍚屾绫诲瀷  1鍚屾/0鏈湴搴�
+	"BwType": "1",                      //榛戠櫧鍚嶅崟  1榛戝悕鍗�/0鐧藉悕鍗�
 	"StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂�
 	"EndTime": "2018-12-31 01:02:00"    //缁撴潫鏃堕棿
+	"IsSync":"",   						//  鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸
+	"threshold":0-100,						// 鍥剧墖闃堝��   0-100
+	"enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+	"uuid":"uuid-搴曞簱id"
 }
 杩斿洖锛�
 {
-    "results": "1" //0澶辫触1鎴愬姛
+    "results": "1", //0澶辫触1鎴愬姛
 }
 閿欒锛�
 {
-	"error": ["erlang is null"||"err_json"]
+	"error": "erlang is null/err_json/搴曞簱宸插瓨鍦�"
 }
 
-
+#TODO 甯冩帶
 鏇存柊搴曞簱 updateDatabase
 涓嬪彂锛�
 {
+    "createBy","",						//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
     "uuid":"",                          //琛╱uid
 	"TableType": "person",              //琛ㄧ被鍨媝erson/car
 	"TableName": "test",                //琛ㄥ悕
@@ -423,19 +430,26 @@
 	"BwType": "1",                      //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗�
 	"StartTime": "2018-01-01 01:02:00", //寮�濮嬫椂闂�
 	"EndTime": "2018-12-31 01:02:00"    //缁撴潫鏃堕棿
+	"IsSync":"",   						//鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸
+	"threshold":0-100,					// 鍥剧墖闃堝��   0-100
+	"enabled":"1"                        // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
 }
+// 鏇存柊 闈� null 瀛楁鍊�
+// 鍋滄鍚敤鏃讹紝杩欒竟 鍙細浼�  {"enabled":"0","uuid":""}锛屾墍浠ラ渶瑕佷笂闈㈢殑鏉′欢
 杩斿洖锛�
 {
     "results": "1" //0澶辫触1鎴愬姛
 }
 閿欒锛�
 {
-	"error": ["erlang is null"||"err_json"]
+	"error": "erlang is null/err_json"
 }
 
+#TODO 甯冩帶
 鍒犻櫎搴曞簱 deleteDatabase
 涓嬪彂锛�
 {
+    "createBy","",		    //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
     "uuid":"",              //琛╱uid
 	"TableType": "car",     //琛ㄧ被鍨媝erson/car
 	"TableName": "test2",   //琛ㄥ悕
@@ -447,87 +461,26 @@
 }
 閿欒锛�
 {
-	"error": ["erlang is null"||"err_json"]
+	"error": "erlang is null/err_json/搴曞簱宸插瓨鍦�"
 }
-
 #鍒犻櫎淇敼琛ㄦ椂,琛ㄥ悕涓嶅姞 lt_;闇�瑕佷紶SyncType 瀛楁
+#鍒犻櫎淇敼娣诲姞鏌ヨ搴曞簱浜哄憳鏁版嵁鏃�,闇�瑕佸簳搴撳悕绉板姞  lt_
 
-# 鍒犻櫎淇敼娣诲姞鏌ヨ搴曞簱浜哄憳鏁版嵁鏃�,闇�瑕佸簳搴撳悕绉板姞  lt_
-
-
-鏌ユ壘鍚屾搴曞簱 findAllDatabase
-涓嬪彂锛�
-杩斿洖锛�
-[{
-	"uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid
-	"tableName": "test",                            //琛ㄥ悕
-	"tableType": "person",                          //琛ㄧ被鍨�
-	"bwType": "1",                                  //榛戠櫧鍚嶅崟绫诲瀷
-	"start_time": "2018-01-01 01:02:00",            //寮�濮嬫椂闂�
-	"end_time": "2018-12-31 01:02:00"               //缁撴潫鏃堕棿
-}]
-閿欒锛�
-{
-	"error": "erlang is null"
-}
-
-鏌ユ壘鍚屾搴曞簱 findLocalDatabase
-涓嬪彂锛氭棤
-杩斿洖锛�
-[{
-	"uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid
-	"tableName": "test",                            //琛ㄥ悕
-	"tableType": "person",                          //琛ㄧ被鍨�
-	"bwType": "1",                                  //榛戠櫧鍚嶅崟绫诲瀷
-	"start_time": "2018-01-01 01:02:00",            //寮�濮嬫椂闂�
-	"end_time": "2018-12-31 01:02:00"               //缁撴潫鏃堕棿
-}]
-閿欒锛�
-{
-	"error": "erlang is null"
-}
-
-#d
-
-鍔犺浇搴曞簱鏁版嵁 loadFaceFeaData
+#TODO 甯冩帶
+娣诲姞浜哄憳 addPerson  锛坕mg_url鍜宨mg_base64浜岄�変竴锛�
 涓嬪彂锛�
 {
-    "TableName":"test"  //琛ㄥ悕
-}
-杩斿洖锛�
-[{
-		"uuid": "00b429d6-3746-57b9-8123-0dbf134731d2",         //UUID
-		"tableName": "test",                                    //琛ㄥ悕
-		"idcard": "123456789012345678",                         //韬唤璇佸彿
-		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCAbYeQAB86k1llhSw841.jpg"
-	},
-	{
-		"uuid": "0148cb5c-2232-5b02-9a00-f1f9a6b71de7",
-		"tableName": "test",
-		"idcard": "123456789012345678",
-		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCADeQUABVsWlPEN7w947.jpg"
-	},
-	{
-		"uuid": "01f20455-32bf-5c6e-b7b8-dea1395049a0",
-		"tableName": "test",
-		"idcard": "123456789012345678",
-		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOct-Aaz39ACP45aaRJUY002.jpg"
-	}
-]
-閿欒锛�
-{
-	"error": ["erlang is null"||"err_json"]
-}
-
-
-娣诲姞鎴栬�呮洿鏂颁汉鍛� addPerson
-涓嬪彂锛�
-{
+    "createBy","",							//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
+	"enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
 	"uuid": "",             //娣诲姞浜哄憳鏃惰涓虹┖""
-	"TableName": "test",    //琛ㄥ悕
-	"img_url ": "http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg",
-	"idcard : 123456789012345678",  //韬唤璇乮d
-	"img_base64 ": ""               //鍥剧墖base64
+	"TableId": "test",    //琛╥d
+	"TableName":"",          //琛ㄥ悕
+	"TableType":"person",         //person
+	"BwType":"",           //榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗�
+	"SyncType":"1",                    //鍚屾绫诲瀷1鍚屾/0鏈湴搴�
+	"img_url":"http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg",
+	"idcard":"123456789012345678",  //韬唤璇佹弿杩�
+	"img_base64": ""               //鍥剧墖base64鐮�
 }
 杩斿洖锛�
 {
@@ -539,12 +492,116 @@
 	"error": ["erlang is null"||"err_json"]
 }
 
+#TODO 甯冩帶
+鏇存柊浜哄憳 updatePerson
+涓嬪彂锛�
+{
+    "createBy","",							//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
+	"enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+	"uuid": "",
+	"TableId": "test",    //琛╥d
+	"TableName":"",          //琛ㄥ悕
+	"TableType":"person",
+	"BwType":"",					//榛戠櫧鍚嶅崟1榛戝悕鍗�/0鐧藉悕鍗�
+	"SyncType":"1",                 //鍚屾绫诲瀷1鍚屾/0鏈湴搴�
+	"img_url":"http: //192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg",
+	"idcard":"123456789012345678",  //韬唤璇乮d
+	"img_base64": ""               //鍥剧墖base64鐮�
+}
+杩斿洖锛�
+{
+	"uuid": "82ee3b83-da2c-5d18-8cfa-f15e3ec4c9d4",
+	"img_url": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuGADRA_ABzanOgXxUE975.jpg"
+}
+閿欒锛�
+{
+	"error": ["erlang is null"||"err_json"]
+}
 
+#TODO 甯冩帶
+鏌ユ壘鍚屾搴曞簱 findAllDatabase
+涓嬪彂锛�
+杩斿洖锛�
+[{
+	"uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid
+	"tableName": "test",                            //琛ㄥ悕
+	"tableType": "person",                          //琛ㄧ被鍨�
+	"bwType": "1",                                  //榛戠櫧鍚嶅崟绫诲瀷
+	"start_time": "2018-01-01 01:02:00",            //寮�濮嬫椂闂�
+	"end_time": "2018-12-31 01:02:00",              //缁撴潫鏃堕棿
+	"IsSync":"",   						//鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸
+    "threshold":0-100,					// 鍥剧墖闃堝��   0-100
+    "enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+    "createBy",""						//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
+}]
+閿欒锛�
+{
+	"error": "erlang is null"
+}
+
+#TODO 甯冩帶
+鏌ユ壘鍚屾搴曞簱 findLocalDatabase
+涓嬪彂锛氭棤
+杩斿洖锛�
+[{
+	"uuid": "e92a005e-fc19-56b5-8a23-53570bc270ae", //琛╱uid
+	"tableName": "test",                            //琛ㄥ悕
+	"tableType": "person",                          //琛ㄧ被鍨�
+	"bwType": "1",                                  //榛戠櫧鍚嶅崟绫诲瀷
+	"start_time": "2018-01-01 01:02:00",            //寮�濮嬫椂闂�
+	"end_time": "2018-12-31 01:02:00",              //缁撴潫鏃堕棿
+	"IsSync":"",   						//鏄惁鍚屾鍒板悗鍙颁复鏃跺簱 1 鏄� 0 涓嶆槸
+    "threshold":0-100,					// 鍥剧墖闃堝��   0-100
+    "enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+    "createBy",""						//鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
+}]
+閿欒锛�
+{
+	"error": "erlang is null"
+}
+
+#TODO 甯冩帶
+鍔犺浇搴曞簱鏁版嵁 loadFaceFeaData
+涓嬪彂锛�
+{
+    "TableName":"test"  //琛ㄥ悕
+}
+杩斿洖锛�
+[{
+		"uuid": "00b429d6-3746-57b9-8123-0dbf134731d2",         //UUID
+		"tableName": "test",                                    //琛ㄥ悕
+		"idcard": "123456789012345678",                         //韬唤璇佸彿
+        "enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCAbYeQAB86k1llhSw841.jpg"
+	},
+	{
+		"uuid": "0148cb5c-2232-5b02-9a00-f1f9a6b71de7",
+		"tableName": "test",
+		"idcard": "123456789012345678",
+        "enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOcuCADeQUABVsWlPEN7w947.jpg"
+	},
+	{
+		"uuid": "01f20455-32bf-5c6e-b7b8-dea1395049a0",
+		"tableName": "test",
+		"idcard": "123456789012345678",
+        "enabled":"1",                      // 鏄惁鍚敤  1鍚敤 0鏈惎鐢�
+		"imgUrl": "http://192.168.1.188/group1/M00/00/01/wKgBvFuOct-Aaz39ACP45aaRJUY002.jpg"
+	}
+]
+閿欒锛�
+{
+	"error": ["erlang is null"||"err_json"]
+}
+
+#TODO 甯冩帶
 娣诲姞鎴栬�呮洿鏂颁汉鍛� delPerson
 涓嬪彂锛�
 {
+	"TableId": "test",    //琛╥d
 	"uuid": "",
 	"TableName": "test"    //琛ㄥ悕
+    "createBy","",		   //鍒涘缓鑰�/鍒嗘瀽璁惧analyDev.甯冩帶骞冲彴conCemter
 }
 杩斿洖锛�
 {
diff --git a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
index c8e3613..ddcd788 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
@@ -107,8 +107,12 @@
                 //#todo 闈炲悓姝ュ簱鏄惁闇�瑕佹瘮杈冿紵
 
                 DBG("m_faceFCMAP compare start " << it.first);
+//                瀵规瘮鍒嗘暟,鎽勫儚鏈哄垎鏁板拰甯冩帶搴撳垎鏁帮紝璋佷綆鎸夎皝?鏆傛椂涓嶅仛
+//                if(){
+//                }
+//                score
 //                瀵规瘮鍑芥暟
-                t_FaceFC->compare(key, &featureData, topN);
+                t_FaceFC->compare(key, &featureData, topN,);
                 DBG("m_faceFCMAP compare end " << it.first);
 //                鑾峰彇瀵规瘮缁撴灉
                 auto t_results = t_FaceFC->getTopResult(key);
diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.h b/QiaoJiaSystem/StructureApp/AppPipeController.h
index 9e031af..2827a56 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.h
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.h
@@ -27,14 +27,14 @@
      * @param folderPath 浠诲姟鏍圭洰褰曪紝鐢ㄤ簬鍋氬叡浜唴瀛榠d
      * @param json 鍙傛暟涓簉tsp娴佸湴鍧� sdk鏄惁鍚敤鐨勬爣璇�
      */
-  //  AppPipeController(std::string folderPath, const Json::Value &json);
-    AppPipeController(std::string folderPath, const SdkRuleMap& ruleMap);
+    //  AppPipeController(std::string folderPath, const Json::Value &json);
+    AppPipeController(std::string folderPath, const SdkRuleMap &ruleMap);
 
-  //  AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false);
+    //  AppPipeController(int index, const Json::Value &json, bool RecordVideoEnable = false);
 
-  //  AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable);
+    //  AppPipeController(std::string camId, const Json::Value &json, bool RecordVideoEnable);
 
-    AppPipeController(std::string camId, const SdkRuleMap& ruleMap, bool RecordVideoEnable);
+    AppPipeController(std::string camId, const SdkRuleMap &ruleMap, bool RecordVideoEnable);
 
     virtual ~AppPipeController();
 
@@ -46,12 +46,14 @@
 
     void setfdfsClient(FastFdsWithLock *p_fdfsClient);
 
-    void setWeekRule(const std::map<int, std::vector<LActRuleWeekRecord>>& weekRuleMap);
+    void setWeekRule(const std::map<int, std::vector<LActRuleWeekRecord>> &weekRuleMap);
+
 private:
     void init();
+
 private://Perimete
     PerimeterElement perimeterElement;
-   // TriggerElement peTriggerElement;
+    // TriggerElement peTriggerElement;
 
     void initPerimeter();
 
@@ -72,14 +74,16 @@
 
 private:
     PerStaticElement perStaticElement;
+
     void initPerStatic();
+
 private://Perimete
     PerimeterElement perHubElement;
-   // TriggerElement peTriggerElement;
+    // TriggerElement peTriggerElement;
 
     void initPerHub();
+
 private:
-    ffmpeg::VideoCaptureElement videoCaptureElement;
     YoloRpcElement yoloRpcElement;
     FaceRpcElement faceRpcElement;
     FaceExtractElement faceExtractElement;
@@ -108,7 +112,9 @@
     std::map<int, std::vector<LActRuleWeekRecord>> m_weekRuleMap;
     SdkRuleMap m_sdkRuleMap;
     std::string m_localIp;
+
     std::string getFullFileName();
+
     std::mutex mutex;
 };
 
diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
index b605b07..ca48b0f 100644
--- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -14,15 +14,15 @@
 #include <jsoncpp/json/json.h>
 
 #define ALARM_PERCENT (10)  //10%
+
 PerimeterElement::PerimeterElement(const SdkRule &rule) :
     m_sdkRule(rule),
     PipeElement(true),
     trackingTrigger(nullptr),
     mRealNum(0),
-    m_triggerElement(rule.nTriggerDelay*8,0),
+    m_triggerElement(rule.nTriggerDelay * 8, 0),
     pManagerEsDB(nullptr),
-    m_bIsMask(true)
-{
+    m_bIsMask(true) {
 
     pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
 }
@@ -64,37 +64,32 @@
             // DBG("picDate="<<picDate);
 
         }
-        if (m_sdkRule.nSdkType == PerimeterSdk)
-        {
+        if (m_sdkRule.nSdkType == PerimeterSdk) {
 
-            if(m_bIsMask)
-            {
-                   std::vector<Point> poly2;
-                   std::vector<Point> interPoly;
-                   poly2.push_back(Point(rect.x(),rect.y()));
-                   poly2.push_back(Point(rect.x()+rect.width(),rect.y()));
-                   poly2.push_back(Point(rect.x()+rect.width(),rect.y()+rect.height()));
-                   poly2.push_back(Point(rect.x(),rect.y()+rect.height()));
-                   IntAreaCalcUtil::PolygonClip(poly1,poly2,interPoly);
-                   float inter = IntAreaCalcUtil::intAreaCalc(interPoly);
-                   float total1 =IntAreaCalcUtil::intAreaCalc(poly1);
-                   float total2 = IntAreaCalcUtil::intAreaCalc(poly2);
-                   int per1 = (int)(inter / total1 * 100);
-                   int per2 = (int)(inter / total2 * 100);
-                   int per=std::max(per1,per2);
+            if (m_bIsMask) {
+                std::vector<Point> poly2;
+                std::vector<Point> interPoly;
+                poly2.push_back(Point(rect.x(), rect.y()));
+                poly2.push_back(Point(rect.x() + rect.width(), rect.y()));
+                poly2.push_back(Point(rect.x() + rect.width(), rect.y() + rect.height()));
+                poly2.push_back(Point(rect.x(), rect.y() + rect.height()));
+                IntAreaCalcUtil::PolygonClip(poly1, poly2, interPoly);
+                float inter = IntAreaCalcUtil::intAreaCalc(interPoly);
+                float total1 = IntAreaCalcUtil::intAreaCalc(poly1);
+                float total2 = IntAreaCalcUtil::intAreaCalc(poly2);
+                int per1 = (int) (inter / total1 * 100);
+                int per2 = (int) (inter / total2 * 100);
+                int per = std::max(per1, per2);
 
-                   if(ALARM_PERCENT <= per)
-                   {
-                       //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per);
-                       m_recVec.push_back(obj.rect);
-                       num++;
-                   }
+                if (ALARM_PERCENT <= per) {
+                    //DBG("per 1="<<per1<<" per2="<<per2<<" per="<<per);
+                    m_recVec.push_back(obj.rect);
+                    num++;
+                }
             }
 
 
-        }
-        else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask)
-        {
+        } else if (mPolygon.containsPoint(center, Qt::OddEvenFill) || !m_bIsMask) {
             m_recVec.push_back(obj.rect);
 
 
@@ -102,23 +97,22 @@
         }
 
 
-
     }
 
     switch (m_sdkRule.nSdkType) {
         case PerimeterSdk:
             //state = num > 0 ;
-            state =( num !=mRealNum);
-          //  DBG("num="<<num<< "time="<< picDate);
+            state = (num != mRealNum);
+            //  DBG("num="<<num<< "time="<< picDate);
 
 
             break;
         case CrowdSdk:
-            state = num > m_sdkRule.nAlarmNumLowerLimit && num !=mRealNum;
+            state = num > m_sdkRule.nAlarmNumLowerLimit && num != mRealNum;
 
             break;
         case PerHubSdk:
-            state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num !=mRealNum;
+            state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num != mRealNum;
 
 
 //         if(m_sdkRule.nAlarmNumLowerLimit>=0)
@@ -154,12 +148,10 @@
 
     m_triggerElement.setState(state);
     m_triggerElement.triggerOnce();
-    if (m_triggerElement.getTriggerState() )
-    {
-        if(num > 0) {
+    if (m_triggerElement.getTriggerState()) {
+        if (num > 0) {
             cv::Mat t_image = image(CutMask()).clone();
-            if(t_image.empty())
-            {
+            if (t_image.empty()) {
                 DBG("t_image empty");
                 return;
             }
@@ -230,7 +222,7 @@
 void PerimeterElement::setMask(std::string mask) {
     QJsonArray arrayAreas = getJsonArrayFromQString(QString::fromStdString(mask));
     if (arrayAreas.isEmpty() && m_sdkRule.nSdkType != PerimeterSdk) {
-        m_bIsMask=false;
+        m_bIsMask = false;
         return;//do not detect
     }
     int size = arrayAreas.size();
@@ -241,15 +233,11 @@
         QJsonObject obj = jsonValue.toObject();
         int x = obj.value("x").toDouble() * 4;
         int y = obj.value("y").toDouble() * 4;
-        if(m_sdkRule.nSdkType == PerimeterSdk)
-        {
-             poly1.push_back(Point(x,y));
+        if (m_sdkRule.nSdkType == PerimeterSdk) {
+            poly1.push_back(Point(x, y));
+        } else {
+            mPolygon << (QPoint(x, y));
         }
-        else
-        {
-             mPolygon << (QPoint(x, y));
-        }
-
 
 
     }
@@ -284,7 +272,7 @@
         CvUtil::cvMat2Buffer(image, buffer);
         std::string strImgUrlTmp = "";
         fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
-      //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+        //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
         strImgUrl.clear();
         strImgUrl = strImgUrlTmp;
 //                    strImgUrl.append("/").append(strImgUrlTmp);
@@ -318,13 +306,13 @@
     t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id
     t_json["likeDate"] = AppUtil::getTimeSecString(); // 姣斿鏃堕棿
     t_json["picAddress"] = m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃
-    DBG("picAddress="<<m_sdkRule.strAddr.toStdString());
+    DBG("picAddress=" << m_sdkRule.strAddr.toStdString());
     t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞
 
 
     //   t_json["Age"] ="wait todo";
     t_json["picDate"] = time; // 鎶撴媿鏃堕棿锛屽繀椤绘湁
-     DBG("picDate="<<time);
+    DBG("picDate=" << time);
     t_json["picLocalUrl"] = "wait todo";  // 鏈湴璺緞
     t_json["isDelete"] = "1";//榛樿1 ,0鏃犳晥 1鏈夋晥
 
@@ -416,7 +404,7 @@
 //   DBG("RECT x="<<rect.x<<"y"<<rect.y<<"w"<<rect.width<<"h"<<rect.height);
     return rect;
 }
-bool PerimeterElement::isAnd()
-{
+
+bool PerimeterElement::isAnd() {
 
 }
diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer
index 1095109..0a67154 100755
--- a/QiaoJiaSystem/build/DataWebServer
+++ b/QiaoJiaSystem/build/DataWebServer
Binary files differ
diff --git a/QiaoJiaSystem/build/config.json b/QiaoJiaSystem/build/config.json
index b0d85af..e494774 100755
--- a/QiaoJiaSystem/build/config.json
+++ b/QiaoJiaSystem/build/config.json
@@ -1,26 +1,28 @@
 {
-   "DEV_ID" : "DSVAD010120181119",
-   "ES_IP" : "192.168.1.122",
-   "ES_PORT" : 9200,
-   "FaceDetectionSampleSize" : 720,
-   "FaceSeachSleepTime" : 60,
-   "TotalLoadSize" : "500",
-   "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/",
-   "clusterID" : "",
-   "cutPath" : "/home/bsk/work/qiaojia/cut",
-   "encode_thread_num" : 3,
-   "erlCookie" : "123",
-   "erlFatherNode" : " ",
-   "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148",
-   "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628",
-   "loadPath" : "/home/bsk/work/qiaojia/load",
-   "localPasswd" : "123456",
-   "logPath" : "/home/bsk/work/log/",
-   "mainServerIp" : "192.168.1.182",
-   "mainServerPort" : "3697",
-   "netIfName" : "enp3s0",
-   "redis_buf_len" : 750,
-   "redis_ip" : "127.0.0.1",
-   "srsAddr" : "rtmp://192.168.1.122:1934/live/",
-   "webPort" : 11111
+  "DEV_ID": "DSVAD010120181119",
+  "ES_IP": "192.168.1.122",
+  "ES_PORT": 9200,
+  "FaceDetectionSampleSize": 720,
+  "FaceSeachSleepTime": 60,
+  "TotalLoadSize": "500",
+  "buildAddr": "/home/bsk/Apps/QiaoJiaSystem/build/",
+  "clusterID": "",
+  "cutPath": "/home/bsk/work/qiaojia/cut",
+  "encode_thread_num": 3,
+  "erlCookie": "123",
+  "erlFatherNode": " ",
+  "erlNode": "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148",
+  "erlPath": "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628",
+  "loadPath": "/home/bsk/work/qiaojia/load",
+  "localPasswd": "123456",
+  "logPath": "/home/bsk/work/log/",
+  "mainServerIp": "192.168.1.182",
+  "mainServerPort": "3697",
+  "mainServerrUrl": "/addPerson/uploadToTemporary",
+  "addFromAnalyUrl":"192.168.1.182:3699/data/api-c/taskUser/addFromAnaly",
+  "netIfName": "enp3s0",
+  "redis_buf_len": 750,
+  "redis_ip": "127.0.0.1",
+  "srsAddr": "rtmp://192.168.1.122:1934/live/",
+  "webPort": 11111
 }
diff --git "a/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md" "b/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md"
new file mode 100644
index 0000000..a59efa6
--- /dev/null
+++ "b/QiaoJiaSystem/build/configjson\350\257\264\346\230\216.md"
@@ -0,0 +1,121 @@
+##json鏂囦欢妯℃澘鍙婂弬鏁板惈涔�
+
+    {
+       "DEV_ID" : "DSVAD010120181119",
+       "clusterID" : "",
+       "webPort" : 11111,
+       "netIfName" : "enp3s0",
+       "localPasswd" : "123456",
+       "ES_IP" : "192.168.1.122",
+       "ES_PORT" : 9200,
+       "mainServerIp" : "192.168.1.182",
+       "mainServerPort" : "3697",
+       "mainServerrUrl" : "/addPerson/uploadToTemporary",
+       "TotalLoadSize" : "500",
+       "buildAddr" : "/home/bsk/Apps/QiaoJiaSystem/build/",
+       "cutPath" : "/home/bsk/work/qiaojia/cut",
+       "loadPath" : "/home/bsk/work/qiaojia/load",
+       "logPath" : "/home/bsk/work/log/",
+       "FaceDetectionSampleSize" : 720,
+       "FaceSeachSleepTime" : 60,
+       "encode_thread_num" : 3,       
+       "erlCookie" : "123",
+       "erlFatherNode" : " ",
+       "erlNode" : "f6d7d984-858e-4235-a657-644927b3a628@192.168.1.148",
+       "erlPath" : "/opt/erlang/f6d7d984-858e-4235-a657-644927b3a628",
+       "redis_buf_len" : 750,
+       "redis_ip" : "127.0.0.1",       
+       "srsAddr" : "rtmp://192.168.1.122:1934/live/"
+    }
+
+----
+----
+* DEV_ID
+    >璁惧id
+
+* clusterID
+    >闆嗙兢id
+
+* webPort
+    >webserver缁檍ava鎺ュ彛鐨勭鍙�
+
+* netIfName
+    >褰撳墠鏈哄櫒鐨勭綉缁滃悕锛屼究浜庢煡璇p鍦板潃绛�
+
+* localPasswd
+    >褰撳墠鏈哄櫒鐨勭敤鎴峰悕鐨勫瘑鐮�?
+
+---
+* ES_IP
+    >es闆嗙兢鐨刬p
+
+* ES_PORT
+    >es闆嗙兢鐨勭鍙�
+---
+
+---
+* mainServerIp
+    >浜哄憳涓婁紶鐨刬p
+
+* mainServerPort
+    >浜哄憳涓婁紶鐨勭鍙�
+
+* mainServerrUrl
+    >浜哄憳涓婁紶鐨勬帴鍙rl
+---
+
+---
+* TotalLoadSize
+    >涓嬭浇鏂囦欢鐨勬渶澶у瓨鍌ㄧ┖闂�
+
+* buildAddr
+    >鎵ц鏂囦欢鐨勮矾寰�
+
+* cutPath
+    >瑁佸壀鏂囦欢瀛樺偍鐩綍
+
+* loadPath
+    >涓嬭浇鏂囦欢瀛樺偍鐩綍
+
+* logPath
+    >鏃ュ織璺緞
+---
+
+* FaceDetectionSampleSize
+    > down sample size(image down sample) for detect image,if it is 0,will detect by original image.
+    >
+    > 浜鸿劯妫�娴�
+
+* FaceSeachSleepTime
+    >浜鸿劯瀵规瘮鏈嶅姟鏁版嵁鍒锋柊寤惰繜鏃堕棿
+
+---
+* encode_thread_num
+    >缂栫爜绾跨▼涓暟
+
+* erlCookie
+    >erlang闆嗙兢鐨刢ookie
+
+* erlFatherNode
+    >erlang闆嗙兢涓昏妭鐐�
+
+* erlNode
+    >erlang鑺傜偣鍚嶇О
+
+* erlPath
+    >erlang鑺傜偣鎵�鍦ㄨ矾寰�
+---
+
+* redis_buf_len
+    >redis buf 闀垮害锛�
+
+* redis_ip
+    >redis ip
+
+* srsAddr
+    >rtmp鎺ㄦ祦鐨勫熀纭�鍦板潃
+
+
+
+
+
diff --git a/syncDBTool/ErlangDbTool.cpp b/syncDBTool/ErlangDbTool.cpp
index ff0a319..5e79726 100755
--- a/syncDBTool/ErlangDbTool.cpp
+++ b/syncDBTool/ErlangDbTool.cpp
@@ -1643,7 +1643,7 @@
                 t_feature_info.id = query.value(0).toString().toStdString();
                 t_feature_info.img = query.value(1).toString().toStdString();
                 t_feature_info.idcard = query.value(2).toString().toStdString();
-                t_feature_info.enable = query.value(4).toString().toStdString();
+                t_feature_info.enable = query.value(3).toString().toStdString();
 
                 dataCache.insert(std::make_pair(t_feature_info.id, t_feature_info));
             }

--
Gitblit v1.8.0