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.ExceptionUtil; import com.basic.security.utils.FacePosition; import com.basic.security.utils.SocketUtil; 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 getLastVisitTimeMap = new HashMap<>(); static long getLastVisitTimeLastTime = 0; static List upLoadVisitRecordToESQueue = new LinkedList(); static String saveVisitRecordLastId = ""; static long saveVisitRecordLastTime = 0; public static String getLastVisitTime(String person_id) { String lastTime = getLastVisitTimeMap.get(person_id); List 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 void upLoadVisitRecordToES(FacePosition facePosition) { } 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 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) { ExceptionUtil.printException(e); } } } } 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 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 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 + "%'"; } sql += " order by visit_time "; if (descend) { sql += " desc "; } else { sql += " asc "; } sql += " limit " + start + ", " + count; return findList(sql); } }