package com.basic.security.manager.impl.cblite; import android.text.TextUtils; import com.basic.security.manager.impl.sqlite.SlPersonIdentityManager; import com.basic.security.utils.Constants; import com.couchbase.lite.Expression; import com.basic.security.model.ModelAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /*人员身份表*/ public class PersonIdentityManager extends BaseManager { public static List findPersonIdentityListByPersonId(String personId) { if (Constants.useCouchbase) { if (TextUtils.isEmpty(personId)) { return new ArrayList<>(); } Expression expression = Expression.property("table").equalTo(Expression.string("person_identity")).and(Expression.property("person_id").equalTo(Expression.string(personId))); return findList(expression); } else { return SlPersonIdentityManager.findPersonIdentityListByPersonId(personId); } } public static void deletePersonIdentityByPersonId(String personId) { if (Constants.useCouchbase) { deleteList(findPersonIdentityListByPersonId(personId)); Expression expression = Expression.property("table").equalTo(Expression.string("user")).and(Expression.property("person_id").equalTo(Expression.string(personId))); List list = BaseManager.findList(expression); for (ModelAdapter k : list) { try { delete(k); } catch (Exception e) { e.printStackTrace(); } } } else { SlPersonIdentityManager.deletePersonIdentityByPersonId(personId); } } public static void delete(String personId, String ruleId) { if (Constants.useCouchbase) { try { Expression expression = Expression.property("table").equalTo(Expression.string("person_identity")) .and(Expression.property("person_id").equalTo(Expression.string(personId))) .and(Expression.property("identity_id").equalTo(Expression.string(ruleId))); delete(findOne(expression)); } catch (Exception e) { e.printStackTrace(); } } else { SlPersonIdentityManager.delete(personId,ruleId); } } public static void save(String personId, String ruleId) { if (Constants.useCouchbase) { ModelAdapter person = new ModelAdapter(); person.setString("person_id", personId); person.setString("identity_id", ruleId); person.setString("table", "person_identity"); person.setString("device_id", DeviceManager.getDeviceId()); person.setString("company_id", DeviceManager.getCompareId()); save(person); } else { SlPersonIdentityManager.save(personId,ruleId); } } public static void saveAdminIdentity(String personId) { if (Constants.useCouchbase) { Expression expression = Expression.property("table").equalTo(Expression.string("user")) .and(Expression.property("person_id").equalTo(Expression.string(personId))); List list = findList(expression); if (list.size() > 0) { return; } ModelAdapter admin_user_table = new ModelAdapter() .setString("table", "user") .setString("name", PersonManager.findById(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); } else { SlPersonIdentityManager.saveAdminIdentity(personId); } } public static void delAdminIdentity(String personId) { if (Constants.useCouchbase) { Expression expression = Expression.property("table").equalTo(Expression.string("user")) .and(Expression.property("person_id").equalTo(Expression.string(personId))); List list = findList(expression); for (ModelAdapter d : list) { delete(d); } } else { SlPersonIdentityManager.delAdminIdentity(personId); } } public static Map findIdentityMapByPersonId(String personId) { if (Constants.useCouchbase) { Map ruleMap = new HashMap(); List personPersonIdentity = PersonIdentityManager.findPersonIdentityListByPersonId(personId); for (ModelAdapter personIdentity : personPersonIdentity) { String ruleId = personIdentity.getString("identity_id"); ruleMap.put(ruleId, findById(ruleId)); } return ruleMap; } else { return SlPersonIdentityManager.findIdentityMapByPersonId(personId); } } public static List findIdentityNameByPersonId(String personId) { if (Constants.useCouchbase) { 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; } else { return SlPersonIdentityManager.findIdentityNameByPersonId(personId); } } public static void savePersonIdentity(ModelAdapter person_identity) { if (Constants.useCouchbase) { BaseManager.save(person_identity); } else { SlPersonIdentityManager.savePersonIdentity(person_identity); } } }