a
554325746@qq.com
2019-12-24 570a73851c26d810c2597596a8acc8a8d4cde211
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
package com.basic.security.manager;
 
import android.text.TextUtils;
 
import com.basic.security.fragment.FaceListFragment;
import com.basic.security.model.ModelAdapter;
import com.basic.security.model.Org;
import com.basic.security.model.Person;
import com.basic.security.model.Visit;
import com.basic.security.utils.FacePosition;
import com.basic.security.utils.SocketUtil;
import com.couchbase.lite.Ordering;
 
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
 
public class VisitManager extends BaseManager {
    public static Map<String, String> getLastVisitTimeMap = new HashMap<>();
    static long getLastVisitTimeLastTime = 0;
    static List<FacePosition> upLoadVisitRecordToESQueue = new LinkedList();
    static String saveVisitRecordLastId = "";
    static long saveVisitRecordLastTime = 0;
 
    //获取最后访问时间
    public static String getLastVisitTime(String person_id) {
        String lastTime = getLastVisitTimeMap.get(person_id);
//        if (lastTime == null || (System.currentTimeMillis() - getLastVisitTimeLastTime > 3000)) {
        List<ModelAdapter> visit_list = findList("select * from visit where person_id='" + person_id + "' order by visit_time desc limit 1");
        if (visit_list.size() > 0) {
            lastTime = visit_list.get(0).getString("visit_time");
        } else {
            lastTime = "";
        }
        getLastVisitTimeMap.put(person_id, lastTime);
        getLastVisitTimeLastTime = System.currentTimeMillis();
//        }
        return lastTime;
    }
 
    //    public static String BASE_URL = "http://192.168.1.182:9200/";
//    @POST("videopersons/perVideoPicture")
    //上传访问的人脸到FastDFS数据库   然后获取该图片在FastDFS库中的路径  然后调用后台接口  存储该人的数据到er-lang数据库
    public static void upLoadVisitRecordToES(FacePosition facePosition) {
//        new Thread(){
//            public void run() {
//                try {
//                    class UpLoadVisitRecordToESHelper {
//                        ModelAdapter savedPerson;
//                        public void execute() {
//                            findPerson();
//                            sendVisitRecordToES();
//                        }
//                        public void findPerson() {
//                            savedPerson = PersonManager.findById(facePosition.compareFeatureResult.personId);
//                        }
//                        public void sendVisitRecordToES() {
//
//                            ModelAdapter device = DeviceSettingManager.findById(DeviceManager.getDeviceId());
//                            String deviceName = "";
//                            String deviceAddress = "";
//                            if (device != null) {
//                                deviceName = MutableDocumentUtil.getString(device, "name");
//                                deviceAddress = MutableDocumentUtil.getString(device, "address");
//                            }
//                            RequestParams params = new RequestParams("http://192.168.1.182:9200/videopersons/perVideoPicture");
//                            long time = System.currentTimeMillis();
//                            String picPath = FastDFSUtil.upLoadVisitorPic(facePosition.faceJpgData, time);
//                            params.addBodyParameter("personPicUrl", picPath);
//                            params.addBodyParameter("picAddress", deviceAddress);
//                            params.addBodyParameter("picDate", DateUtil.formatTime(time, "yyyy-MM-dd HH:mm:ss"));
//                            params.addBodyParameter("picSmUrl", picPath);
//                            params.addBodyParameter("indeviceid", DeviceManager.getDeviceId());
//                            params.addBodyParameter("idcard", MutableDocumentUtil.getString(savedPerson, "id_card_number"));
//                            params.addBodyParameter("personId", savedPerson.getId());
//                            params.addBodyParameter("indevicename", deviceName);
//                            x.http().post(params, new Callback.CommonCallback<Object>() {
//                                public void onSuccess(Object result) {
//                                    System.out.println("上传访问记录成功");
//                                }
//                                public void onError(Throwable ex, boolean isOnCallback) {}
//                                public void onCancelled(CancelledException cex) {}
//                                public void onFinished() {}
//                            });
//                        }
//                    }
////                new UpLoadVisitRecordToESHelper().execute();
//                } catch (Exception e) {
//                    e.printStackTrace();
//                }
//            }
//        }.start();
    }
 
