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.UserInfo; import com.vci.server.cache.CacheNames; import com.vci.server.cache.redis.RedisUtil; import com.vci.server.framework.systemConfig.stafforgmanage.user.User; import com.vci.server.framework.systemConfig.stafforgmanage.user.UserService; import com.vci.server.framework.utils.ObjectConvert; public final class UserCacheUtil { private static UserCacheUtil _instance = null; private UserCacheUtil() { } public static UserCacheUtil getInstance() { if (_instance == null) _instance = new UserCacheUtil(); return _instance; } public static void initCache() { getInstance().initUserCache(); } public void clearCache() { RedisUtil.getInstance().del(CacheNames.USERS); } public void setObject(User user) { if (user == null) return; setObject(ObjectConvert.changeUserToUserInfo(user)); } public void setObject(UserInfo user) { if (user == null) return; String json = JSONObject.toJSONString(user); RedisUtil.getInstance().hset(CacheNames.USERS, user.userName.toLowerCase(), json); RedisUtil.getInstance().hset(CacheNames.USERS, "MAP-" + user.id, user.userName); } public void delObject(User user) { if (user == null || StringUtils.isBlank(user.getUserName())) return; RedisUtil.getInstance().hdel(CacheNames.USERS, "MAP-" + user.getId()); delObject(user.getUserName()); } public void delObject(UserInfo user) { if (user == null || StringUtils.isBlank(user.userName)) return; RedisUtil.getInstance().hdel(CacheNames.USERS, "MAP-" + user.id); delObject(user.userName); } public void delObjectById(String oid) { String userName = RedisUtil.getInstance().hget(CacheNames.USERS, "MAP-" + oid); RedisUtil.getInstance().hdel(CacheNames.USERS, "MAP-" + oid); delObject(userName); } public void delObject(String user) { if (user == null) return; RedisUtil.getInstance().hdel(CacheNames.USERS, user.toLowerCase()); } private void initUserCache() { List users = new UserService().getAllUser(); for (int i = 0; i < users.size(); i++) { setObject((User)users.get(i)); } } }