Activity5流程框架运用案例:实现实名认证审核功能

这里讲一个Activity5流程框架的运用案例,分为以下几个环节:
1.安装
2.案例
画流程图、监听状态、监听状态、账户类型选择(accttype)、实名认证-申请(basicinfo)、资质上传更新(uploadCert)、输入邮箱地址(checkemail)、验证验证码正确与否(checkauthcode)、后台审核流程单

注意:repositoryService、runtimeService、taskService、historyService是流程框架中已经配置好的,不需要建立单独的Service层

为了观看方便,以下代码均为截图,详细代码在文末

一. 安装

在SSM框架环境下,resource/spring中植入一个spring-flow文件
在这里插入图片描述
在eclipse安装路径下的dropins下植入activiti-designer-5.14插件
在这里插入图片描述
在这里插入图片描述

二、案例

0.画图

右击空白new,创建auth流程项目,以下为几个配置要点:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.监听状态

在这里插入图片描述

**若登录进来状态authstatus是1,则显示:实名认证申请中
若登录进来状态authstatus是2,则显示:已实名认证
否则:跳转到申请页面第一步**

在这里插入图片描述
在这里插入图片描述

2.监听状态:

在session域中找到会员信息,根据会员ID找到申请的状态(进行到了第几步),判断:
如果状态ticket==null,则设置状态为0,起状态名为apply,否则判断状态,到了哪一步,则直接跳转到下一步(上传资质的那一步例外,根据账户类型查询需要显示上传什么资质)
之后如果每进行了一步,就要记录状态名

在这里插入图片描述

2.1账户类型选择(accttype)

在这里插入图片描述

A.将商业公司、个体工商户、个体经营、政府及非盈利组织的标签中设置accttype分别为0、1、2、3

在这里插入图片描述

B.在“认证申请”中设置button id=“applyBtn”,点击后是Ajax事件,转到Controller处理

在这里插入图片描述

C.在session域中获取会员信息,将被选择的accttype放入loginmember中,将loginmember更新,并记录流程单(新建表t_ticket)步骤,跳转到basicinfo页面

在这里插入图片描述

D.新建的表t_ticket属性值:id/memberid/piid(流程实例id)/status(0:审核中,1:已审核)/authcode/pstep

在这里插入图片描述

2.2实名认证-申请(basicinfo)

在这里插入图片描述

A.在basicinfo页面获取到用户输入的姓名、身份证号码、电话号码,利用Ajax走到Controller

在这里插入图片描述
在这里插入图片描述

B.在session域中找到会员信息,将前端获取的数据传入loginmember,将loginmember更新,记录流程单步骤,跳转到uploadCert页面

在这里插入图片描述

0.0前台的资质与账户类型管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3资质上传更新(uploadCert)

在这里插入图片描述

A.根据获取的账户类型显示需要上传的资质内容,选择文件上传

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

B.在session域中找到会员信息,设置上传路径,将上传的文件list集合保存到MemberCert中,MemberCert包括memberID(根据会员ID获取)、certid(营业执照副本、税务登记证、经营者证件等)、文件名称

在这里插入图片描述

C.记录流程单步骤、跳转到controller中的apply,比对状态值后跳转到checkemail

在这里插入图片描述

2.4输入邮箱地址(checkemail)

在这里插入图片描述

A.在checkemail页面获取session域中loginmember的email回显到输入框

在这里插入图片描述

B.在session域中找到会员信息,输入的email值与loginmember的email值不同时,将新的email值更新到loginmember中获取名为auth的流程实例,建立map集合variables,将流程实例中的toemail、authcode(此时用random函数随机生成)、logingacct、passListener、refuseListener放入集合中,runtime启动流程实例(将参数variables放进去)

C.流程会自动给邮箱发一个验证码

在这里插入图片描述

D.记录流程单(ticket)步骤,跳转到checkauthcode页面

在这里插入图片描述
在这里插入图片描述
自动发邮件,需要植入一个配置文件:

在这里插入图片描述

2.5验证验证码正确与否(checkauthcode)

在这里插入图片描述

A.在前端输入邮箱获得的验证码,在session域中找到会员信息。

在这里插入图片描述
在这里插入图片描述

B.根据会员id获取流程单,如果流程单中的验证码和输入的验证码相等,启动流程进行验证码审核,更新用户的申请状态(未审核0,已提交审核1,审核通过2;将0改为1)

C.记录流程单步骤在这里插入图片描述

2.6后台审核流程单

2.6.1流程单列表查询

A.同步请求跳转到controller层的index,再返回给index页面

在这里插入图片描述
在这里插入图片描述

B.异步请求pageQuery.do走controller层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
C.查询所有auth在办流程至list集合,迭代所有流程,将流程定义名称、流程定义版本、任务名称、会员名称显示出来,封装至map集合,将map封装至data中,将data和总页数封装至page中,将page封装至result中返回给前台

在这里插入图片描述
在这里插入图片描述

2.6.2查看被审核流程资质信息

A.点击index页面的某一流程右边的编辑按钮,走同步请求show

在这里插入图片描述
在这里插入图片描述
B.根据memberid查出会员信息,根据memberid查出会员资质信息至list集合中;将会员信息member和资质信息list放置到map中,返回给前台,跳转到show页面

在这里插入图片描述

C.前台JSP页面显示member的realname、cardnum、tel、迭代资质照片显示出来

在这里插入图片描述

2.6.3审核流程单

A.在查询某个会员信息的页面,有两个按钮:同意、拒绝,点击同意按钮,走controller层的pass.do,点击拒绝按钮,走controller层的refuse.do

在这里插入图片描述

B.定义两个监听器,一个同意流程监听器,一个拒绝流程监听器,都实现ExecutionListener接口;

C.若走pass流程,则将memberid和flag装进taskService,进入passListener监听器

在这里插入图片描述

D.定义一个获取IOC容器的类ApplicationContextUtils(因为流程监听器对象是自己创建(new)的,不能自动装配),此类实现ApplicationContextAware接口

在这里插入图片描述

E.在passListener中取出IOC容器applicationContext,在容器中获取TicketService.class、MemberService.class;更新t_member表的authstatus字段: 1 -> 2 - 已实名认证,//更新t_ticket表的status字段 0 -> 1 表示流程结束

在这里插入图片描述
在这里插入图片描述

F.在controller中结束任务流程

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值