package com.basic.security.manager.impl.cblite; import android.text.TextUtils; import com.basic.security.manager.impl.sqlite.SlHintDoorAccessManager; import com.basic.security.utils.Constants; import com.couchbase.lite.Expression; import com.basic.security.model.ModelAdapter; import java.util.List; public class HintDoorAccessManager extends BaseManager { private static ModelAdapter hintDoorAccessManager; public static ModelAdapter getHintDoorAccessDocument() { if (Constants.useCouchbase) { Expression e = Expression.property("table").equalTo(Expression.string("hint_door_access")); List list = findList(e); if (list.size() == 1) { hintDoorAccessManager = list.get(0); } else { if (list.size() == 0) { hintDoorAccessManager = new ModelAdapter(); } else { hintDoorAccessManager = list.get(0); for (int i = 1; i < list.size(); i++) { delete(list.get(i)); } } } return hintDoorAccessManager; } else { return SlHintDoorAccessManager.getHintDoorAccessDocument(); } } public static boolean getAccessIsShowIdentity() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("access_identity")) && "1".equals(hintDoorAccessManager.getString("access_identity"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getAccessIsShowIdentity(); } } public static boolean getAccessIsShowName() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("access_name")) && "1".equals(hintDoorAccessManager.getString("access_name"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getAccessIsShowName(); } } public static String getAccessMessage() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) {//hintDoorAccessManager.getString("access_hint") if (!TextUtils.isEmpty(hintDoorAccessManager.getString("access_hint"))) { return hintDoorAccessManager.getString("access_hint"); } } return null; } else { return SlHintDoorAccessManager.getAccessMessage(); } } public static String getNoReachTimeMessage() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("not_reached_time_hint"))) { return hintDoorAccessManager.getString("not_reached_time_hint"); } } return null; } else { return SlHintDoorAccessManager.getNoReachTimeMessage(); } } public static long getNoReachTime() { // 返回的时间为分钟 if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { String not_reached_time_remind = hintDoorAccessManager.getString("not_reached_time_remind"); // 提前多久提示 String time_unit = hintDoorAccessManager.getString("time_unit"); if (!TextUtils.isEmpty(not_reached_time_remind) && !TextUtils.isEmpty(time_unit)) { long time = Long.parseLong(not_reached_time_remind); if ("分钟".equals(time_unit)) { return time; } else if ("小时".equals(time_unit)) { return time * 60; } else if ("天".equals(time_unit)) { return time * 60 * 24; } } } return 100; } else { return SlHintDoorAccessManager.getNoReachTime(); } } public static boolean getConfirmPassIsShowIdentity() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("confirm_pass_identity")) && "1".equals(hintDoorAccessManager.getString("confirm_pass_identity"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getConfirmPassIsShowIdentity(); } } public static boolean getConfirmPassIsShowName() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("confirm_pass_name")) && "1".equals(hintDoorAccessManager.getString("confirm_pass_name"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getConfirmPassIsShowName(); } } public static String getConfirmPassMessage() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("confirm_pass_hint"))) { return hintDoorAccessManager.getString("confirm_pass_hint"); } } return null; } else { return SlHintDoorAccessManager.getConfirmPassMessage(); } } public static boolean getRefusePassIsShowIdentity() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("refuse_pass_identity")) && "1".equals(hintDoorAccessManager.getString("refuse_pass_identity"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getRefusePassIsShowIdentity(); } } public static boolean getRefusePassIsShowName() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("refuse_pass_name")) && "1".equals(hintDoorAccessManager.getString("refuse_pass_name"))) { return true; } } return false; } else { return SlHintDoorAccessManager.getRefusePassIsShowName(); } } public static String getRefusePassMessage() { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("refuse_pass_hint"))) { return hintDoorAccessManager.getString("refuse_pass_hint"); } } return null; } else { return SlHintDoorAccessManager.getRefusePassMessage(); } } public static String getDeviceDoorAccessConfirmMessage(ModelAdapter currentPerson) { if (Constants.useCouchbase) { String message = ""; if (getConfirmPassIsShowIdentity()) { List identityNameList = PersonIdentityManager.findIdentityNameByPersonId(currentPerson.getId()); if (identityNameList.size() != 0) { message = identityNameList.get(0); } } if (getConfirmPassIsShowName()) { String name = currentPerson.getString("name"); if (!TextUtils.isEmpty(name)) { message = message + " " + name; } } String confirmPassMessage = getConfirmPassMessage(); if (!TextUtils.isEmpty(confirmPassMessage)) { message = message + " " + confirmPassMessage; } if (TextUtils.isEmpty(message.trim())) { return "设备规则:确认通行"; } return message; } else { return SlHintDoorAccessManager.getDeviceDoorAccessConfirmMessage(currentPerson); } } public static String getDeviceDoorAccessAllowMessage(ModelAdapter modelAdapter) { if (Constants.useCouchbase) { getHintDoorAccessDocument(); if (hintDoorAccessManager != null) { if (!TextUtils.isEmpty(hintDoorAccessManager.getString("access_hint"))) { return hintDoorAccessManager.getString("access_hint"); } } return ""; } else { return SlHintDoorAccessManager.getDeviceDoorAccessAllowMessage(modelAdapter); } } public static String getSignUpRuleDoorAccessAllowMessage(ModelAdapter ruleDocument, ModelAdapter currentPerson) { if (Constants.useCouchbase) { String message = ""; if (getAccessIsShowIdentity()) { List identityNameList = PersonIdentityManager.findIdentityNameByPersonId(currentPerson.getId()); if (identityNameList.size() != 0) { message = identityNameList.get(0); } } if (getAccessIsShowName()) { String name = currentPerson.getString("name"); if (!TextUtils.isEmpty(name)) { message = message + " " + name; } } String accessMessage = getAccessMessage(); if (!TextUtils.isEmpty(accessMessage)) { message = message + " " + accessMessage; } if (TextUtils.isEmpty(message)) { return "注册规则:允许通行"; } return message; } else { return SlHintDoorAccessManager.getSignUpRuleDoorAccessAllowMessage(ruleDocument, currentPerson); } } public static String getBusinessRuleDoorAccessConfirmMessage(ModelAdapter modelAdapter) { if (Constants.useCouchbase) { String confirmPassMessage = getConfirmPassMessage(); if (!TextUtils.isEmpty(confirmPassMessage)) { return confirmPassMessage; } return "注册规则:确认通行"; } else { return SlHintDoorAccessManager.getBusinessRuleDoorAccessConfirmMessage(modelAdapter); } } public static String getSignUpRuleDoorAccessTimeDeniedMessage(ModelAdapter currentPerson) { if (Constants.useCouchbase) { String message = ""; if (getRefusePassIsShowIdentity()) { List identityNameList = PersonIdentityManager.findIdentityNameByPersonId(currentPerson.getId()); if (identityNameList.size() != 0) { message = identityNameList.get(0); } } if (getRefusePassIsShowName()) { String name = currentPerson.getString("name"); if (!TextUtils.isEmpty(name)) { message = message + " " + name; } } String refusePassMessage = getRefusePassMessage(); if (!TextUtils.isEmpty(refusePassMessage)) { message = message + " " + refusePassMessage; } if (TextUtils.isEmpty(message)) { return "注册规则:拒绝通行"; } return message; } else { return SlHintDoorAccessManager.getSignUpRuleDoorAccessTimeDeniedMessage(currentPerson); } } public static String getSignUpRuleDoorAccessTimeNotReachMessage(ModelAdapter modelAdapter, ModelAdapter currentPerson) { if (Constants.useCouchbase) { String noReachTimeMessage = getNoReachTimeMessage(); if (!TextUtils.isEmpty(noReachTimeMessage)) { return noReachTimeMessage; } return "注册规则:未到通行时间"; } else { return SlHintDoorAccessManager.getSignUpRuleDoorAccessTimeNotReachMessage(modelAdapter, currentPerson); } } public static void saveHintDoorAccess(ModelAdapter hintDoorAccessDocument) { if (Constants.useCouchbase) { BaseManager.save(hintDoorAccessDocument); } else { SlHintDoorAccessManager.saveHintDoorAccess(hintDoorAccessDocument); } } }