DeteMin
2020-03-31 77c62e023d2dc31200fc696158df84b3aee90ee7
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
package com.basic.security.manager.impl.cblite;
 
import android.text.TextUtils;
 
import com.basic.security.manager.PersonManager;
import com.basic.security.manager.impl.sqlite.SlVisitManager;
import com.basic.security.model.ModelAdapter;
import com.basic.security.model.Person;
import com.basic.security.utils.Constants;
import com.basic.security.utils.FacePosition;
import com.couchbase.lite.Expression;
import com.couchbase.lite.Ordering;
 
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
 
public class VisitManager extends BaseManager {
 
    static List<FacePosition> upLoadVisitRecordToESQueue = new LinkedList();
 
    //获取最后访问时间
    public static String getLastVisitTime(String person_id) {
        if (Constants.useCouchbase) {
            Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
                    .and(Expression.property("person_id").equalTo(Expression.string(person_id)));
            Ordering[] orderings = new Ordering[1];
            orderings[0] = Ordering.property("visit_time").descending();
            List<ModelAdapter> visit_list = findList(expression, orderings, 1, 0);
            if (visit_list.size() > 0) {
                return visit_list.get(0).getString("visit_time");
            }
            return "";
        } else {
            return SlVisitManager.getLastVisitTime(person_id);
        }
    }
 
    //    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 savedPersonDocument;
//                        public void execute() {
//                            findPerson();
//                            sendVisitRecordToES();
//                        }
//                        public void findPerson() {
//                            savedPersonDocument = 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(savedPersonDocument, "id_card_number"));
//                            params.addBodyParameter("personId", savedPersonDocument.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(String person_id, String verify_result) {
        if (Constants.useCouchbase) {
            ModelAdapter personDocument = PersonManager.findById(Person.tableName, person_id);
            ModelAdapter visitorDocument = new ModelAdapter();
            visitorDocument.setString("table", "visit");
            visitorDocument.setString("person_id", person_id);
            visitorDocument.setString("person_name", personDocument.getString("name"));
            visitorDocument.setString("person_phone", personDocument.getString("phone"));
            visitorDocument.setString("person_id_number", personDocument.getString("id_card_number"));
            visitorDocument.setString("person_type", personDocument.getString("type"));
            visitorDocument.setString("visit_time", new Date().getTime() + "");
            visitorDocument.setString("verify_result", verify_result);
            visitorDocument.setString("device_id", DeviceManager.getDeviceId());
            visitorDocument.setString("company_id", DeviceManager.getCompareId());
            save(visitorDocument);
        } else {
            SlVisitManager.saveVisitRecord(person_id, verify_result);
        }
    }
 
    public static List<ModelAdapter> queryVisitRecords(String selectIdentity, String key_word, boolean descend, long start_time, long end_time, int start, int count) {
        if (Constants.useCouchbase) {
            Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
                    .and(Expression.property("visit_time").between(Expression.string(start_time + ""), Expression.string(end_time + "")));
 
            if (!TextUtils.isEmpty(key_word)) {
                Expression key = Expression.property("person_name").like(Expression.string("%" + key_word + "%"))
                        .or(Expression.property("person_id_number").like(Expression.string("%" + key_word + "%")))
                        .or(Expression.property("person_phone").like(Expression.string("%" +
                                "" + key_word + "%")));
                expression = expression.and(key);
            }
            Ordering[] orderings = new Ordering[1];
            if (descend) {
                orderings[0] = Ordering.property("visit_time").descending();// 时间倒叙
            } else {
                orderings[0] = Ordering.property("visit_time").ascending(); // 时间正序
            }
            return findList(expression, orderings, count, start); // 分页查询
        } else {
            return SlVisitManager.queryVisitRecords(selectIdentity, key_word, descend, start_time, end_time, start, count);
        }
    }
 
    public static List<ModelAdapter> getPersonVisitPassRecords(String person_id, boolean descend) {
        if (Constants.useCouchbase) {
            Expression expression = Expression.property("table").equalTo(Expression.string("visit"))
                    .and(Expression.property("person_id").equalTo(Expression.string(person_id)))
                    .and(Expression.property("verify_result").equalTo(Expression.string("0")));
            Ordering[] orderingArray = new Ordering[1];
            if (descend) {
                orderingArray[0] = Ordering.property("visit_time").descending();
            } else {
                orderingArray[0] = Ordering.property("visit_time").ascending();
            }
            return findList(expression, orderingArray);
        } else {
            return SlVisitManager.getPersonVisitPassRecords(person_id, descend);
        }
    }
 
}