package com.vci.server.cache; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.vci.corba.framework.data.DeptInfo; import com.vci.corba.framework.data.RoleInfo; import com.vci.corba.framework.data.UserInfo; import com.vci.server.cache.redis.RedisUtil; public final class OrgCacheProvider { public static UserInfo getUser(String name) { String json = RedisUtil.getInstance().hget(CacheNames.USERS, name.toLowerCase()); if (StringUtils.isBlank(json)) return null; return JSONObject.parseObject(json, UserInfo.class); } public static UserInfo getUserByID(String userId) { String userName = RedisUtil.getInstance().hget(CacheNames.USERS, userId); if (StringUtils.isBlank(userName)) return null; String json = RedisUtil.getInstance().hget(CacheNames.USERS, userName.toLowerCase()); if (StringUtils.isBlank(json)) return null; return JSONObject.parseObject(json, UserInfo.class); } public static UserInfo[] getUsers(String[] names) { List lstObj = new ArrayList(); for (int i = 0; i < names.length; i++) { if (StringUtils.isBlank(names[i])) continue; String json = RedisUtil.getInstance().hget(CacheNames.USERS, names[i].toLowerCase()); if (StringUtils.isBlank(json)) continue; lstObj.add(JSONObject.parseObject(json, UserInfo.class)); } return lstObj.toArray(new UserInfo[0]); } public static UserInfo[] getUsers() { List lstAI = new ArrayList(); Map map = RedisUtil.getInstance().hgetAll(CacheNames.USERS); String[] keys = map.keySet().toArray(new String[0]); for (String key : keys) { if (key.startsWith("MAP-")) continue; String json = map.get(key); if (StringUtils.isBlank(json)) continue; lstAI.add(JSONObject.parseObject(json, UserInfo.class)); } return lstAI.toArray(new UserInfo[0]); } //======================================================================== public static DeptInfo getDepartment(String id) { String json = RedisUtil.getInstance().hget(CacheNames.DEPTS, id); if (StringUtils.isBlank(json)) return null; return JSONObject.parseObject(json, DeptInfo.class); } public static DeptInfo[] getDepts(String[] ids) { List lstObj = new ArrayList(); for (int i = 0; i < ids.length; i++) { if (StringUtils.isBlank(ids[i])) continue; String json = RedisUtil.getInstance().hget(CacheNames.DEPTS, ids[i]); if (StringUtils.isBlank(json)) continue; lstObj.add(JSONObject.parseObject(json, DeptInfo.class)); } return lstObj.toArray(new DeptInfo[0]); } public static DeptInfo[] getDepts() { List lstAI = new ArrayList(); Map map = RedisUtil.getInstance().hgetAll(CacheNames.DEPTS); String[] jsons = map.values().toArray(new String[0]); for (int i = 0; i < jsons.length; i++) { if (StringUtils.isBlank(jsons[i])) continue; lstAI.add(JSONObject.parseObject(jsons[i], DeptInfo.class)); } return lstAI.toArray(new DeptInfo[0]); } ///============================ public static RoleInfo getRole(String id) { String json = RedisUtil.getInstance().hget(CacheNames.ROLES, id); if (StringUtils.isBlank(json)) return null; return JSONObject.parseObject(json, RoleInfo.class); } public static RoleInfo getRoleByName(String name) { String json = RedisUtil.getInstance().hget(CacheNames.ROLES, "MAP-" + name); if (StringUtils.isBlank(json)) return null; return getRole(json); } public static RoleInfo[] getRoles(String[] ids) { List lstObj = new ArrayList(); for (int i = 0; i < ids.length; i++) { if (StringUtils.isBlank(ids[i])) continue; String json = RedisUtil.getInstance().hget(CacheNames.ROLES, ids[i]); if (StringUtils.isBlank(json)) continue; lstObj.add(JSONObject.parseObject(json, RoleInfo.class)); } return lstObj.toArray(new RoleInfo[0]); } public static RoleInfo[] getRoles() { List lstObj = new ArrayList(); Map map = RedisUtil.getInstance().hgetAll(CacheNames.ROLES); String[] keys = map.keySet().toArray(new String[0]); for (String key : keys) { if (key.startsWith("MAP-")) continue; String json = map.get(key); if (StringUtils.isBlank(json)) continue; lstObj.add(JSONObject.parseObject(json, RoleInfo.class)); } return lstObj.toArray(new RoleInfo[0]); } // public static RoleInfo[] getRolesByUser(String userName) { // if (StringUtils.isBlank(userName)) // return new RoleInfo[0]; // // String temp = RedisUtil.getInstance().hget(CacheNames.USERROLES, userName.toLowerCase()); // String[] oids = temp.split(";"); // // return getRoles(oids); // } // public static RoleInfo[] getRolesByUserId(String userId) { // if (StringUtils.isBlank(userId)) // return new RoleInfo[0]; // // String temp = RedisUtil.getInstance().hget(CacheNames.USERROLES, userId.toLowerCase()); // String[] oids = temp.split(";"); // // return getRoles(oids); // } }