package com.vci.server.framework.cache; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.vci.corba.framework.data.RoleInfo; import com.vci.server.cache.CacheNames; import com.vci.server.cache.redis.RedisUtil; import com.vci.server.framework.systemConfig.stafforgmanage.role.Role; import com.vci.server.framework.systemConfig.stafforgmanage.role.RoleService; import com.vci.server.framework.utils.ObjectConvert; public class RoleCacheUtil { private static RoleCacheUtil _instance = null; private RoleCacheUtil() { } public static RoleCacheUtil getInstance() { if (_instance == null) _instance = new RoleCacheUtil(); return _instance; } public static void initCache() { getInstance().initRoleCache(); } public void clearCache() { RedisUtil.getInstance().del(CacheNames.ROLES); } public void setObject(Role obj) { if (obj == null) return; setObject(ObjectConvert.changeRoleToRoleInfo(obj)); } public void setObject(RoleInfo role) { if (role == null) return; String json = JSONObject.toJSONString(role); RedisUtil.getInstance().hset(CacheNames.ROLES, role.id, json); RedisUtil.getInstance().hset(CacheNames.ROLES, "MAP-" + role.name, role.id); } public void delObject(Role obj) { if (obj == null || StringUtils.isBlank(obj.getId())) return; RedisUtil.getInstance().hdel(CacheNames.ROLES, "MAP-" + obj.getName()); delObject(obj.getId()); } public void delObject(RoleInfo obj) { if (obj == null || StringUtils.isBlank(obj.id)) return; RedisUtil.getInstance().hdel(CacheNames.ROLES, "MAP-" + obj.name); delObject(obj.id); } public void delObject(String dept) { if (StringUtils.isBlank(dept)) return; RedisUtil.getInstance().hdel(CacheNames.ROLES, dept); } private void initRoleCache() { RedisUtil.getInstance().del(CacheNames.ROLES); List objs = new RoleService().getRoleList(); for (int i = 0; i < objs.size(); i++) { Role obj = (Role)objs.get(i); setObject(obj); } } }