From 603cb36a5123e46656b06a5deb8d7ac7ff81307f Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 十二月 2019 08:48:51 +0800
Subject: [PATCH] a

---
 app/src/main/java/com/basic/security/manager/PersonManager.java |  117 +++++++++++++++++++++++++---------------------------------
 1 files changed, 50 insertions(+), 67 deletions(-)

diff --git a/app/src/main/java/com/basic/security/manager/PersonManager.java b/app/src/main/java/com/basic/security/manager/PersonManager.java
index 033be9c..631eee2 100644
--- a/app/src/main/java/com/basic/security/manager/PersonManager.java
+++ b/app/src/main/java/com/basic/security/manager/PersonManager.java
@@ -12,6 +12,7 @@
 import com.basic.security.model.Person;
 import com.basic.security.model.PersonA;
 import com.basic.security.utils.Base64Util;
+import com.basic.security.utils.BasicIdUtil;
 import com.basic.security.utils.BitmapHolder;
 import com.basic.security.utils.CompareFeatureResult;
 import com.basic.security.utils.Constants;
@@ -30,12 +31,10 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.UUID;
 
 import static com.basic.security.model.Sync.needSync;
 
@@ -45,8 +44,10 @@
     static BitmapHolder bitmapHolder = new BitmapHolder();
 
     public static void savePerson(ModelAdapter person) {
+        removePersonFromCache(person);
         save(person);
-        uploadToTemporary(person.getId());
+        GuestManager.updateGuestName(person);
+//        uploadToTemporary(person.getId());
     }
 
     public static void uploadToTemporary(String personId) {
@@ -89,18 +90,18 @@
 
                         public void onError(Throwable ex, boolean isOnCallback) {
                             ex.printStackTrace();
-                            System.out.println("httponError");
+                            System1.out.println("httponError");
                         }
 
                         public void onCancelled(CancelledException cex) {
-                            System.out.println("httponCancelled");
+                            System1.out.println("httponCancelled");
                         }
 
                         public void onFinished() {
                         }
                     });
                 } catch (Exception e) {
-                    System.out.println("PersonManager.execute " + e.getMessage());
+                    System1.out.println("PersonManager.execute " + e.getMessage());
 //                    e.printStackTrace();
                 }
             }
@@ -122,9 +123,15 @@
                     }
                 }
             }
-            FaceId.instance.removeFeatureFromDb(person.getString(Person.id));
+            FeatureManager.removeFeature(person.getString(Person.id));
             PersonIdentityManager.deletePersonIdentityByPersonId(person.getString(Person.id));
-            delete(person);
+            PersonAManager.deletePersonAByPerson(person);
+            if (Constants.deletePersonPhysical) {
+                deletePhysically(person);
+            } else {
+                deleteWithDelFlag(person);
+            }
+            removePersonFromCache(person);
             SocketUtil.rpcCallDeletePerson(person);
             if (Constants.isIndoor) {
                 GuestManager.removePersonId(person.getString(Person.id));
@@ -165,16 +172,30 @@
         return allPersonList;
     }
 
