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);
|
}
|
}
|