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<String, List<ModelAdapter>> findPersonIdentityListByPersonIdLastListMap = new HashMap<>();
|
static Map<String, Map<String, ModelAdapter>> findIdentityMapByPersonIdMap = new HashMap<>();
|
static long lastFindIdentityMapByPersonId = System.currentTimeMillis();
|
|
public static List<ModelAdapter> findPersonIdentityListByPersonId(String personId) {
|
if (TextUtils.isEmpty(personId)) {
|
return new ArrayList<>();
|
}
|
// long findPersonIdentityListByPersonIdCurrent = System.currentTimeMillis();
|
// List<ModelAdapter> 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<ModelAdapter> 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<ModelAdapter> 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<ModelAdapter> 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<ModelAdapter> list = findList("select * from user where person_id='" + personId + "'");
|
for (ModelAdapter d : list) {
|
delete(d);
|
}
|
}
|
|
public static Map<String, ModelAdapter> findIdentityMapByPersonId(String personId) {
|
Map<String, ModelAdapter> map = findIdentityMapByPersonIdMap.get(personId);
|
// if (map != null && System.currentTimeMillis() - lastFindIdentityMapByPersonId < 2000) {
|
// return map;
|
// } else {
|
findIdentityMapByPersonIdMap.clear();
|
Map<String, ModelAdapter> ruleMap = new HashMap();
|
List<ModelAdapter> 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<String> findIdentityNameByPersonId(String personId) {
|
Map<String, ModelAdapter> checkedIdentityMapByPerson = PersonIdentityManager.findIdentityMapByPersonId(personId);
|
List<String> 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);
|
}
|
}
|