00:00
下面呢,咱们来搭建一下菜单管理系统的后端的模块,把模块做搭建,然后在里边完成公众号菜单管理的切关接口,那下面我们来搭建一下。首先第一部分我们在项目中的瑞下边建一个新的模块,作为我们的公众号的循环的操作,那咱们做个创建,然后模块我起个名字service wecht,把这个进行创建,这是我们的第一步操作。创建一个新的模块,然后把模块创建之后,我们的第二部分在模块中引入依赖。这依赖我强调啊。是一会儿我们做这个同步菜单,使用到这个依赖,那咱们把依赖复制到这个service v叉的这个模块中去,因为它指这块中用到微信操作,所以在里边把依赖引入,这是第二步,第三步呢,咱们通过代码生成器把这个menu的相关代码给它生出来,那下面我来改一下我这个代码。
01:10
我们来操作一下啊。首先我现在来到这个service vod里边找到代码生成器,这个类就这个类,然后把类打开改一下,第一步把项目名称改成当前的项模块service wecht,然后第二个改一下数据库的名字叫硅谷课堂WeChat。这个改一下,注意不要写错,然后第三个把它的包我们改一下。咱们往下来看包WeChat,最后把对应的表改成menu这个表的名称。所以现在这些都改完了,改完之后我们执行把代码最终生出来,生成菜单相关的ctrl service map部分等它出来。
02:06
然后咱们看啊,目前这个代码是已经生成出来了,咱们跟之前一样,把实体类换成model中统一的是一类快速改价。这个位置改成model中这个menu就是菜单这个实体类。其他部分同样都给它改下。咱们快速给他盖完。这是瑞事件类,然后这个是。Micro。所以现在这些都完成了,完成之后呢,下面我们在里边把它的启动类,包括配置文件创建出来,咱们先创建启动类,我写到这里。Service把相关的这些注解给它都复制过来。之前都写过,我就直接复制一下啊,里面这个内容包括S注册。
03:04
远程调用,包括map扫描,以这个comment开包扫描规则,还有最后的那方法,这些都给它复制,注意这些路径不要写错,然后下面我在result里边把配置文件最后创建。Application。内容从里边拿过来。这一部分我做个复制。然后咱们看一下啊,之前的模块有8201020304,目前是用到8305,就8301020304,目前是零五,这是模块名字,这是数据库下面有它的下部分。啊,包括那的地址,然后各位看啊,在里边还一个地方是后面咱要用到那个公众号的部分,有他的ID和密钥,咱先放到这里,后面用的时候我们来具体说,所以现在把这个项目的基本环境完成搭建,搭建之后呢,最后我们要通过网关访问,所以我现在在网关的配置文件中,把当前这个模块的规则在里边,就是路由规则在里面配置出来。
04:14
咱们写下啊。这里边到了第四个部分,Whichchart加上这个名字。所以以上就是咱们一个最基本的环境的搭建,咱们就完成了,完成之后呢,下面咱就来在里边的CTRL里边完成菜单的相关的接口开发,那我在里边写下啊,先把这个路径跟我课件中保持一致,然后里边。做一个注入啊,就是在CTRL里边注入那个service。注意一下。Private menu service。注入进来,注入之后里边来编写它的方法,这个方法做的就是最基本的增删改查方法,比较复杂的是两个方法,一个是菜单的列表方法,因为咱要做一些数据的封装,另外就是菜单的同步,就是同步到微信公众号中,其他方法都比较简单,那我就把其他这个简单的方法咱们复制一下,然后复杂的两方法咱们同龄去写一遍。
05:27
这些我先复制过来,咱们一个一个看一下啊,第一个方法就是根据ID进行查询,我们得到ID值,然后根据ID值调方法得到里面这个这个对象,这是咱们的第一个方法。根据ID查询,然后第二个是新增,或者说叫添加,添加的话咱们传入me对象,然后调方法进行添加,第三个叫修改,同样调after白D修改,下一个是删除,调用白D,最后一个是批量删除,咱们传入一个历次集合,然后调方法,最终删掉。以上是咱们完成了里边最基本的几个增删改善方法,这各位应该能快速做到,我这里就直接复制了啊。
06:17
然后这个之后呢,咱们下面还有这么几个方法,那我写一下啊。咱们看下面还有什么方法,首先第一个,因为咱们有一个就是这个菜单的列表方法,列表方法中咱刚才提到我们有一级菜单,另外还有这个叫二级菜单,而这里边一级和二级我们要做一个列表显示,也就是做成这么一个效果。大家看啊,是不是一个树形结构,所以咱把树形结构还是按照之前我们做过一种类似的方式做过封装,然后后面做个显示,那这里边我把方法写一下啊,比如咱们后面会获取到。咱们所有的菜单按照这个就是一级和二级这个菜单进行数据的封装,这个过程咱之前应该写过一个类似的,当时咱们在什么地方写过呢?大家注意啊,当然咱们在这个模块中,就这个课程分类管理中是不是有一级和二级分类,跟他的封装应该说有点类似,所以咱后面用这个做到。
07:27
然后第二部分呢,因为这里边我们有所有的一级二级,所以咱们在单独写方法,为了后面操作方便,就专门来获取里边的所有的一级菜单。把这个得到,所以咱下面就来写上这么两个方法,这咱们一会儿进行实现。下面呢,我们先写第一个啊,就是获取所有的一级菜单,把这个方法写一下,在里边我加上一个get提交方式。然后在里边我们给它起个名字,这个名字我就跟课件中保持一致的,为了后面前段方便,咱就叫find one menu info,获取所有的一级菜单,在里边加上方法public。
08:13
加上名字,我这个名字还是叫这个名字,然后在里边我们调用service里边的方法,得到所有的一级菜单,咱们写个方法,这个方法我就叫做。Find啊,为了区分我就要find的menu info,咱们把所有的一级菜单得到,然后得到之后呢,因为所有一菜单,它可能有一个,也可能有多个,咱们返回的肯定是一个。历次集合,历次集合的泛型就加上这个menu,现在这个方法完成,完成之后最后我们加上一个re OK。返回这个list,这是第一部分,然后下一个就是按照一级和二级菜单进行封装。
09:04
这个封装呢,咱之前写过类似这种结构,但这结构我们再写一下,比如它后面它还是变成这种结构。就是现在我们最终是一个数组形式,然后在里边呢,有你的所有的一级菜单,还有所有的这个二级菜单,比如现在啊,我这里边我就写一个简单格式啊,这里边我们是这个。一级菜单。然后在一菜单里边,比如说我加上一个叫秋准。Children。冒号。中国号。然后在这个中号里边加上它里面那个所有的二级菜单,二级菜单呢,可能是一个,也可能是多个,再用这种结构我们做一个封装。所以这个是我们最终要变成的这么一个数据格式,一会儿咱们来封装成这种格式,最终返回在页面中进行显示,这是咱们一个说明,最后下面在里边创建这个方法,那我写个名字,我就叫这个get mapping,然后里边加上路径,这个路径跟课件中保持一致,Find menu info。
10:17
把这个拿过来,下面加上方法,Public find info,最终调用service里边的方法我们进行实现。然后service里边我还是写这个方法,最终返回的是一个list集合,就咱刚才看到了啊,我们最终返回的是一个Jason的数组格式,也就是一个list集合,然后list集合里边呢,因为它会包含你的一级和二级菜单,我这里边呢,专门写了一个VO类,我们进行封装。那我找到啊,就这个will。咱们看一下这个类啊。大家看啊。你看这里边有你的菜单,这些部分理解为是我们的异义菜单,一个意义菜单中是不可能有很多的二级菜单,所以你看我这么做,加了一个集合代表里边的二级菜单,因为他们菜单中不管一级二级都是ID名称这些值,所以我在里边又写了一个集合代表二级菜单,咱用这个menu VO经实现一级菜单中包含多个二级菜单。
11:26
这个咱之前也说过啊,各位应该记得这个注解什么意思啊。它是不是表示我表里边没有这个字段,但是我们数据中需要,所以加上一个一个Z等于false,所以我们目前就返回这么一个结构,最终我加上一个退。返回历次集合,现在把这个CTRL部分完成,完成之后呢,下面我在里边把这两个方法咱们先进行创建,这是第一个方法,返回所有菜单,按照一级和二级菜单我们进行封装,我把方法先创建出来,一会儿实现。
12:06
另外第二个方法,这个方法获取所有的一级菜单。在service里边方法创建。创建之后实现类中最终实现这个方法获取所有的意义菜单,所以目前这个接口部分,咱就最终剩下两个方法,一个获取所有一级菜单,一个按照一级二级菜单结构进行封装,那咱们啊先把这所有一菜单也得到,因为这个很简单。咱们看一下我的数据里边,这数据应该很容易看到啊,大家看这怎么得到。你注意看啊,Parent只等于零,那这里边有直播课程,个人这三个是不是就是一菜单,所以咱要查的话,就查ID等于零的这个数据,它是不是就是所有的一菜单这么来做,那咱们写下啊。
13:03
加上一个叫query rapper,加上这个叫menu。起个名字等于一个,然后在里边设置的条件上,这个叫。ID。然后它的值等于这个零,因为这是固定的,零就代表第一层,也就是咱说的一级菜单最终调方法。Base map中的select list传入rapper,返回list集合。咱们把list集合最终做一个对。所以现在啊,我们的这个接口方法就完成了,这各位能快速写出来,另外有一个小问题,别犯这个错误啊,就是这些字段名字不要写错,咱们写的时候最好从数据库里边复制一下,防止这些名字写错。
14:01
所以以上这个就完成了,完成之后咱们的下一个就是获取所有菜单,按照一级和二级菜单结构进行封装,最终咱要变成这个样子,那咱一会儿给他来完成,目前把里边的主要接口,那基本上就都做到了。
我来说两句