package com.basic.security.manager.impl.cblite; import android.text.TextUtils; import com.basic.security.manager.impl.sqlite.SlBusinessDetailManager; import com.basic.security.utils.Constants; import com.couchbase.lite.Expression; import com.basic.security.model.ModelAdapter; import java.util.ArrayList; import java.util.List; public class BusinessDetailManager extends BaseManager { // 保存此业务表应用于哪些设备 public static void save(String businessId, String deviceId) { if (Constants.useCouchbase) { ModelAdapter applyDevice = new ModelAdapter(); applyDevice.setString("business_id", businessId); applyDevice.setString("device_id", deviceId); applyDevice.setString("table", "business_apply_device"); // applyDevice.setString("device_id", DeviceInfoManager.getMachineId()); // applyDevice.setString("company_id", DeviceInfoManager.getCompareId()); save(applyDevice); } else { SlBusinessDetailManager.save(businessId, deviceId); } } // 获取到此业务表应用于哪些设备 public static List getDeviceByBusiness(String businessId) { if (Constants.useCouchbase) { if (TextUtils.isEmpty(businessId)) { return new ArrayList<>(); } Expression expression = Expression.property("table").equalTo(Expression.string("business_apply_device")) .and(Expression.property("business_id").equalTo(Expression.string(businessId))); List deviceList = findList(expression); List deviceIdList = new ArrayList<>(); for (ModelAdapter device : deviceList) { if (!deviceIdList.contains(device.getString("device_id"))) { deviceIdList.add(device.getString("device_id")); } } return deviceIdList; } else { return SlBusinessDetailManager.getDeviceByBusiness(businessId); } } public static List getDeviceDataList() { // 获取所有设备 if (Constants.useCouchbase) { Expression expression = Expression.property("table").equalTo(Expression.string("device")); return findList(expression); } else { return SlBusinessDetailManager.getDeviceDataList(); } } // 业务表提示语 public static boolean getAccessShowTableName(String businessId) {// 允许通行是否业务表名称 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); if ("1".equals(businessDocument.getString("access_table_name"))) { return true; } return false; } else { return SlBusinessDetailManager.getAccessShowTableName(businessId); } } public static boolean getAccessShowIdentity(String businessId) {// 允许通行是否显示身份 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); if ("1".equals(businessDocument.getString("access_identity"))) { return true; } return false; } else { return SlBusinessDetailManager.getAccessShowIdentity(businessId); } } public static boolean getAccessShowName(String businessId) {// 允许通行是否显示姓名 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); if ("1".equals(businessDocument.getString("access_name"))) { return true; } return false; } else { return SlBusinessDetailManager.getAccessShowName(businessId); } } public static String getAccessHint(String businessId) {// 允许通行de 欢迎语 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); return businessDocument.getString("access_hint"); } else { return SlBusinessDetailManager.getAccessHint(businessId); } } public static String getNotReachHint(String businessId) {// 未到通行时间的欢迎语 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); return businessDocument.getString("not_reached_time_hint"); } else { return SlBusinessDetailManager.getNotReachHint(businessId); } } public static long getNotReachRemindTime(String businessId) { // 开始前多久提示,全部转换为了分钟 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); String not_reached_time_remind = businessDocument.getString("not_reached_time_remind"); String time_unit = businessDocument.getString("time_unit"); if ("分钟".equals(time_unit)) { return Long.parseLong(not_reached_time_remind); } else if ("小时".equals(time_unit)) { return Long.parseLong(not_reached_time_remind) * 60; } else { return Long.parseLong(not_reached_time_remind) * 60 * 24; } } else { return SlBusinessDetailManager.getNotReachRemindTime(businessId); } } public static boolean getConfirmPassShowIdentity(String businessId) {// 确认通行是否显示身份 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); if ("1".equals(businessDocument.getString("confirm_pass_identity"))) { return true; } return false; } else { return SlBusinessDetailManager.getConfirmPassShowIdentity(businessId); } } public static boolean getConfirmPassShowName(String businessId) {// 确认通行是否显示姓名 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); if ("1".equals(businessDocument.getString("confirm_pass_name"))) { return true; } return false; } else { return SlBusinessDetailManager.getConfirmPassShowName(businessId); } } public static String getConfirmPassHint(String businessId) {// 确认通行de欢迎语 if (Constants.useCouchbase) { ModelAdapter businessDocument = findById(businessId); return businessDocument.getString("confirm_pass_hint"); } else { return SlBusinessDetailManager.getConfirmPassHint(businessId); } } public static void delete(String businessId, String deviceId) { if (Constants.useCouchbase) { Expression expression = Expression.property("table").equalTo(Expression.string("business_apply_device")) .and(Expression.property("business_id").equalTo(Expression.string(businessId))) .and(Expression.property("device_id").equalTo(Expression.string(deviceId))); List business_apply_deviceList = findList(expression); for (ModelAdapter business_apply_device : business_apply_deviceList) { delete(business_apply_device); } } else { SlBusinessDetailManager.delete(businessId,deviceId); } } }