直接跳到内容

后端常用工具类

引入BASE 模块后可以使用到一下工具类,即可以在 java环境,也可以在groovy环境中使用。 除此之外我们还引入了 hutool 工具类,请自行查阅相关文档。

maven 坐标

java
<dependency>
  <groupId>com.dstz</groupId>
  <artifactId>ab-base-common</artifactId>
</dependency>

用户上下文工具类 UserContextUtils

UserContextUtils 工具类 主要提供当前用户的信息

  • UserContext getUserContext() :获取当前用户上下文
  • Optional<IUser> getUser() : 获取当前用户,需判空
  • IUser getValidUser() :获取当前用户,如果没有则抛出异常
  • String getUserId() : 获取当前用户ID
  • String getUserName() : 获取当前用户姓名
  • String getAccount() : 获取当前用户账号
  • Optional<IGroup> getGroup() : 获取当前用户组织,需判空
  • String getGroupId() :获取当前用户组织Id
  • boolean isSuperAdmin() : 是否是超级管理员
  • static void clear() : 清楚当前执行人

List 转 Tree工具类 BeanConversionUtils

listToTree

主要将 list 类型的数据结构转成 树形,非常高效、有用。万条以内的树形数据从此告别异步加载

java
<T extends Tree> List<T> listToTree(List<T> list)

注:

  1. T 需要实现接口 com.dstz.base.api.model.Tree
  2. list 数据是有层级关系的,类似于 id parentId 这种的

Bean属性复制 BeanCopierUtils

BeanCopierUtils 用于 bean 之间的 属性的复制

copyProperties 属性拷贝

java
 /**
 * 属性拷贝
 *
 * @param source 源对象
 * @param target 目标对象
 */
void copyProperties(Object source, Object target)

transformBean 类转换

java
/**
 * 将一个类转换成另外一个类。属性copy
 * @param source 源对象
 * @param clazz  目标类
 * @return 目标对象
 */
T transformBean(Object source, Class<T> clazz) 

transformList 列表转换

java
/**
 * 将列表转换为另一个类对象实例列表。
 *
 * @param sourceList  源数据列表
 * @param targetClass 目标类
 * @param <T>         T
 * @return 目标对象列表
 */
List<T> transformList(Collection<?> sourceList, Class<T> targetClass)

transformMap bean 转map

java
/**
 * 将bean转换为Map
 *
 * @param bean     bean
 * @param editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父
 * @return map存放的键值数据
 */
Map<String, Object> transformMap(Object bean, Class<?> editable)

汉语拼音工具类 HanYuPinyinUtil

toHanYuPinyin 汉语转拼音

java
/**
* 将文字转为汉语拼音
*
* @param ChineseLanguage 要转成拼音的中文
*/

String getPinyinString(String ChineseLanguage)

getFirstLetter 取第一个字母

java
/**
 * 取第一个汉字的第一个字符
 *
 * @param ChineseLanguage 汉字
 */
String getFirstLetter(String ChineseLanguage)

getFirstLetters 取所有汉字的第一个字母

java
/**
 * 取所有汉字的第一个字母
 * @param ChineseLanguage 汉字
 * @param caseType 大写,小写               
 */
String getFirstLetters(String ChineseLanguage, HanyuPinyinCaseType caseType)

HanYuPinyinUtil.getFirstLettersLo 取所有汉字的第一个字母转小写

java
/**
 * 取所有汉字的第一个字母 转小写
 * @param ChineseLanguage 汉字  
 */
String getFirstLettersLo(String ChineseLanguage)

HanYuPinyinUtil.getFirstLettersUp 取所有汉字的第一个字母转大写

java
/**
 * 取所有汉字的第一个字母 转大写
 * @param ChineseLanguage 汉字  
 */
String getFirstLettersLo(String ChineseLanguage)

Rest 请求工具类 AbRestTemplateUtil

AbRestTemplateUtil.getRestTemplate 获取RestTemplate

java
/**
 * 获取rest template
 *
 * @param isService 是否微服务
 * @return rest template
 */
RestTemplate getRestTemplate(boolean isService)

系统属性工具类 AbPropertyUtil

系统属性工具类用来获取系统中的配置,系统属性配置分为 yml文件中的配置和数据库中的属性配置,对应的工具类也分为两种:

  • AbPropertyUtil.Yml : 获取yml 文件中的配置
  • AbPropertyUtil.Sys : 获取数据库中的属性配置

AbPropertyUtil.Yml.get 获取yml 属性配置

java
/**
 * 根据键值获取yml文件中配置的值。
 *
 * @param property     属性
 * @param defaultValue 默认值
 * @return String
 */
String get(String property, String defaultValue)
  
/**
 * 根据键值获取yml文件中配置的值。
 * @param property     属性
 * @return String
 */
String get(String property)

可根据已知数据类型 调用不同的 get 方法,如:getInt

java
/**
* 获取整形值。
*
* @param property
* @return
*/
Integer getInt(String property)
Integer getInt(String property,Integer defaultValue)

/**
 * 获取布尔值。如果配置值为 true,则返回true。这里不区分大小写,可以配置成True等。
 *
 * @param property
 * @return
 */
boolean getBoolean(String property)

AbPropertyUtil.Sys.get 获取系统属性配置

使用 AbPropertyUtil.Sys.get 获取系统属性配置 首先要定义 propertyEnum 枚举常量,可以使用 ab-base-common 中的 com.dstz.base.common.property.PropertyEnum,也可以根据不同的模块定义枚举类, 只要实现 com.dstz.base.common.property.IBaseProperty即可。如:

java
public enum BpmPropertyEnum implements IBaseProperty {
  CHECK_FLOW_READ_PERMISSION_SWITCH("isCheckFlowReadPermission","是否校验流程实例只读权限",true);
  //唯一标识Key
  private String key;
  //描述
  private String desc;
  //默认值
  private Object defaultValue;
}

可根据已知数据类型 调用不同的 get 方法,如:getInt

java
/**
* 获取字符串参数值。
* @param propertyEnum
* @return
*/
String get(IBaseProperty propertyEnum)

/**
 * 根据参数别名获取整形参数。
 * @param propertyEnum
 * @return
 */
Integer getInt(IBaseProperty propertyEnum)

/**
* 根据别名获取长整型参数。
* @param propertyEnum
* @return
*/
Long getLong(IBaseProperty propertyEnum)

/**
 * 根据别名获取布尔型参数值。
 * @param propertyEnum
 * @return
 */
boolean getBoolean(IBaseProperty propertyEnum)
后端常用工具 has loaded