    public static void saveVisitRecord(ModelAdapter person, String verify_result) {
        if (person == null) {
            return;
        }
        String person_id = person.getString(Person.id);
        long saveVisitRecordCurrentTime = System.currentTimeMillis();
        if (person_id != null) {
            ModelAdapter visit = new ModelAdapter();
            visit.setString("table", "visit");
            String respondentId = person.getString(Person.respondent_ids);
            if (!TextUtils.isEmpty(respondentId)) {
                ModelAdapter respondent = PersonManager.findPersonById(respondentId);
                if (respondent != null && !TextUtils.isEmpty(respondent.getString(Person.id))) {
                    visit.setString(Visit.target_id_number, respondent.getString(Person.id_card_number));
                    List<String> identityNameByPersonId = PersonIdentityManager.findIdentityNameByPersonId(respondentId);
                    if (identityNameByPersonId.size() != 0) {
                        visit.setString(Visit.target_identity, TextUtils.join(",", identityNameByPersonId));
                    } else {
                        visit.setString(Visit.target_identity, "");
                    }
                    visit.setString(Visit.target_phone, respondent.getString(Person.phone));
                    String orgId = respondent.getString(Person.org_id);
                    if (!TextUtils.isEmpty(orgId)) {
                        try {
                            String orgName = FaceListFragment.treeAdapter.treeNodeList.orgIdOrgMap.get(orgId).getString(Org.name);
                            visit.setString(Visit.target_org_name, orgName);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
            visit.setString(Visit.target_person_id, person.getString(Person.respondent_ids));
            visit.setString(Visit.target_person_name, person.getString(Person.respondent_names));
            String orgId = person.getString(Person.org_id);
            visit.setString(Visit.target_org_id, orgId);
            visit.setString("person_id", person_id);
            visit.setString("person_name", person.getString("name"));
            visit.setString("person_phone", person.getString("phone"));
            visit.setString("person_id_number", person.getString("id_card_number"));
            List<String> identityNameByPersonId = PersonIdentityManager.findIdentityNameByPersonId(person_id);
            if (identityNameByPersonId.size() != 0) {
                visit.setString("person_type", TextUtils.join(",", identityNameByPersonId));
            } else {
                visit.setString("person_type", "");
            }
            visit.setString("visit_time", new Date().getTime() + "");
            visit.setString("verify_result", verify_result);
            visit.setString("device_id", DeviceManager.getDeviceId());
            ModelAdapter deviceSetting = DeviceManager.getDevice();
            if (deviceSetting != null) {
                visit.setString("device_name", deviceSetting.getString("name"));
            }
            visit.setString("company_id", CompanyManager.getCompanyId());
            save(visit);
            saveVisitRecordLastId = person_id;
            saveVisitRecordLastTime = saveVisitRecordCurrentTime;
            SocketUtil.rpcCallSaveVisit(visit);
        }
    }
 
    public static List<ModelAdapter> queryVisitRecords(String selectIdentity, String key_word, boolean descend, long start_time, long end_time, int start, int count) {
        String sql = "select * from visit where visit_time >= '" + start_time + "' and visit_time <= '" + end_time + "'";
        if (!TextUtils.isEmpty(key_word)) {
            sql += " and ( person_name like '%" + key_word + "%' or person_id_number like '%" + key_word + "%'or person_phone  like '%" + key_word + "%'  )";
        }
        if (!"全部".equals(selectIdentity)) {
            sql += " and person_type like '%" + selectIdentity + "%'";
        }
        Ordering[] orderings = new Ordering[1];
        sql += " order by visit_time ";
        if (descend) {
            sql += " desc ";
            orderings[0] = Ordering.property("visit_time").descending();// 时间倒叙
        } else {
            sql += " asc ";
            orderings[0] = Ordering.property("visit_time").ascending(); // 时间正序
        }
        sql += " limit " + start + ", " + count;
        return findList(sql);
    }
}