From 080afae264fe7ff89a54886f28dff208fe5a06c4 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期二, 16 四月 2019 22:01:35 +0800
Subject: [PATCH] 整合代码

---
 QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp |   57 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
index 30fed97..e37f88a 100644
--- a/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
+++ b/QiaoJiaSystem/FaceSearchServer/FaceFeatureSearchServerI.cpp
@@ -123,14 +123,25 @@
 }
 
 //#todo 浼樺寲
+/**
+ *
+ * @param feature 闇�瑕佸姣旂殑鐗瑰緛
+ * @param info_json 闇�瑕佹彃鍏ユ暟鎹簱鐨刯son瀛楁
+ * @param topN 鑾峰彇鍓嶅嚑浣�
+ * @param score 瀵规瘮鐨勯槇鍊�
+ * @return
+ */
 ::FaceSearch::FaceResults
 FaceFeatureSearchServerI::faceSearchTopN(const ::FaceSearch::Data &feature, const ::std::string &info_json,
                                          ::Ice::Int topN, ::Ice::Float score, const ::Ice::Current &) {
     ClockTimer clockTimer("faceSearchTopN  " + to_string(score) + "  :");
     INFO("faceSearchTopN start");
+    // 鑾峰彇褰撳墠绾跨▼id
     thread::id key = std::this_thread::get_id();
     ::FaceSearch::FaceResults results;
     FaceResults t_TableCompareResult;
+
+    // 杩涜瀵规瘮鐨勬暟鎹粨鏋�
     AlarmData featureData;
     featureData.num = topN;
     featureData.feature.resize(feature.size());
@@ -142,14 +153,19 @@
     if (reader.parse(info_json, value)) {
         //#todo
         m_rwLock.rdlock();
+        // 鐗瑰緛杞寲涓篵ase64瀛樺叆鍒癹son涓�
         std::string feature_base64;
         feature_base64 = base64.Encode(feature.data(), feature.size());
         value["FaceFeature"] = feature_base64;
+        //---------------------------
+
         DBG("auto &it : m_faceFCMAP start " << m_faceFCMAP.size());
         //#todo lock
+        // 閬嶅巻涓嶅悓鐨勫簳搴撹繘琛屾瘮瀵�
         for (auto &it : m_faceFCMAP) {
             auto &t_FaceFC = it.second;
             auto t_tableInfo = m_tableType[it.first];
+            // 鑾峰彇搴曞簱鐨勬姤璀︾姸鎬�
             bool ret = getRet(t_tableInfo.startTime, t_tableInfo.endTime);
             if (ret) {
                 string t_alarmRet = t_tableInfo.bwType;
@@ -157,10 +173,12 @@
                 //#todo 闈炲悓姝ュ簱鏄惁闇�瑕佹瘮杈冿紵
 
                 DBG("m_faceFCMAP compare start " << it.first);
+                // 瀵规瘮
                 t_FaceFC->compare(key, &featureData, topN);
                 DBG("m_faceFCMAP compare end " << it.first);
-
+                // 鏍规嵁褰撳墠绾跨▼id鑾峰彇瀵规瘮缁撴灉
                 auto t_results = t_FaceFC->getTopResult(key);
+                // 瀵规瘮缁撴灉杞崲
                 for (auto &t_item : t_results) {
                     t_item.tableName = it.first;
                     t_item.alarmRet = t_alarmRet;
@@ -176,6 +194,7 @@
 
         DBG("t_TableCompareResult size" << t_TableCompareResult.size());
         //sort_all_results
+        // 鎺掑簭
         for (auto itor = t_TableCompareResult.begin(); itor != t_TableCompareResult.end(); ++itor) {
             float new_confidence = itor->confidence;
             auto rtTR = results.rbegin();
@@ -194,6 +213,7 @@
                 ERR("topResult is null");
             }
             auto itTR(rtTR.base());
+            // 鏁版嵁杞寲
             ::FaceSearch::FaceResult t_faceCR;
             t_faceCR.id = itor->id;
             t_faceCR.uuid = itor->uuid;
@@ -208,9 +228,10 @@
             results.insert(itTR, t_faceCR);
         }
         bool retface = true;
-//        cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << results.size() << endl;
         //#todo send message
         if (results.size() > 0) {
+            // 鏍规嵁浼犲叆鐨勫姣旈槇鍊煎仛绛涢��
+            // 鏈垎鏀彧淇濆瓨浜嗙涓�涓姣旂粨鏋�
             for (auto &item : results) {
                 //#todo 寰楀垎姣旇緝锛屽簲璇ュ湪compare涓繘琛�
                 if (item.confidence < score) {
@@ -226,15 +247,6 @@
                     break;
                 }
                 value["personId"] = item.uuid.size() > 0 ? item.uuid : "";//鍏宠仈搴曞簱浜哄憳id,浜鸿劯id
-
-//                string tmp_tableName = item.tableName;
-//                if (tmp_tableName.find("lt_") == 0) {
-//                    tmp_tableName = tmp_tableName.insert(tmp_tableName.find("lt_") + 3, "::");
-//                    value["BaseName"] = tmp_tableName;//鍏宠仈搴曞簱琛ㄥ悕
-//                } else {
-//                    value["BaseName"] = item.tableName.size() > 0 ? item.tableName : "";//鍏宠仈搴曞簱琛ㄥ悕
-//                }
-
                 value["BaseName"] = item.tableName.size() > 0 ? item.tableName : "";//鍏宠仈搴曞簱琛ㄥ悕
 
                 value["likePer"] = item.confidence > 0 ? item.confidence : 0.0;
@@ -244,10 +256,8 @@
                 value["personIsHub"] = item.alarmRet.size() > 0 ? item.alarmRet : "4";
 
                 auto str_uuid = value["Id"].asString();
-//                DBG(value.toStyledString());
 
-                cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "value.toStyledString()  "
-                     << value.toStyledString() << "\n score   " << score << endl;
+                DBG("value.toStyledString()  " << value.toStyledString() << "\n score   " << score);
 //                DBG("score  " << score);
                 retface = pManagerEsDB.insertData("videopersons", "perVideoPicture", value.toStyledString(),
                                                   str_uuid);
@@ -258,37 +268,35 @@
             value["personIsHub"] = "4";
             value["likePer"] = 0.0;
             DBG(value.toStyledString());
-//            cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "value.toStyledString()  "
-//                 << value.toStyledString() << endl;
             retface = pManagerEsDB.insertData("videopersons", "perVideoPicture", value.toStyledString(),
                                               str_uuid);
         }
         if (!retface) {
             ERR("insert error");
         } else {
-            cout << __FUNCTION__ << " -> " << __LINE__ << " ->  " << "retface  " << retface << endl;
+            ERR("retface  " << retface);
         };
     } else {
         ERR("json is error" << info_json);
     }
 
 
-
-
-//    for (auto &item : t_tables) {
-//        DBG(item);
-//    }
     return results;
 }
 
 bool FaceFeatureSearchServerI::loadFeatureData(FaceFeatureSearchServerI *faceFea) {
+    // 鍔犺浇搴曞簱鏁版嵁
     ErlangTool::map_TabDataCache dataBaseCache = faceFea->m_erlangDbTool.findAllDatabase();
     if (dataBaseCache.size() < 0 && faceFea->m_retUpdatePthread) {
+        // 杩欓噷杩涗笉鏉ュ惂锛�
         faceFea->m_retUpdatePthread = false;
+        //鎺у埗涓嬫柟绾跨▼鍙惎鍔ㄤ竴娆�
         std::thread thd(dataUpdate, faceFea);
         thd.detach();
     }
+    // 鑾峰彇琛ㄤ俊鎭�
     auto typeInfoCache = faceFea->m_erlangDbTool.findAllTypeInfo();
+    //娓呴櫎鏃ф暟鎹�
     faceFea->m_tableType.clear();
     string str_config = faceFea->m_erlangDbTool.getConfigJsonString();
 
@@ -368,6 +376,7 @@
     faceFea->m_inTime = getTimeLong();
     if (faceFea->m_retUpdatePthread) {
         faceFea->m_retUpdatePthread = false;
+        //鎺у埗涓嬫柟绾跨▼鍙惎鍔ㄤ竴娆�
         std::thread thd(dataUpdate, faceFea);
 
 //        faceFea->m_erlangDbTool.test(faceFea, erlangCallBackFunc);
@@ -418,6 +427,10 @@
 //    pthread_mutex_unlock(&(func_cond_mutex));
 //}
 
+/**
+ * 绛夊緟搴曞簱鍔犺浇瀹屾垚锛屽苟绛夊緟淇″彿瑙﹀彂鏂扮殑鏁版嵁鍒锋柊
+ * @param faceFea
+ */
 void FaceFeatureSearchServerI::dataUpdate(FaceFeatureSearchServerI *faceFea) {
     long inTime = faceFea->m_inTime;
     // modify all db ready start update, <10s

--
Gitblit v1.8.0