a
554325746@qq.com
2020-01-02 e52632329ef8342a2f692bf58184fc54db3d2b4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.basic.security.manager.impl.sqlite;
 
import android.text.TextUtils;
 
import com.basic.security.model.ModelAdapter;
import com.basic.security.utils.FaceId;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
public class SlVisitorModelManager extends SlBaseManager {
 
    // 查看人员数据库(person)中是否有此人
    public static ModelAdapter getTemPersonInPersonDb(ModelAdapter temPerson) {
 
        String compareResultStr = FaceId.instance.compareFeatureInDb(temPerson.getBlob("camera_image_feature"), 70);
        String personId = compareResultStr.split(",", -1)[0];
        if (!TextUtils.isEmpty(personId) && findById("person", personId) != null) {
            return findById("person", personId);
        }
 
        return temPerson;
 
    }
 
    // 获取含有特定身份的所有人员
    public static List<ModelAdapter> getIdentityPersonList(List<ModelAdapter> allPersonList, Map<String, ModelAdapter> checkedIdentityMap) {
        List<String> allPersonIDList = new ArrayList<>();
        List<ModelAdapter> personList = new ArrayList<>();
 
        // 获取符合身份的所有人员信息
        for (String ruleId : checkedIdentityMap.keySet()) {
            List<ModelAdapter> list = findList("select * from person_identity where identity_id='" + ruleId + "'");
            for (ModelAdapter person : list) {
                allPersonIDList.add(person.getString("person_id"));
            }
        }
 
        // 获取临时库中在人员库中的人
        for (ModelAdapter person : allPersonList) {
            String compareResultStr = FaceId.instance.compareFeatureInDb(person.getBlob("camera_image_feature"), 70);
            String personId = compareResultStr.split(",", -1)[0];
            if (!TextUtils.isEmpty(personId) && findById("person", personId) != null) {
                if (allPersonIDList.contains(personId)) {
                    personList.add(person);
                }
            }
        }
        return personList;
    }
 
    public static List<ModelAdapter> getCameraData() {
        List<ModelAdapter> cameraDataList = new ArrayList<>();
        List<String> ipList = new ArrayList<>();// 避免设备存储的MutableDocument的id改变而有重复的ip
        List<ModelAdapter> baseSettingList = findList("select * from base_setting");
        for (ModelAdapter baseSetting : baseSettingList) {
            if (!TextUtils.isEmpty(SlDeviceManager.getDeviceId())
                    && !TextUtils.isEmpty(SlDeviceManager.getDeviceIp())
                    && SlDeviceManager.getDeviceId().equals(baseSetting.getString("device_name_ip"))
                    && SlDeviceManager.getDeviceIp().equals(baseSetting.getString("server_name_ip"))) {
                ModelAdapter modelAdapter = findOne("select * from device where device_id='" + baseSetting.getString("device_id") + "'");
 
                if (modelAdapter != null && !ipList.contains(modelAdapter.getString("ip"))) {
                    ipList.add(modelAdapter.getString("ip"));
                    cameraDataList.add(modelAdapter);
                }
            }
        }
        return cameraDataList;
    }
 
}