Skip to content

工具类

erupt 开发常用工具类整理。

获取登录用户上下文信息

可以在 dataProxy 等场景中获取,如果自定义接口需要传递 Token。

java
@Component
public class Test {

    @Autowired
    private EruptUserService eruptUserService;

    @Autowired
    private EruptContextService eruptContextService;

    public void test() {
        // 获取当前登录用户 ID
        Long uid = eruptUserService.getCurrentUid();

        // 获取当前登录用户对象(eruptUser)
        EruptUser eruptUser = eruptUserService.getCurrentEruptUser();

        // 获取当前用户基础信息(不查数据库)
        MetaUserinfo metaUserinfo = eruptUserService.getSimpleUserInfo();

        // 获取当前请求 token
        String token = eruptContextService.getCurrentToken();

        // 获取当前访问菜单,拿到菜单自定义参数等信息
        EruptMenu eruptMenu = eruptContextService.getCurrentEruptMenu();

        // 获取 erupt 上下文类对象(有 @Erupt 注解的类)
        Class<?> clazz = eruptContextService.getContextEruptClass();
    }
}

继承实体类达到某些能力

java
@Erupt(name = "只显示当前用户录入的数据")
public class EruptClass extends LookerSelf {
    // TODO 字段定义
}

@Erupt(name = "自动管理创建人,创建时间,更新人,更新时间字段")
public class EruptClass extends HyperModel {
    // TODO 字段定义
}

基础模型

可继承类名称功能说明
BaseModel管理数据库主键,通用性配置,支持所有主流数据库

数据审计(外键关联)

可继承类名称功能说明
HyperModel自动管理创建人、创建时间、更新人、更新时间字段
HyperModelVo自动管理创建人、创建时间、更新人、更新时间字段,且在页面中展示这些数据
HyperModelCreatorVo自动管理创建人、创建时间、更新人、更新时间字段,且展示创建人与创建时间
HyperModelUpdateVo自动管理创建人、创建时间、更新人、更新时间字段,且展示更新人与更新时间

数据审计(非外键关联)

非页面操作使用 eruptDao.persisteruptDao.merge 时如果正确传递 token 会自动填充审计字段的信息(1.12.23 及以上版本支持)。

可继承类名称功能说明
MetaModel自动管理创建人、创建时间、更新人、更新时间字段(不关联用户表)
MetaModelVo自动管理创建人、创建时间、更新人、更新时间字段,且在页面中展示这些数据(不关联用户表)
MetaModelCreateVo自动管理创建人、创建时间、更新人、更新时间字段,且展示创建人与创建时间(不关联用户表)
MetaModelUpdateVo自动管理创建人、创建时间、更新人、更新时间字段,且展示修改人与修改时间(不关联用户表)
MetaModelCreateOnlyVo自动管理创建人、创建时间,且展示修改人与修改时间(不关联用户表)

权限过滤

不支持多层嵌套使用,如果类嵌套层级过深,建议模仿 LookerXXX 写法,自定义权限过滤类。

可继承类名称功能说明
LookerSelf只显示当前用户录入的数据(管理员登录可看所有数据)
LookerOrg只显示当前用户所属组织的数据(管理员登录可看所有数据)
LookerPostLevel显示当前组织内,职位权重低于登录用户的数据(管理员登录可看所有数据)

如果有其他自定义需求,可以通过 @PreDataProxy 自由定义。

错误消息提示 & 对话框通知

在任意方法中抛出该异常即可达到对应效果。

java
public void fun() {
    // 对话框方式提示
    throw new EruptApiErrorTip("错误信息提示");

    // 消息方式提示
    throw new EruptApiErrorTip("错误信息提示", EruptApiModel.PromptWay.MESSAGE);

    // 通知方式提示
    throw new EruptApiErrorTip("错误信息提示", EruptApiModel.PromptWay.NOTIFY);
}

使用 Erupt 类完成 JDBC 操作

详见:EruptDao(JDBC)

Released under the Apache-2.0 License.