JeeSite 4.x

Spring Boot 最好的快速开发平台

常用工具类 UserUtils、DictUtils、CacheUtils

常用工具类

1、获取当前用户:

  • UserUtils.getUser();
  • entity.getCurrentUser();
  • ${@UserUtils.getUser().getUserName()} 视图页面获取用户名
  • ${isNotBlank(@UserUtils.getUser().getId())} 视图页面判断登录状态

2、获取当前用户员工:

  • EmpUtils.getEmployee();
  • ${@EmpUtils.getEmployee().getEmpName()} 视图页面获取员工姓名

3、获取当前用户部门:

  • EmpUtils.getOffice();
  • ${@EmpUtils.getOffice().getOfficeName()} 视图页面获取所在部门

4、获取当前用户菜单:

  • UserUtils.getMenuList();
  • UserUtils.getMenuListByParentCode(parentCode);

5、获取当前用户授权信息:

  • UserUtils.getAuthInfo();

6、获取或设置当前用户缓存:

  • UserUtils.getCache(key);
  • UserUtils.putCache(key);

UserUtils

/**
 * 用户工具类
 * @author ThinkGem
 */
public class UserUtils {
	
	/**
	 * 根据用户编码获取用户
	 * @param userCode
	 * @return 取不到返回null
	 */
	public static User get(String userCode);

	/**
	 * 根据登录账号获取用户(不区分大小写)
	 * @param loginCode
	 * @return 取不到返回null
	 */
	public static User getByLoginCode(String loginCode);

	/**
	 * 根据登录账号获取用户(不区分大小写)
	 * @param loginCode
	 * @return 取不到返回null
	 */
	public static User getByLoginCode(String loginCode, String corpCode);
	
	/**
	 * 根据用户类型和引用Code获取用户
	 * @param userType
	 * @param refCode
	 * @return
	 */
	public static User getByTypeAndRef(String userType, String refCode);
	
	/**
	 * 获取当前用户
	 * @return 取不到返回 new User()
	 */
	public static User getUser();
	
	/**
	 * 获取用户类型值(jeesite.yml中的user.userTypeMap配置)
	 * @param userType 用户类型
	 * @param key 配置参数key
	 * @return
	 */
	public static String getUserTypeValue(String userType, String key);
	
	/**
	 * 获取当前用户权限信息
	 * @return
	 */
	public static AuthorizationInfo getAuthInfo();
	
	/**
	 * 获取当前用户授权菜单
	 * @return
	 */
	public static List<Menu> getMenuList();
	
	/**
	 * 获取当前用户授权菜单
	 * @param parentCode 父级菜单编码,仅当前级别数据;如果使用“0,”开头,则按父级查询所有子节点数据
	 * @return
	 */
	public static List<Menu> getMenuListByParentCode(String parentCode);
	
	/**
	 * 获取当前用户授权菜单树([code,childList[code,childList[...]]]的形式)
	 * @return
	 */
	public static List<Menu> getMenuTree();
	
	/**
	 * 获取当前用户授权菜单树([code,childList[code,childList[...]]]的形式)
	 * @param parentCode 父级菜单编码,仅当前级别数据;如果使用“0,”开头,则按父级查询所有子节点数据
	 * @return
	 */
	public static List<Menu> getMenuTreeByParentCode(String parentCode);
	
	/**
	 * 根据用户名获取SSO的登录令牌(sso密钥+用户名+日期,进行md5加密)
	 * 生成举例: Md5Utils.md5(secretKey+username+20150101))
	 * @param username 用户登录名
	 * @return token
	 */
	public static String getSsoToken(String username);
	
	/**
	 * 获取当前登录者主体对象(未登录返回空)
	 */
	public static LoginInfo getLoginInfo();
	
	/**
	 * 获取当前会话对象
	 * @return
	 */
	public static Session getSession();
	
	/**
	 * 获取当前用户主题对象,可进行验证权限
	 */
	public static Subject getSubject();
	
	/**
	 * 获取用户缓存值
	 * @param key
	 * @return
	 */
	public static <V> V getCache(String key);
	
	/**
	 * 获取用户缓存值
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static <V> V getCache(String key, V defaultValue);

	/**
	 * 设置用户缓存值
	 * @param key
	 * @param value
	 */
	public static <V> void putCache(String key, V value);

	/**
	 * 移除用户缓存值
	 * @param key
	 */
	public static void removeCache(String key);

