package com.basic.security.manager; import android.text.TextUtils; import com.basic.security.model.ModelAdapter; import com.basic.security.model.PersonIdentity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; //人员身份表 public class PersonIdentityManager extends BaseManager { public static long findPersonIdentityListByPersonIdLastTime = 0; public static Map> findPersonIdentityListByPersonIdLastListMap = new HashMap<>(); static Map> findIdentityMapByPersonIdMap = new HashMap<>(); static long lastFindIdentityMapByPersonId = System.currentTimeMillis(); public static List findPersonIdentityListByPersonId(String personId) { if (TextUtils.isEmpty(personId)) { return new ArrayList<>(); } // long findPersonIdentityListByPersonIdCurrent = System.currentTimeMillis(); // List personIdentityListByPerson = findPersonIdentityListByPersonIdLastListMap.get(personId); // if (personIdentityListByPerson == null || // findPersonIdentityListByPersonIdCurrent - findPersonIdentityListByPersonIdLastTime > 1000) { // personIdentityListByPerson = findList("select * from person_identity where person_id='" + personId + "' and del_flag ='0'"); // findPersonIdentityListByPersonIdLastListMap.put(personId, personIdentityListByPerson); // findPersonIdentityListByPersonIdLastTime = System.currentTimeMillis(); // } List personIdentityListByPerson = findList("select * from person_identity where person_id='" + personId + "' and del_flag ='0'"); return personIdentityListByPerson; } public static void deletePersonIdentityByPersonId(String personId) { deleteList(findPersonIdentityListByPersonId(personId)); List list = BaseManager.findList("select * from user where person_id='" + personId + "'"); for (ModelAdapter k : list) { try { delete(k); } catch (Exception e) { e.printStackTrace(); } } } public static void delete(String personId, String ruleId) { try { // 物理删除 deletePhysically(findOne("select * from person_identity where person_id='" + personId + "' and identity_id='" + ruleId + "' and del_flag ='0'")); } catch (Exception e) { e.printStackTrace(); } } public static void save(String personId, String ruleId) { ModelAdapter personIdentity = findOne("select * from " + PersonIdentity.tableName + " where " + PersonIdentity.person_id + "='" + personId + "'" + " and " + PersonIdentity.identity_id + "='" + ruleId + "'" ); if (personIdentity == null) { personIdentity = new ModelAdapter(); personIdentity.setString("person_id", personId); personIdentity.setString("identity_id", ruleId); personIdentity.setString("del_flag", "0"); personIdentity.setString("table", "person_identity"); personIdentity.setString("device_id", DeviceManager.getDeviceId()); personIdentity.setString("company_id", DeviceManager.getCompareId()); save(personIdentity); } } public static void saveAdminIdentity(String personId) { if (1 == 1) { return; } List list = findList("select * from user where person_id='" + personId + "'"); if (list.size() > 0) { return; } ModelAdapter admin_user_table = new ModelAdapter() .setString("table", "user") .setString("name", PersonManager.findById("person", personId).getString("name")) .setString("person_id", personId) .setString("username", "admin") .setString("password", "admin123") .setString("device_id", DeviceManager.getDeviceId()) .setString("company_id", DeviceManager.getCompareId()); save(admin_user_table); } public static void delAdminIdentity(String personId) { List list = findList("select * from user where person_id='" + personId + "'"); for (ModelAdapter d : list) { delete(d); } } public static Map findIdentityMapByPersonId(String personId) { Map map = findIdentityMapByPersonIdMap.get(personId); // if (map != null && System.currentTimeMillis() - lastFindIdentityMapByPersonId < 2000) { // return map; // } else { findIdentityMapByPersonIdMap.clear(); Map ruleMap = new HashMap(); List personPersonIdentity = findPersonIdentityListByPersonId(personId); for (ModelAdapter personIdentity : personPersonIdentity) { String ruleId = personIdentity.getString("identity_id"); ruleMap.put(ruleId, findById("identity", ruleId)); } findIdentityMapByPersonIdMap.put(personId, ruleMap); lastFindIdentityMapByPersonId = System.currentTimeMillis(); return ruleMap; // } } public static List findIdentityNameByPersonId(String personId) { Map checkedIdentityMapByPerson = PersonIdentityManager.findIdentityMapByPersonId(personId); List ruleNameList = new ArrayList<>(); for (ModelAdapter identityModelAdapter : checkedIdentityMapByPerson.values()) { if (identityModelAdapter != null && !TextUtils.isEmpty(identityModelAdapter.getString("name"))) { ruleNameList.add(identityModelAdapter.getString("name")); } } return ruleNameList; } public static void savePersonIdentity(ModelAdapter person_identity) { BaseManager.save(person_identity); } }