00:00
好,各位同学,我们继续往下来写,刚才咱这过程中的完成了公众号菜单中的一级菜单封装,那下面呢,咱们开始封装里边这个二级菜单,在一级下边有二级菜单,那我们看一下官方的结构,这是一级,或者咱就直接看这段特别明显啊,这个name是菜单是不是一级啊,下面这个叫sub巴顿,是不是二级,各位看啊,二级是个什么结构?是不是还一个数组,所以咱们下面放上这个二级,这种结构之前也做过一个类似的,跟之前差不多很类似,下面咱放上这个二级菜单,我在里边写下啊,小弟位置。然后怎么做,咱们因为是一个数组嘛,所以我再建一个就是Jason的一个数组格式封装我们这个二级的菜单,咱们写下啊,我来做个创建叫Jason。然后起个名字叫兔。
01:02
啊,To,这个menu view啊,咱起个名字啊,跟上面咱尽量保持一致,Me view等于上一个Jason把这个做创建,创建之后下面呢,咱就取到这个二级菜单进行封装,二级菜单是不是在一级的里边有一个那个children里边,所以咱们把它做个便利。我写一下啊。直接加上一个循环,加上这个名字,我们给它起个名字啊,这个名字就是跟这个类似啊,然后用它就改下名,跟这个结构基本一致。用这个咱们快速改一下,然后这个名字我就叫to me view,这个名字后面加上一级里边那个二级菜单,那怎么做到一菜单是不是叫one me view里边有个方法叫get children,这个得到是他那个二级菜单,所以现在把这个得到,然后这个名字,呃,这个名字改一下啊,这是那个部分,那就改成叫这个。
02:06
呃,我看一下二级菜单那个名字啊,它叫做这个这个sub button,咱们现在也让他叫这个名字啊,那个button部分这个啊sub。But。然后这是二级菜单,咱们得到,得到之后同样的方式再来封装二级菜单,那咱们也是建个对象,设置它的名字,但是二级菜单中呢,有它这个类型,比如它是wave加路径,如果不是wave,那就加它的名字,包括它的其值啊,就是以此类推,都是一样的,这个代码我就从课件中复制了啊,你跟上面写法都差不多。咱把这个代码拿回来,也就是这段。给各位复制过来啊,咱们看一下啊,跟前面都一样,你看我的写法啊,建立一个Jason对象,然后里边是它这个type值,也就是二级菜单中的这个值,Type值里边呢,我做了一个判断,如果它的只是wave,表示是你的路径,那我们设它的UI路径,如果不是wave,那是其他值,我们就设它的名称和它的K,最终把这些值就这个VI啊,这个对象都放到SUB8这个数组中去,所以目前咱把这个二级菜单也就完成了,这是咱们写的这么一个结构。
03:25
然后这个选完之后呢,下面咱们进步来做,往里边来放数据,把二级菜单要放到你的一级里面去,加上万.put加上二级菜单的名字,它的名字这个sub拔腿。然后它的值就是刚才咱们写一个sub把腿这样的话就可以了,可以之后最后呢,咱把数据啊,都放到咱那个最终那个数组里面去,那在最终数组应该上面写这个巴吞丽。
04:01
写一下啊,然后点上eight加上咱们到一菜单,因为有很多一菜单,所有一菜单都放到Jason瑞这个数组中去,目前里边有咱们的所有数据,所以现在啊,这个过程就完成了,也就说咱们这个过程做的是什么?就是我们这个结构中八寸里边这个数组部分,把这就做到了,做到之后最后一部分在最外边是不是加一个八寸这个结构把这个咱们最后写就加一个八寸就可以了,这一部分跟刚才一样,就是一个对象。那最后啊,咱们快速写一下。就是封装我们最外层的这个。的部分,那咱们写下啊,我觉得这个代码按照我这个习惯,各位该写了,咱是不是建一个Jason,我就叫这个button。等于一个Jason,然后在里边button里边点上一个put,里边加上它这个结构名字就叫button腿。
05:09
这拿过来,最后把咱上面那个button list进来是不是就可以了,所以现在啊,这步骤就完成了,最终通过这个结构,我们里边那个八寸中有咱们最终需要的结构,这个结构不是我约定的,是微信官方约定的,你要进行公众号菜单同步,那你菜单数据必须变成这个结构他才认识。所以咱们现在都完成了,完成之后在这里边把数据传进来就可以了,那我来传下啊。因为它是一个Jason的这么一个object类型,咱变成字符串,加上一个叫to Jason就可以了,这里边有异常,我们加上一个。Try catch给他补甲,所以以上啊,就完成了我们这个。
06:01
公众号菜单同步这个代码,这个就做到了,然后同步之后呢,其实这个方法有一个返回值,它的返回值呢,就是你那个菜单ID啊,咱给他也反馈一下,其实咱目前应该用不到了啊,只要能正确同步就可以了,我给他也返回一下,然后这里边我给他做个输出,或者咱后面测试方便。就是menu ID。这里边啊,给他输出一下。所以现在啊,通过这段代码,咱们就把这个公众号菜单同步的接口就完成了,里边有异常,咱给他抛出一个自定义常硅谷课堂exception。20001。然后加上一个提示。就是这个公众号菜单同步失败。所以现在啊,这个接口部分我们就最终完成了。也就是说以上呢,咱就完成了公众号菜单同步接口,按照里面这两步先得到菜偷开,然后再去调用接口进行同步,这同步过程中微信里边给他封装一个工具类,咱们直接实现,主要难点就是数据,这个封装过程我分别用到了Jason瑞和Jason object,最终变成它要求格式,最后调方法进行封装。
07:26
所以各位把这个接口能完成,以上是咱完成这个接口,然后这个之后呢,咱们还有最后一个接口,那就是公众号菜单删除接口,可以实现公众号里面菜单的删除,那最后把这个写一下啊,这个就很简单了,我写到这里。公众号菜单的删除,注意啊,这个删除呢,并不是简单就删,咱们数据库里面这个删除,它是把那个微信公众号的菜单都给它删掉,让它里边没有内容就删除公众号菜单这个部分。
08:01
那我来写一下啊,首先我加上一个提交方式,Delete meping,加上一个路径,路径跟课件中保持一致,Menu。这个拿过来,下面加方法,Public result。Remove menu,然后在里边写上它的具体实现,调用threat里面的方法,Remove menu,最终完成实现,然后咱们的一个值。伪造的点OK。这是CTRL部分。CTRL完成之后下面呢,咱们在service里边把这个方法先创建出来。创建之后来到它的实现类中,我们最终进行删除公众号菜单这个事件,为了咱看到明确啊,这个方法我拿到最上面来。我加个注释啊,刚才这个方法是那个同步,我也加个注释。
09:00
同步。公众号菜单。然后这个方法它是。删除。公众号菜单在这方法中还是调用刚才咱们这个微信MP service里边的方法进行实现,在这里边有个方法我们写一下啊,Get service这个方法叫menu delete,这个它就可以把公众号的菜单给它删掉。这里边有异常,咱们用拆开纸捕获一下,最终如有异常,还是抛出一个自定义异常。这个,然后这里啊,公众号菜单删除失败,所以咱们通过以上这些代码就把公众号菜单里面的接口都做到了,包括咱们后台管理系统中的正常改查,还有公众号菜单的同步,以及公众号菜单的删除,所以现在啊,这些接口部分我们就都做到了。
我来说两句