00:00
大家好,刚才呢,咱们完成了菜单的列表显示,把接口按照树形结构返回了要求的数据,那下面呢,我们先用swag做个测试。咱们打开马,我们来测试一下。输入swagger的地址,这各位应该很清楚啊,8800加上doc.htl我们打开。然后这个服务器啊,忘了启动了,咱给他启动一下。启动之后我们用swag做个测试,看一下菜单返回的数据是不是我们要求那种树形结构,等它启动,然后咱们做测试。大家看啊,在里边菜单管理,咱们找到菜单列表,点击调试发送。我们来看一下啊,最终的数据到底对不对。各位看里边啊,首先里边的第一个就是系统管理,在下面有秋准,然后里边有用户管理,用户管理下边还有秋准,有查看,添加,修改、删除等,所以大家看这个数据是不是就是返回了咱们要求的这种数据格式,所以咱们现在把菜单的列表接口我们就完成了。
01:18
这是我们完成的菜单的增删改查接口。菜单接口完成之后呢,我们来看一下啊,里面有一个问题,咱们找到这个删除的接口,大家注意我们刚才的代码中,根据ID咱们是不是直接删除,但是删除的时候呢,里边有个问题给大家说明。我们看一下我的这里边,比如说我现在啊,我想删这个叫系统管理,但是你注意系统管理它下边是不是还有子节点啊,那咱们这么来画啊,比如第一层我们叫系统管理,咱做个分析说明一个问题,然后在系统管理下边,比如说我有用户管理。包括咱们还有一个叫角色管理,然后在用户管理下边我们有添加。
02:07
修改、删除等等,在角色管理下边也是有添加修改等那种,比如说现在这是一个结构,那结构中呢,举个例子啊,比如现在我想删除,这个叫用户管理,想做一个删除,但是删除的时候呢,这里边遇到一个问题,什么问题,因为用户管理下边是不是有添加修改,如果说把用户管理删掉,那这两个该怎么做?所以这位置我们来做一个处理,什么处理?首先我们删之前做个判断,判断当前节点下边是否有子节点,如果有的话,那咱就不能删,先把子节点删掉之后才能删,没有的话我们就直接删除,所以咱们最后要把修改方法做一个改造。下面再来改一下,然后怎么改呢?我们在service里边呢,咱们创建一个方法,这个方法我起个名字就叫这个菜单就是menu。
03:05
ID,然后咱们在里边把这方法我们进行创建。删除菜单,最后来到实现类终,咱们最终实现下这个删除菜单方法,那咱们看怎么做,按照我刚才做的分析,首先我们的第一步先查询一下当前我删除的菜单下边是否有这个。子菜单,然下面是否还有菜单,如果有的话,那咱就不能删,没有的话我们再进行删除,那怎么查呢?大家注意啊,很简单,根据这个ID和内的对应关系,是就是谁的per ID跟我当天ID一样,那咱们就表示进行查询,有的话不能删,没有的话进行删除,那我写一下啊,就是根据这个。ID和parent ID的对应关系进行删除,那这里边我来写一下,首先我们加上一个叫query rapper,里边加上system menu。
04:13
然后咱们叫rapper,等于new上一个宽rapper,然后扭上之后在里边设置条件,这个条件就根据它的判ID这个字段我从表里面复制,防止我这里写错。后面加上ID就是谁的ID是。PD他们一样也说这个意思,呃,再说一下啊,这关系各位要弄清楚,比如说我现在我想删系统管理,那咱看系统管理下边有没有子菜单,那怎么看,就看它的ID和攀比是不一样,就是谁的拍D跟它一样,那表示就有,如果说查不到,那就表示没有,给以咱们做这么一个查询,也就说以上是一个条件,条件之后我们最终查询。
05:02
调用map中的方法进行实现。然后怎么查呢?咱们可以用S例,然后返回一个例子集合进行实现,这么做是可以的,但是咱们现在的目的呢,各位注意啊,我们只想看下面有没有子菜单,而并不想得到那个数据,所以咱们可以换一个方法,大家看这个方法,Select count。那大家猜一下啊,这个方法什么意思,是不是查出数量,也就是说这个意思,如果说啊能查到数据,那这count的值是不是应该是大于零的,查不到这个值应该是等于零的,所以咱们这里边做一个判断,我这里写下啊。如果说count值大于零,那就表示它就是有这个子菜单。有的话,那咱不能删,我就直接啊给他抛出一个异常,咱之前写这个异常,就咱之前写过的啊,这里写一下。
06:11
硅谷exception。然后在里边加上状态码,比如说我加一个201,加上它的提示信息,写一下说这个请删除子菜单,然后再来删除啊,或者说请先删除子菜单,所以现在这个部分我们就完成,完成之后往下来做,如果说这个值呢,不是大于零,是等于零,那咱们再调用方法进行删除,咱们最终删一下,调用base map中的方法,Delete ID,传入ID,我们最终把它删掉。以上是咱们改造的这个删除的方法,所以现在我们就完成了。所以到这里呢,咱就把这个菜单里边的几个接口,第一个树形的列表接口,第二个添加,第三个ID查询修改,包括最后一个删,我们就先完成了,各位重点掌握第一个列表,我们是写了一个递归形式进行实现,还有最后一个删除,删除的话咱需要判断,如果他有直接点,那咱就不能删,没有的话我们再进行删除,所以现在增删改查接口我们就完成。
我来说两句