package com.basic.security.manager.impl.sqlite; import android.text.TextUtils; import com.basic.security.utils.FacePosition; import com.couchbase.lite.Expression; import com.basic.security.model.ModelAdapter; import com.couchbase.lite.Ordering; import java.util.Date; import java.util.LinkedList; import java.util.List; public class SlVisitManager extends SlBaseManager { //获取最后访问时间 public static String getLastVisitTime(String person_id) { List visit_list = findList("select * from visit where person_id='" + person_id + "' order by visit_time desc"); if (visit_list.size() > 0) { return visit_list.get(0).getString("visit_time"); } return ""; } static List upLoadVisitRecordToESQueue = new LinkedList(); // 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() { // 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(); } static String saveVisitRecordLastId = ""; static long saveVisitRecordLastTime = 0; public static void saveVisitRecord(String person_id, String verify_result) { long saveVisitRecordCurrentTime = System.currentTimeMillis(); if (saveVisitRecordCurrentTime - saveVisitRecordLastTime > 5 * 1000 && person_id != null // && !person_id.equals(saveVisitRecordLastId) ) { ModelAdapter personDocument = SlPersonManager.findById("person", 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")); // 此方法获取不到人员身份 List identityNameByPersonId = SlPersonIdentityManager.findIdentityNameByPersonId(person_id); if (identityNameByPersonId.size() != 0) { visitorDocument.setString("person_type", TextUtils.join(",", identityNameByPersonId)); } else { visitorDocument.setString("person_type", ""); } visitorDocument.setString("visit_time", new Date().getTime() + ""); visitorDocument.setString("verify_result", verify_result); visitorDocument.setString("device_id", SlDeviceManager.getDeviceId()); ModelAdapter deviceSetting = SlDeviceSettingManager.getDeviceSetting(); if (deviceSetting != null) { visitorDocument.setString("device_name", deviceSetting.getString("name")); } visitorDocument.setString("company_id", SlDeviceManager.getCompareId()); save(visitorDocument); saveVisitRecordLastId = person_id; saveVisitRecordLastTime = saveVisitRecordCurrentTime; } } public static List 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); // return findList(expression, orderings, count, start); // 分页查询 } public static List getPersonVisitPassRecords(String person_id, boolean descend) { String order = descend ? "desc" : "asc"; return findList("select * from visit where person_id='" + person_id + "' and verify_result='0' order by visit_time " + order); } }