	/**
	 * 移除用户缓存值
	 * @param key
	 */
	public static void removeCacheByKeyPrefix(String keyPrefix);

	/**
	 * 清除当前用户缓存
	 */
	public static void clearCache();
	
	/**
	 * 清除指定用户缓存,不包括改用的SESSION缓存
	 * @param user.userCode
	 */
	public static void clearCache(User user);
	
}

EmpUtils

/**
 * 员工部门工具类
 * @author ThinkGem
 * @version 2020-5-20
 */
public class EmpUtils {
	
	/**
	 * 根据员工编码获取员工
	 * @author ThinkGem
	 */
	public static Employee get(String empCode);
	
	/**
	 * 根据用户对象获取员工,不是员工返回null
	 * @author ThinkGem
	 */
	public static Employee get(User user);
	
	/**
	 * 根据用户编码获取员工,找不到或不是员工返回null
	 * @author ThinkGem
	 */
	public static Employee getByUserCode(String userCode);
	
	/**
	 * 根据登录账号获取员工,找不到或不是员工返回null
	 * @author ThinkGem
	 */
	public static Employee getByLoginCode(String loginCode);
	
	/**
	 * 获取当前登录的员工
	 * @author ThinkGem
	 */
	public static Employee getEmployee();

	/**
	 * 获取当前附属机构对象列表
	 * @author ThinkGem
	 */
	public static List<EmployeeOffice> getEmployeeOfficeList();
	
	/**
	 * 根据机构编码获取机构对象
	 * @param officeCode
	 * @author ThinkGem
	 */
	public static Office getOffice(String officeCode);
	
	/**
	 * 获取当前员工机构
	 * @author ThinkGem
	 */
	public static Office getOffice();

	/**
	 * 获取当前员工所有的机构
	 * @author ThinkGem
	 */
	public static List<Office> getOfficeAllList();

	/**
	 * 获取当前员工所有机构编码,包括附属机构(数据权限用)
	 * @author ThinkGem
	 */
	public static String[] getOfficeCodes();
	
	/**
	 * 获取当前员工所有机构编码,包括附属机构以及子机构(数据权限用)V4.2.0
	 * @author ThinkGem
	 */
	public static String[] getOfficeCodesAndChildren();

	/**
	 * 根据机构类型,获取当前员工所有机构编码,包括附属机构(数据权限用)
	 * @author ThinkGem
	 */
	public static String[] getOfficeCodesByType(String type);

	/**
	 * 获取当前员工所有上级机构编码,包括附属机构(数据权限用)
	 * @author ThinkGem
	 */
	public static String[] getOfficeParentCodess();
	
	/**
	 * 根据机构类型,获取当前员工所有机构编码,包括附属机构(数据权限用)
	 * @author ThinkGem
	 */
	public static String[] getOfficeParentCodessByType(String type);
	
	/**
	 * 根据公司编码获取公司对象
	 * @param companyCode
	 * @author ThinkGem
	 */
	public static Company getCompany(String companyCode);
	
	/**
	 * 获取当前员工公司对象
	 * @author ThinkGem
	 */
	public static Company getCompany();

	/**
	 * 获取当前员工所有的公司
	 * @author ThinkGem
	 */
	public static List<Company> getCompanyAllList();
	
	/**
	 * 获取当前员工所有公司编码,包括子公司(数据权限用)V4.2.0
	 * @author ThinkGem
	 */
	public static String[] getCompanyCodesAndChildren();
	
	/**
	 * 清除指定用户缓存,不包括改用的SESSION缓存
	 * @author ThinkGem
	 */
	public static void removeCache(String key);
}

DictUtils

/**
 * 字典工具类
 * @author ThinkGem
 * @version 2019-11-25
 */
public class DictUtils {
	
	/**
	 * 根据字典值获取字典标签
	 * @param dictType
	 * @param dictValue
	 * @param defaultValue
	 * @return
	 */
	public static String getDictLabel(String dictType, String dictValue, String defaultValue);
	
	/**
	 * 根据字典值获取字典标签(多个值用逗号隔开)
	 * @param dictType
	 * @param dictValues
	 * @param defaultValue
	 * @return
	 */
	public static String getDictLabels(String dictType, String dictValues, String defaultValue);

	/**
	 * 根据标签获取字典值
	 * @param dictType
	 * @param dictLabel
	 * @param defaultValue
	 * @return
	 */
	public static String getDictValue(String dictType, String dictLabel, String defaultValue);

