Activiti 6.x【3】继续核心API基础

基本流程讲解与开发前奏

  • 基本流程讲解与开发前奏
    • 核心API介绍
    • IdentityService
      • 用户管理
      • 组管理
      • Membership管理(用户对应组关系)


核心API介绍

Activiti 6.x【3】继续核心API基础_第1张图片
springboot环境下不再以activiti.cfg.xml文件的形式配置,可在yml内配置,yml配置会在后文讲解。

RepositoryService:对流程定义进行管理。
RuntimeService:对流程实例的管理。
TaskService:对流程任务进行管理。
IdentityService:管理用户和用户组。
ManagementService:提供对activiti数据库的直接访问【一般不用】。
HistoryService:对流程的历史数据进行操作。
FormService:动态表单。

IdentityService

用户管理

先讲IdentityService,后续联合TaskService、RuntimeService实现并行网关demo。
新建用户【无法创建两个ID一样的用户】

/**新建用户*/
@Test
public void testUser(){
    User user = identityService.newUser("ptm");
    user.setFirstName("潘");
    user.setLastName("天淼");
    user.setEmail("[email protected]");
    user.setPassword("123456");

    //新建用户
    identityService.saveUser(user);
}

Activiti 6.x【3】继续核心API基础_第2张图片
一般用户信息图片啥的就别存在activiti里面了,自带的表应该是满足不了真实业务需求的。呐QAQ你看下面这表。建议的话是在identityService的基础上,以userid与新建的表关联起来。RBAC了解一下。
这里写图片描述
获取用户信息【更新用户信息请先获取用户信息对获取的user,set属性调用saveUser方法即可】

/**获取用户信息*/
@Test
public void searchUser(){
    String userid ="ptm";
    User user = identityService.createUserQuery()
            .userId(userid).singleResult();
    System.out.println("博主的名字:"+user.getFirstName()+user.getLastName());
    System.out.println("博主的邮箱:"+user.getEmail());
    System.out.println("呐-ID肯定是相等的:"+userid.equals(user.getId()));
    System.out.println("测试密码:"+user.getPassword());
    System.out.println("是否验证成功:"+identityService.checkPassword("ptm","123456"));
}

Activiti 6.x【3】继续核心API基础_第3张图片

删除用户信息

/**删除用户信息*/
@Test
public void delUser(){
    identityService.deleteUser("ptm");
}

如果需要用activiti的用户表,接口有如下方法
Activiti 6.x【3】继续核心API基础_第4张图片

组管理

/**用户组管理*/
@Test
public void testGroup(){
   String groupId ="HRPTM";
   //创建用户组对象
   Group group = identityService.newGroup(groupId);
   group.setName("HR");
   group.setType("assignment");
   //保存用户组
   identityService.saveGroup(group);
   Group groupInfo = identityService.createGroupQuery()
           .groupId(groupId)
           .singleResult();
   System.out.println("组的名字:"+groupInfo.getName());
   System.out.println("组类别"+groupInfo.getType());
   System.out.println("GroupId:"+groupInfo.getId());
//        //删除用户组
//        identityService.deleteGroup("HRPTM");
}

组的管理与用户管理类似,就直接一回杀了。执行结果如下:
Activiti 6.x【3】继续核心API基础_第5张图片
Activiti 6.x【3】继续核心API基础_第6张图片

Membership管理(用户对应组关系)

/**Membership管理*/
@Test
public void testMembership(){
    //建立关联
    identityService.createMembership("ptm","HRPTM");
    //查询属于HRPTM用户组的用户
    User user = identityService.createUserQuery()
            .memberOfGroup("HRPTM")
            .singleResult();
    System.out.println("博主的名字:"+user.getFirstName()+user.getLastName());
    System.out.println("博主的邮箱:"+user.getEmail());
    System.out.println("userid"+user.getId());
    System.out.println("测试密码:"+user.getPassword());
    System.out.println("是否验证成功:"+identityService.checkPassword("ptm","123456"));

    //查询用户所属组
    Group group = identityService.createGroupQuery()
            .groupMember("ptm")
            .singleResult();
    System.out.println("组的名字:"+group.getName());
    System.out.println("组类别"+group.getType());
    System.out.println("GroupId:"+group.getId());
}

Activiti 6.x【3】继续核心API基础_第7张图片
Activiti 6.x【3】继续核心API基础_第8张图片
另外测试的key用的都是普通的英文,如是正式项目建议UUID。

你可能感兴趣的:(java,activiti)