package com.basic.security.manager.impl.sqlite;
|
|
import android.text.TextUtils;
|
|
import com.basic.security.manager.PersonIdentityManager;
|
import com.basic.security.manager.PersonManager;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.utils.FacePosition;
|
import com.couchbase.lite.Ordering;
|
|
import java.util.Date;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
public class SlVisitManager extends SlBaseManager {
|
|
static List<FacePosition> upLoadVisitRecordToESQueue = new LinkedList();
|
static String saveVisitRecordLastId = "";
|
static long saveVisitRecordLastTime = 0;
|
|
//获取最后访问时间
|
public static String getLastVisitTime(String person_id) {
|
List<ModelAdapter> 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 "";
|
}
|
|
// 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) {
|
long saveVisitRecordCurrentTime = System.currentTimeMillis();
|
if (saveVisitRecordCurrentTime - saveVisitRecordLastTime > 5 * 1000 && person_id != null
|
// && !person_id.equals(saveVisitRecordLastId)
|
) {
|
ModelAdapter personDocument = PersonManager.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<String> identityNameByPersonId = PersonIdentityManager.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<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);
|
// return findList(expression, orderings, count, start); // 分页查询
|
}
|
|
public static List<ModelAdapter> 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);
|
}
|
|
}
|