	/**
	 * 根据标签获取字典值(多个值用逗号隔开)
	 * @param dictType
	 * @param dictLabels
	 * @param defaultValue
	 * @return
	 */
	public static String getDictValues(String dictType, String dictLabels, String defaultValue);

	/**
	 * 返回字典列表
	 * @param dictType 字典类型,加 __all(双下划线+all) 后缀,则返回停用的字典 v4.2.0
	 * @return
	 */
	public static List<DictData> getDictList(String dictType);
	
	/**
	 * 手动追加字典缓存
	 * @param dictType
	 * @param dictDatas
	 * @author ThinkGem
	 */
	public static void setDictList(String dictType, DictData... dictDatas);
	
	/**
	 * 返回字典列表(JSON)
	 * @param type
	 * @return
	 */
	public static String getDictListJson(String dictType);
	
	/**
	 * 清理缓存
	 */
	public static void clearDictCache();
	
}

CacheUtils

/**
 * 全局缓存工具类
 * @author ThinkGem
 * @version 2016-2-3
 */
public class CacheUtils {

	/**
	 * 获取缓存
	 * @param cacheName 缓存名称
	 * @param key 缓存键
	 */
	public static <V> V get(String cacheName, String key);
	
	/**
	 * 获取缓存
	 * @param cacheName 缓存名称
	 * @param key 缓存键
	 * @param defaultValue 默认值
	 * @return
	 */
	public static <V> V get(String cacheName, String key, V defaultValue);
	
	/**
	 * 写入缓存
	 * @param cacheName 缓存名称
	 * @param key 缓存键
	 * @param value 缓存值
	 */
	public static <V> void put(String cacheName, String key, V value);
	
	/**
	 * 写入缓存
	 * @param cacheName 缓存名称
	 * @param key 缓存键
	 * @param value 缓存值
	 * @param timeToLiveInSeconds 自最后更新多长时间超期
	 */
	public static <V> void put(String cacheName, String key, V value, long timeToLiveInSeconds);
	
	/**
	 * 从缓存中移除
	 * @param cacheName 缓存名称
	 * @param key 缓存键
	 */
	public static void remove(String cacheName, String key);
	
	/**
	 * 根据key前缀从缓存中移除
	 * @param cacheName 缓存名称
	 * @param keyPrefixes 缓存键前缀
	 */
	public static void removeByKeyPrefix(String cacheName, String... keyPrefixes);
	
	/**
	 * 获得一个Cache,没有则抛出异常。
	 */
	public static <K, V> Cache<K, V> getCache(String cacheName);
	
	/**
	 * 清空缓存数据(清理缓存中的数据)
	 */
	public static void clearCache(String cacheName);

	/**
	 * 移除缓存(删掉这个缓存名字)
	 */
	public static void removeCache(String cacheName);
	
	/**
	 * 获得一个Cache,没有则抛出异常。
	 */
	public static Set<String> getCacheNames();
	
	/**
	 * 清理 spring.cache.clearNames 指定的缓存(除会话缓存外的缓存)
	 */
	public static void clearCache();
	
}

SysCacheUtils

/**
 * 系统缓存工具类(v4.2开始从 CacheUtils 中分离出的 SysCache 缓存,防止无用,
 * 该类仅用于操作 cacheName 为 sysCache 的缓存数据,而 CacheUtils 是操作全局缓存工具)
 * @author ThinkGem
 * @version 2020-5-20
 */
public class SysUtils {

	/**
	 * 获取缓存名称为SYS_CACHE内的值
	 * @param key 缓存键
	 */
	public static <V> V get(String key);
	
	/**
	 * 获取缓存名称为SYS_CACHE内的值
	 * @param key 缓存键
	 * @param defaultValue 默认值
	 */
	public static <V> V get(String key, V defaultValue);
	
	/**
	 * 写入缓存名称为SYS_CACHE内的值
	 * @param key 缓存键
	 * @param value 缓存值
	 */
	public static void put(String key, Object value);
	
	/**
	 * 从缓存名称为SYS_CACHE中移除
	 * @param key 缓存键
	 */
	public static void remove(String key);

	/**
	 * 根据key前缀从缓存名称为SYS_CACHE中移除
	 * @param keyPrefixes 缓存键前缀
	 */
	public static void removeByKeyPrefix(String... keyPrefixes);
	
}

阿里云【爆款特惠】精选爆款产品低至0.95折

关注 JeeSite 公众号,了解最新动态