00:00
各位同学大家好,刚才呢,咱们完成了微信授权登录功能,那下面呢,我们继续来实现消息推送功能,首先说一下啊,咱们什么地方要用到消息推送,我们直接看一下代码里边大家看到啊,咱们找到这个service,这个实现类里边咱们找到两个方法。首先啊,咱们从上面看,咱们先看第一个方法,咱们之前写过这个方法,看到这里叫部署流程定义,然后部署之后我们要启动流程实例,在启动流程实例之后,大家看代码里边的这个位置,我这里是不是加一个土度,咱们现在要推送消息,那它的过程是怎么样的呢?咱们再重复一遍啊。比如说现在张三发送了一个请假申请,发送之后要由李四审批,那咱查询张三发送之后,下一个由谁审批,给这个审批人是不是要发个消息通知他,你有任务需要进行审批,这就叫做推送消息,所以咱们现在就来做这个事情,这是第一个地方。
01:07
另外咱们再来看啊,还有第二个地方,大家往下来找,咱们找到这个方法叫审批方法,比如说现在张三发送了请假申请到了李四这里,李四是不是要审批,而李四审批之后,那怎么做,咱要查询李四审批之后,他的下一个审批人,比如是王五,那给王五发个消息,等这个审批之后,那给当前这个人发个消息,告诉他你当前这个申请已经审批通过,或者审批没有通过等等,这是我们做这个就是消息的推送,所以咱们下面就来完成这个过程,咱们就以这个。启动流程定义给申请人发消息为例给大家做演示,因为消息写法都是类似,我们就以这个为例来完成这个具体功能,那这个怎么做,咱们来看一下啊,还是来到这个微信公众号平台里边,咱们往下来找,找到这个地方有一个叫接收消息,那咱们点一个啊这个消息。
02:09
点进去之后看它的文档里边,大家看这个位置。叫什么模板消息,什么叫模板消息?就是咱们现在啊发送的消息内容是不是咱们自己定义的,比如说我定义说张三提交了请假申请,请你进行审批,是不是咱们自己定义的内容,这个就叫模板消息,就是我们建个模板,然后在里边传入不同的数据,最终完成消息发送,咱用的是它模板消息,那这个怎么来用,咱们来看啊,往下来找,这里边有它的各种规范,然后在这位置写到啊,目前允许发的模板示例,这里边有一个示例文档,咱们把它下载下来,看一下它官方怎么约定的,另外有些就是不允许发的事例,咱们找这个允许发的事例,我把这个下载一下啊。
03:02
把这个下载下载之后打开,在里边有一个DOS文件啊,就是一个word文档,咱们把它拿过来。然后大家看啊,这里边是他相关的内容,我们举个例子啊,比如大家看这个首先有一个first,首先这个节点,然后里边有会员卡号,姓名内容等等,它里边用这种表达式的形式向里边传参数,这个效果最终显示就是这个样子,所以咱们参考他在我们这个公众号平台中来创建一个模板消息,或者咱们一会儿进行发送,那下面咱做个创建啊。首先我来到这个微信公众号平台里边,大家看这个位置叫做新增测试模板,因为咱目前是测试的啊,这里边最多你可以建十个,那我现在新建一个,咱们来写第一个啊,这个我就参考课件来创建了第一个咱们写一个叫待处理审批,比如说张三提交了李四审批,那这里边加上模板的内容,内容中跟咱刚才看那个事例类似,我把这个复制过来。
04:09
咱们看一下啊。首先这是开始显示,然后咱们显示审批编号,提交时间,包括里边的具体内容,这是我们创建一个模板,这个内容啊按照它创建,但实际中可能有更多内容按照这个格式创建,你看里边啊有first,有KEYWORD1KEYWORD content,通过它并创建,然后现在我点提交。提交之后啊,现在就完成了,这是名字,这是内容,然后这个模板有一个模板ID,然后面通过它来完成这个消息的推送,现在就完成了啊,当然你可以建多个,我就以这个为例。然后这个写完之后,下面呢,咱们开始写这个推送消息的方法,怎么来做,给大家说明啊,它的做法其实很简单,咱们用一个类做通里设置,然后设置相关的,比如家该。
05:11
KEYWORD1KEYWORD2CONTENT是不是刚才那些名字,根据名字里面设置你的具体值,最终可以完成这个发送,调用方法M去就可以了,下面啊,咱们来写下这个方法,然后最终我们的具体功能中我们进行测试。这位写下啊。首先啊,我在这个项目里边,我们在这个里创建一个interface。这个起个名字就叫做,然后里边呢,我加上一个,比如个方啊,我把这个过来,这个方法咱做的事情是什么呢?我这里写到了,就是推送待审批人员,比如说现在张三提交申请,李四审批,那我给李四就推送一个消息,里边传几个值,第一个是你的流程那个ID啊,第二个是用户ID,第三个是任务ID研就传入这几个参数。
06:16
然后之后呢,我们写它的实现类,在实现类中具体实现这个方法,那咱们啊,这里边来创建一下。加上它的实现类,然后实现这个接口service,在service上别忘记啊,这个注解。交给死管理,然后咱们具体实现一下这个方法。把这个啊做一个实践。啊,那我们来看一下啊呃,这方法应该实现错了啊,不是menu是那个。Service啊是他啊,刚才写错了啊,然后把这个去掉啊,咱重新给它。写一下啊,我们刚才应该就写了一个方法啊,我这个实现类实现的接口写错了啊。
07:01
这个去掉,咱们加上它这个方法。就是这个推送给这个待审批的人员啊,把这个加上。然后加上之后呢,在里边写上我们的具体的内容,那咱们看怎么来做啊,首先我这里边是不是有三个ID,这三个ID的目的是什么呢?就是为了我们能够查到一些相关信息,为了最终咱们显示或者进行发送消息,使用那三个值我们看一下啊,第一个就是我们的流程IDID,通过这个ID咱们可以查这个表得到相关信息,然后看第二个啊,第二个叫user ID。这个是什么呢?给大家说明啊,这个智业为就是咱们要推送那个人的那个用户ID,比如现在我推送给张三,那就是张三ID,我推送给李四,那就是李四ID,第三个是当前这个任务的ID,所以这里边有三个值,第一个流程ID,第二个要推送那个人的用户ID,第三个ID,特别是这个只注意啊,写法有多种方式,总之一个原则,你能把要求信息都查到就可以了,我就按照我的习惯传三个参数。
08:17
用户ID,流程ID还有任务ID啊,那这个之后下面我们写一下啊,首先第一部分先根据就是这些ID把数据咱先给他查一下啊,先把数据查出来,为了后面我们使用做准备,那下面咱们来查一下啊。首先我们的第一部分,咱们根据流程ID自我查询,那我现在啊,把它的service注入进来。Private里边这个OA。把这个注入,另外里边呢,应该用到那个用户的service,我把这个也做个注入。System user service啊,这个咱们完成注入。
09:03
然后注入之后,下面呢,我们来调方法进行实现,首先第一个啊,调用process里边的方法,咱们根据这个ID得到你的这个流程的对象,就是这个process啊,为了咱们后面使用,然后第二个呢,写一下啊,根据这个user ID查询出那个就是要。推送的。这个人的这个信息啊,比如说给张三推送,那得到张三信息,给李四推送,得到李四信息,这里边咱们来查一下啊,调用里边的方法,咱们写一下啊,应该是用这个get ID。根据用户ID得到用户对象。这是咱们的第二部分啊,然后之后这里边我们继续往下来看啊,大家看啊,在这里边呢,因为咱们后面操作过程中,我们想得到更多的信息,比如说在这过程中有咱那个流程审批的那个模板啊,包括有一些其他值,比如说现在啊,我这个提交是由谁提交过来的,这些也可以得到,那我们继续获取一下啊。
10:12
呃,这个我写的详细点啊,这是。查询你的流程的信息。这是第一个,第二个查询要推送人的信息,然后第三个咱就来查一下啊,我这里边就是审批那个模板的信息,那我们做个查询这模板信息,咱们把那个同样给它注入进来。加上奥特。Private啊,这个叫OA。把这个注入,然后咱们啊做一个查询,我这里写一下啊。们的getd,然后用那个模板ID,这样的话得到我们这个模板那个对象信息啊,Process,他们里头这些都给他得到啊,然后得到之后我们再得到下一个,得到里边那个就是提交申请那个人的,比如现在是张三提交的,我把张三这个信息得到,李四提交的,把李四信息得到,得到那个提交人的信息。
11:20
就下一个操作啊。获取一下提交审批人的这个信息,就谁提交的,那怎么做呢,写一下啊。我用I,大家看这个对象啊,咱们用process里边加上一个方法叫get user ID,这个得到就你那个提的那个信息最user,呃,为了区分个名字个。
12:00
System就是提交人的那个信息,所以大家看啊,以上咱把这些值应该都得到了啊,这是我们写的,就是一部分查询相关信息,然后查询相关信息之后,下面呢,我们继续往下来做,下面做什么呢?咱们来写啊,下面咱就开始做这个。消息的推送或者消息发送,首先啊怎么做,咱们先在里边设置我们要消息发送的一些信息。比如说你现在啊,要给谁发送,发送什么内容啊,包括内容中里边有哪些信息等等,这个我们在里边需要做到。那咱们来写一下啊,这个怎么做,我这里做个说明,咱们用这个叫微信。应该叫TB里。里边有一个叫就这个啊,大家看啊,是不是这个模板消息,然后在另外一个方法叫这个build,通过它来构建,在build里边呢,咱们设置里边有几个值,我这里写一下啊,首先第一个大家看这方法啊,叫什么to user。
13:10
什么意思啊,就是你现在啊,要给谁进行这个消息的发送,写一下啊,就是给谁发送这个消息,这里边加什么的,注意啊,不是加上你那个用户那个信息,比如加ID,不是加这个要加上你给谁发消息,加上这个人的那个open ID。这个纸还记得吧,啊,比如说现在啊,我给张三要推动个消息,那就加上张三的ID,我给李四发个消息,那就加上李这个把它我们给它就是传去就可以了,给谁发送就传它的ID值。
14:00
但是这里边呢,因为这个过程中呢,如果咱要真正测试,肯定需要有多个微信啊,当然我们不可能说为一个测试自己申请多个微信,有的同学可能不好做到,所以咱为了测试,我现在就给我自己发送了,但是效果是一样的,那把流程咱也写清楚啊,我这里写一下。获取就是。呃,要给的那个发送的就是给那个消息的那个人啊,他的那个open ID啊,就什么意思,就比如现在我给张三发送就得到3OPEN ID啊,给它的open ID得到,那怎么得到,我们用system user里边一个方法叫get open ID,把这得到,但是这个值呢,可能等于空啊,咱给它加上一个默认值,为了测试使用。加上啊,加上一个string u点这个it empty open ID,如果它等于空open ID,我就给它加上一个默认值,就加上我当自己这个ID,但这里边是为了测试使用。
15:04
加个注释啊。度,我们是为了测试使用,实际中肯定是你实际的ID,在实际操作中,我这个用户要使用这个微信公众号做审批,他肯定是绑定了微信,然后才能操作啊,要不然它里边肯定不能做这操作,因为管理员都加好之后,你用微信公众号绑定之后才能完成后续这个审批,现在为了测试再加个默认值。写一下啊,添加上一个默认池,就是当天我自己的,为了测试方便啊。ID,然后下面我们看啊,里边就上这个ID,这点特别注意啊,然后上之后我们继续来啊,里边我们再加上下一个方法,这个方法叫time ID。这个是什么呢?就是我们刚才啊,在这里边建的这个。
16:01
模板消息里边这个ID值,你把这个值给它复制过来啊,因为这个值我们最多可以建十个,咱目前就建了一个,所以把它我们给它拿过来,也是一个固定一个值,这个我们角这里啊,然后这个之后呢,我们再来看啊。这里边还可以再加个方法叫URL。这个方法什么意思呢?强调啊,我这里把注释写的详细点啊,这个to user就是你要给谁发送,那就写谁的open ID。然后这个是你创建那个模板那个信息的那个ID址,另外第三个叫URL,这个什么意思呢?比如我现在啊,就我发消息,我击这个消息那个地,如现在发消息要跳转到什么地方去,就写上他的这个地址,那我在里边写一下啊,这个地址呢,应该是加上我们的这个域名啊,咱看一下我们这个域名啊。
17:05
我们的域名应该是那个微信公众号中,这个地址应该就是。啊,应该是那个一的这个地址啊,我找一下。应该在我们的这个啊,就这个地址。我把这个拿过来啊,咱们放到这位中来,通过它我们来显示当前的那个具体信息,后面加上一个井号售啊,然后加上这个值。包括你的流程ID,包括你的任务ID啊,这个直接复制过来啊。加上它咱们现在加的是这么一个地址啊,应该有一个斜杠啊杠。这个我们就加上啊,然后加上之后最后呢,我们来调用最终一个方法,这个方法就build,那就完成了最终的构建,包括里面这个基本参数的设置,设置之后它会返一个对象,这个对象叫做微信LP。
18:00
Time message。所以现在啊,这一部分就完成了,然后完成之后呢,咱们下面做什么呢?像那个模板中设置你的具体的内容。比如大家看到啊,我刚才里有这么几个数第keyword keyword个名,它往里边设置它的这些值,那怎么设置给大家写一下啊。我想这位置设置你模板里边那些就是参数的值,或者那些变量的值,它的做法就是用to method中有个方法叫date,你看这方法是不是叫添加数据,然后在里边上一个叫这个微信tablelet date,因为它在里边怎么做,它是一个基本一个结构啊,这么一个结构,首先啊,第一部分加上你的一个参数名称,咱们看啊,我第一个参数叫什么。
19:11
是不是叫first?我把这个拿过来,然后在后面呢,加上first对应的这个内容啊,我先写个结构,就是咱来完善,把内容调到里面去,这是我们的第一个,然后面依此类推,比如你加上Q1,加上Q,加上Q3,或者都用这种方式依次给他加就可以了,这是我们做的方式啊,然后这里边有很多内容啊。这个内容我从里边拿过来了,大家看我代码中的就是这个位置,我把这个复制过来啊,这位置是什么呢?咱就取到里面那些具体的信息,比如说你现在请假两天啊,包括哪天开始哪天结束等等,咱们从这个process里边得到它这个值,也就是啊从咱们看一下。
20:00
我们到这个位置。你看这里啊。是不是一个Jason数据啊,从这个Jason数据中把它那个给得到,就得到里的这部分,然后这里边我们看到一个名字啊,这名字叫from date是里那个具体的内容啊,通过它来得到,所以这里边我们通过这些把它那值得到,为了咱们最终显示使用。给它变成一个就是八个字符串啊,最终页面中显示出来。这是我们写到的啊,然后写完之后在这里边呢,咱就来设置一下它的具体内容,这个内容可以随便写啊,我这里就随便写一下了啊,首先第一个比如说我们写一下啊,比如现在这个最开始咱就提示说谁提交了这个什么申请,请注意查看啊,写一下啊,谁提交呢?咱用system user点上get这个人他。就是提交了这个申请啊,然后他提交的申请,咱把那个就是模板的名字得到,比如说请假申请或者什么其他申请。
21:09
我们加上这个叫。啊,然后get里边那个名称,就是那个模板名称,比如他提交了这个申请啊,然后这里。角这位置啊,说现在啊。什么审批申请或者说请注意查看啊,请注意。查看啊,这是我们写的这么一个结构啊,但是这个过程中呢,在这里边大家看我课件中啊,你在显示中也能设置它一些相关的格式,比如说颜色等等啊,咱就用它给它写一下啊,加上这个。一些其他的一些格式,比如说颜色啊等等啊,或者加粗啊等等这些格式。它也能做设置,这就是第一部分啊,然后第二部分就是里边那个KEYWORD1KEYWORD,还有那个content等等啊,这些都是像里边用同样的方式进行设置,也就是咱们这里边写的这个代码,我把它拿过来啊,然后咱们快速看一下啊。
22:13
然后大家看第二个呢,我试试叫KEYWORD1里边加上这个就是流程的编号,第三个叫keyd,加上它那个就是提交的时间,然后第四个加上它的具体内容,这个内容呢,就是刚才我写的这个B内容,咱把它直接给他to放过来啊,所以现在这些参数值我们就完成设置。然后参数值完成设置之后呢,我们最后就调用方法进行最终的这个就是消息的发送,那最后咱调一下啊,调这个叫微信lp service,但之前有那个工具类这里边啊,应该没有入,我们给它注入进来。到这里啊。奥特曼。
23:01
加上啊,然后里边是这个。微信MP。这个service。这个啊。把它注进来,然后注之后我们最后调用这个工具中的方法来进行实现,这个方法很简单啊,就叫get to message service里边这个方法叫send to,把咱们刚才设置好参数这个对象给它直接传进去,这样的话就完成了最终的发送。发送之后啊,里边有一个异常,咱给它加上一个拆开处理一下,所以现在就完成了啊,它有一个返回值,咱把返回值为了一会儿测试方便,咱给它做一个输出。这里边啊,输出一下MSG。所以现在啊,我们就把这个消息发送这个方法就完成了,这是我们写到的啊,特别注意这个地方,但是为了测试啊,因为咱们没有那么多微信,我为了测试,我就给我当前自己发一下这个open ID啊,就是发这open ID给我当前自己发这个消息,这个就完成了啊,是咱们的一个基本过程。
24:12
然后大家看啊,我课件里边呢,就是还写了一个,比如现在我审批完成之后也需要发消息,但是这个写的过程跟刚才应该基本上是一样的,类似的过程,这我就不再写了,咱就以它为例啊,各位可以参考我这个代码把这个完成,因为过程都一样的,你自己练习的时候写一个就可以了,因为他们都是一样的,只是为了满足不同的业务需求,一个是发起这个就是申请,一个是审批完成之后啊,但是他们都是为了发送这个消息。这个啊,咱就写到这里,然后这个之后呢,咱们下面啊来做一个调用,来调用一下,看一下里面的效果,那怎么调用,咱们来到我们这个方法中啊,在里边启动流程位置的这个地方。这里咱们进行推送消息,那咱们看一下啊,首先啊,把我刚才那个咱给它注入进来。
25:09
我做个注入啊。Private。Service,然后在里边呢,我们加上我们刚才那个方法进行消息这个推送啊,找到啊,呃,在就是这个位置啊,启动流程里边。应该在我们的这里啊,这个位置,然后调用service里边,我刚才这个方法就是它啊在里边传参数,这个参数呢,这里边应该都有啊,咱就直接给他传一下就可以了,首先第一个参数啊,我们加这个叫。Persist get ID第二个加上什么呢?就是你要给谁发送,加上那个要给谁发送那个人的那个ID,而咱目前大家看啊,我现在这段代码中,这个用户是不是就是下一个审批人,就是你要给他发,比如现在我张三提交要下一个人是李四进行审批,那李四是不是就下一个审批人,咱要给李四发送,所以我现在就加上李四的这个ID。
26:14
我们加上里面那个就是user,点上getd啊,然后第三个加上里面那个就是任务的ID,我们加上task.get ID,所以现在啊,这部分我们就传进去了,这个就完成了啊,完成之后咱们把服务器重启一下,然后最后我来提交一个就是这个。申请最终我们完成这个测试啊,那咱等他启动起来,咱们最终测试一下这个效果。啊,大家看啊,现在已经启动了,那咱们现在开始做这个测试,一会儿咱们看消息啊,在我这公众号里边应该能看到给我推送过来的消息,一会儿咱们进行查看,因为我现在是给自己发送,那咱们最终试一下啊,现在我点击。
27:02
进入到这个列表中,然后在里边我现在啊点击审批中心来到我们这个界面,在界面中点击这个请假进行测试,咱们随便填一些信息,比如说我现在啊请假这个三天请假日期是二月。18号,比如到这个20号三天请假原因啊,比如咱们是这个。什么生病啊这个啊,然后这个之后下面我点提交注意啊,我点提交之后是不是启用这个流程,启动流程之后,这个过程中,我们要得到他的下一个审批人,给他就会发消息,所以我现在啊点提交。点提交之后,大家看我这里边是不是提示我说李四他发起这个申请啊,已经申请了,然后这个时候呢,我们看一下我们的公众号里边大家看啊,这就是刚才给我发过来这个消息,他已经成功进行消息发送,你看里边有那种叫待处理审批,说李斯总经理提交了申请啊,最新测试,然后请注意查看,就是说我刚才这个内容啊,包括里边有信息在这里边,我点击详情能看到里边这个详细信息。
28:13
这个啊,是咱们看到这个基本特点啊。所以说以上啊,咱们就完成这个消息的推送,通过微信公众号进行实现,在这过程中啊,我们这里边其实是有两个需求,我是写了第一个,各位参考我写的可以把第二个完成,因为过程都是一样的。这个啊咱们就完成了,也就说咱们到这里啊,把这个微信公众号在我们项目中就完成整合微信公众号在我们项目中,咱们主要做了三个部分,第一个部分就是自定义公众号菜单,也就是咱们看到的这个地方。然后第二个那就是里边这个微信授权登录啊,咱们让微信和我本地用户进行关联,通过手机号进行关联,关联之后在数据库里边会保存咱们那个叫open ID值,咱们刚才应该都看到了,就是这个值,然后之后第三个功能,那就是消息推送,我们审批通过之后,或者说你发送请求之后,这个时候给你的下一个审批人推送消息,通知他需要进行这个审批。
29:22
所以以上啊就是微信公众号的整合,这个咱们就写到这里。
我来说两句