package com.basic.security.manager.impl.sqlite; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import com.basic.security.R; import com.basic.security.activity.MainActivity; import com.basic.security.base.BaseApplication; import com.basic.security.fragment.ToolbarFragment; import com.couchbase.lite.Blob; import com.couchbase.lite.Document; import com.couchbase.lite.Expression; import com.basic.security.model.ModelAdapter; import java.util.List; /** * 用户账户相关的数据库级操作类 */ public class SlAccountManager extends SlBaseManager { private static ModelAdapter adminAccount; public static ModelAdapter getAdminAccount() { return adminAccount; } public static void setAdminAccount(ModelAdapter admin) { if (admin != null) { try { ((MainActivity) (BaseApplication.getApplication().activity)).lastAdminClickTime = System.currentTimeMillis(); } catch (Exception e) { e.printStackTrace(); } } SlAccountManager.adminAccount = admin; if (adminAccount != null) { setAdminPhoto(); } } private static void setAdminPhoto() { try { MainActivity activity = (MainActivity) BaseApplication.getApplication().activity; if (activity == null) { return; } String a = adminAccount.getString("person_id"); ModelAdapter admin_person = SlPersonManager.findPersonById(a); if (admin_person == null) { return; } if (!"person".equals(admin_person.getString("table"))) { return; } String name = admin_person.getString("name"); Log.e("name", name); Bitmap b = null; byte[] blob = admin_person.getBlob("camera_image_path"); byte[] data = null; if (blob != null) { data = blob; if (data != null) { b = BitmapFactory.decodeByteArray(data, 0, data.length); } } if (b == null) { b = BitmapFactory.decodeResource(activity.getResources(), R.drawable.u1280); } if (b != null) { ((ToolbarFragment) activity.fragment_toolbar).admin_photo.setImageBitmap(b); } } catch (Exception e) { e.printStackTrace(); } } /*保存账号*/ public static ModelAdapter getAccount(String account, String password) { return findOne("select * from user where username='" + account + "'" + " and password='" + password + "'"); } // 管理员是否已经登录 public static boolean adminLoggedIn() { return adminAccount != null; } /** * 根据管理员获取账号密码 */ public static String getAdminPassword(String admin) { ModelAdapter modelAdapter = findOne("select * from user where username='" + admin + "'"); if (modelAdapter != null) { return modelAdapter.getString("password"); } return null; } public static String getCurrentAdminPassword() { return adminAccount.getString("password"); } public static void setAdminId(String person_id) { String sql = "select * from user where person_id='" + person_id + "' and device_id='" + SlDeviceManager.getDeviceId() + "' "; ModelAdapter modelAdapter = findOne(sql); if (modelAdapter != null && person_id.equals(modelAdapter.getString("person_id"))) { setAdminAccount(modelAdapter); } } }