-    public static ModelAdapter findPersonById(String personId) {
-        ModelAdapter person = findPersonByIdMap.get(personId);
-        if (System.currentTimeMillis() - lastFindPersonById < 1000 && person != null) {
-            return person;
-        } else {
-            person = findById("person", personId);
-            findPersonByIdMap.put(personId, person);
-            lastFindPersonById = System.currentTimeMillis();
+    public static void removePersonFromCache(ModelAdapter person) {
+        try {
+            String personId = person.getString(Person.id);
+            findPersonByIdMap.remove(personId);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
-        return person;
+    }
+
+    public static ModelAdapter findPersonById(String personId) {
+        try {
+            ModelAdapter person = findPersonByIdMap.get(personId);
+            if (System.currentTimeMillis() - lastFindPersonById < 1000 && person != null) {
+                return person;
+            } else {
+                person = findById("person", personId);
+                findPersonByIdMap.put(personId, person);
+                lastFindPersonById = System.currentTimeMillis();
+            }
+            return person;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
     }
 
     // 鑾峰彇鍚湁鐗瑰畾韬唤鐨勬墍鏈変汉鍛�
@@ -204,30 +225,6 @@
         return personList;
     }
 
-    public static boolean isDuplicate(ModelAdapter selectedPerson) {
-        try {
-            byte[] camera_image_feature = selectedPerson.getBlob("camera_image_feature");
-            return isDuplicate(camera_image_feature);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return false;
-    }
-
-    public static boolean isDuplicate(byte[] camera_image_feature) {
-        try {
-            if (camera_image_feature != null && camera_image_feature.length > 0) {
-                String compareResultStr = FaceId.instance.compareFeatureInDb(camera_image_feature, Constants.minRecognizeScore);
-                ModelAdapter person = PersonManager.findPersonById(compareResultStr.split(",", -1)[0]);
-                if (person != null) {
-                    return true;
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return false;
-    }
 
     public static void reFindPerson(CompareFeatureResult compareFeatureResult) {
         try {
@@ -369,7 +366,7 @@
             BaseApplication.getApplication().detectLock.lock();
             String facePosition = FaceId.instance.facePosition(file.getAbsolutePath());
             if (facePosition.length() <= 0) {
-                System.out.println("SaveTestData.run 娌℃湁鎵惧埌浜鸿劯");
+                System1.out.println("SaveTestData.run 娌℃湁鎵惧埌浜鸿劯");
                 return null;
             }
             String[] rectFace = facePosition.split(",");
@@ -380,16 +377,16 @@
             byte[] featureData = FaceId.instance.extractFeature(file.getAbsolutePath());
             BaseApplication.getApplication().detectLock.unlock();
             if (featureData == null) {
-                System.out.println("SaveTestData.run 鎻愬彇鐗瑰緛澶辫触! 璇锋鏌DK鏄惁鍒濆鍖�");
+                System1.out.println("SaveTestData.run 鎻愬彇鐗瑰緛澶辫触! 璇锋鏌DK鏄惁鍒濆鍖�");
                 return null;
             }
-            String compareResultStr = FaceId.instance.compareFeatureInDb(featureData, Constants.minRecognizeScore);
+            String compareResultStr = FeatureManager.compareFeature(featureData, Constants.minRecognizeScore);
             String personId = compareResultStr.split(",", -1)[0];
             if (!TextUtils.isEmpty(personId)) {
                 return findById(Person.tableName, personId);
             }
             ModelAdapter person = new ModelAdapter()
-                    .setString(Person.id, UUID.randomUUID().toString())
+                    .setString(Person.id, BasicIdUtil.getPersonId(featureData))
                     .setString("name", fileName)
                     .setString("sign_up_status", "宸叉敞鍐�")
                     .setString("verify_status", "涓嶉渶瑕侀獙璇佽韩浠借瘉")
@@ -399,10 +396,12 @@
                     .setString("company_id", CompanyManager.getCompanyId())
                     .setString(Person.org_id, orgId)
                     .setString("table", "person");
+            person.setString(Person.device_id, DeviceManager.getDeviceId());
+            person.setString(Person.company_id, CompanyManager.getCompanyId());
             person.setBlob("camera_image_feature", featureData);
             person.setBlob("camera_image_path", faceJpgData);
             PersonManager.savePerson(person);
-            FaceId.instance.addFeatureToDb(person.getId(), featureData);
+            FeatureManager.addFeature(person.getId(), featureData);
             return person;
         } catch (Exception e) {
             e.printStackTrace();
@@ -439,7 +438,6 @@
                 person.setString(Person.org_id, "");
                 person.setString(Person.org_ids, "");
                 person.setString(Person.id, personA.getString(PersonA.id));
-                download_camera_image_path(person);
                 person.setString(Person.name, personA.getString(PersonA.personName));
                 person.setString(Person.camera_image_feature, personA.getString(PersonA.faceFeature));
                 person.setString(Person.phone, personA.getString(PersonA.phoneNum));
@@ -474,29 +472,14 @@
                 if (person.getString(Person.del_flag).equals("0")) {
                     byte[] feature = person.getBlob(Person.camera_image_feature);
                     if (feature != null && feature.length > 10) {
-                        FaceId.instance.addFeatureToDb(person.getId(), feature);
+                        FeatureManager.addFeature(person.getId(), feature);
                     }
                 } else {
-                    FaceId.instance.removeFeatureFromDb(person.getId());
+                    FeatureManager.removeFeature(person.getId());
                 }
                 savePerson(person);
             }
 
-            private void download_camera_image_path(ModelAdapter person) {
-                try {
-                    String personPicUrl = personA.getString(PersonA.personPicUrl);
-                    if (TextUtils.isEmpty(personPicUrl)) {
-                        String camera_image_path = ModelAdapter.getAttachmentPath(personA.getId(), Person.camera_image_path, Person.tableName);
-                        File camera_image_path_file = new File(camera_image_path);
-                        if (!camera_image_path_file.exists()) {
-                            org.apache.commons.io.FileUtils.copyURLToFile(new URL(personPicUrl), camera_image_path_file);
-                        }
-                        person.setString(Person.camera_image_path, camera_image_path);
-                    }
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
 
             public void updatePerson(ModelAdapter dbPerson) {
                 dbPerson.setString(Person.id, personA.getString(PersonA.id));
@@ -508,14 +491,14 @@
                 dbPerson.setString(Person.auto_init, "0");
                 dbPerson.setString(Person.table, Person.tableName);
                 dbPerson.setString(Person.del_flag, "0");
-                download_camera_image_path(dbPerson);
+                PersonCameraImagePathManager.download_camera_image_path(personA.getString(PersonA.personPicUrl), dbPerson);
                 if (dbPerson.getString(Person.del_flag).equals("0")) {
                     byte[] feature = dbPerson.getBlob(Person.camera_image_feature);
                     if (feature != null && feature.length > 10) {
-                        FaceId.instance.addFeatureToDb(dbPerson.getId(), feature);
+                        FeatureManager.addFeature(dbPerson.getId(), feature);
                     }
                 } else {
-                    FaceId.instance.removeFeatureFromDb(dbPerson.getId());
+                    FeatureManager.removeFeature(dbPerson.getId());
                 }
                 dbPerson.setString(needSync, Constants.FALSE);
                 savePerson(dbPerson);

--
Gitblit v1.8.0