package com.basic.security.manager.impl.cblite; import android.text.TextUtils; import com.basic.security.manager.impl.sqlite.SlVisitManager; import com.basic.security.utils.Constants; 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 VisitManager extends BaseManager { //获取最后访问时间 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 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); } } 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(); } public static void saveVisitRecord(String person_id, String verify_result) { if (Constants.useCouchbase) { ModelAdapter personDocument = PersonManager.findById(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 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 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); } } }