00:00
咱们就是最后一个接口是什么呢?给角色分配权限,那这功能得要做成什么效果,给大家来说一下啊,看一下我刚才曾经画过一张图,图里边其实做了一个说明,把这图我先打开,然后咱说那个。就是权限管理这个需求部分啊,这图打开,然后大家看这位置,你注意啊,咱现在做什么,其实做的就是啊,像这张表大要注意,就是你的菜单角色关于表上加出去,比如我现在给角色分析菜单,按照我这个流程大家看啊,比如说现在幺幺管理员有讲师和课程,那咱加的数据是不是这个数据,我这个测试人员有课程,加的是不是这个数据,所以咱们向表里边就是加这个数据,就是做这个事情,也是操作角色菜单关系表。当然各位看它数据的特点啊,你注意啊,角色跟菜单关系,角色值是不是只有一个值,比如这个角色都是幺幺,但是菜单是不是有不同的菜单值,所以咱们要做这个添加,那这个接口怎么写,看我这里边的写法啊,首先第一个你在里边啊,有两个参数,我是直接这么传的,第一个参数就是你的角色ID,第二个参数是什么?是我们的菜单ID,因为咱说的角色就是一个,但是菜单是有多个,所以多个ID值,你看我写了一个什么。
01:23
是不是一个数组形式,我们现在正在传,然后传完之后,在这个方法中,咱可以把这个菜单角色最终加到咱这个角色菜单的关系表中啊,就来做这个事情,那咱们把这个方法我们最终来写一下,最终的表中会多个数据。咱来实现啊,然后这个方法为了区分,我也给它加一个符号,咱重新写一个啊,我就叫这个名字叫做鼓励。这个创建之后,在里边先把方法创建。给角色分配这个权限,或者说分配菜单,这个写完之后来到我们的service中,在里边把这方法我们最终做个实践啊,就是里边的。
02:08
这个方法。然后咱们写到下边的定位置。就这里我也是加一个注释啊。做法就是。给这个角色分配一个。菜单啊,咱是这个方法,然后这个方法怎么来做,下面我来详细给大家写一下这个方法啊,那咱看怎么来写啊。各位注意啊,就是现在在方法中有两个参数,第一个叫肉ID,肉ID是什么呢?就是咱们那个角色ID。啊,它就是角色ID,然后第二个就这个叫permission ID,这是我们什么,就是那个菜单ID,但是菜单ID是不是一个数组的一个形式,那咱要怎么做呢?各位注意啊,比如说我现在。我的决赛ID是这个啊,咱看这个需求中决赛ID是幺幺,菜单是一和2C单,做法就是再加数据中幺幺是不是加两条,然后每个幺幺对应是不是一个菜单ID,最终咱应该是这种效果,所以咱们按照它把这个我们做个添加,咱们看这个应该怎么去做啊,那咱来实验一下啊。
03:20
给各位来写一下啊,首先这个做法其实有很多的这种做法,我就写一终比较常见做法,因为咱最终肯定是做添加嘛,那添加怎么做呢?在这里边啊,我们有一个就是base map中有一个方法是做这添加,但是这个方法。我写一下啊base map里边的这个叫。应该叫这个,呃,有一个方法啊,就是添加多的方法,那咱们啊先把上面写一下啊,我找这方法啊,应该叫。Insert。呃,应该记得有一个叫这个。啊,那我这么来调啊。它里边应该有一个叫批量添加方法啊,我们找那个有一个批量的方法,它那个怎么做到的,然后加一个这个叫。
04:08
This里边有个方法应该有。这个方法啊,就是它这找到了啊,叫save be,你看这个方法是不是做一个叫批量添加,然后里边传的是什么,是不是一个粒子集合啊,所以咱用它最终在做操作,那怎么做,因为它里边要传个历次集合,所以大家的做法就是大家注意啊。我这个位置中是不是有一个字符串,还有一个数组,大家做法就是把这数组咱们可以做个遍历,然后每次遍历之后拿这个值和它做一个,就是这么一个封装,最终咱创建集合,然后做添加,因为咱们效果就是你看啊在里边。还有这张图上。它每部分是不是一条记录,那咱可以把这个健康集合,然后这是集合中的第一个部分,这是集合中的第二部分,最终把这集合用咱刚才看那方法叫C半指做个添加就可以了啊,那咱们来给他写一下啊,看看怎么做啊,我写下这过程第一步咱们就先啊创建一个。
05:10
历史集合用于封装,你最终添加数据,那我们写一个list,因为这个要做的是角色和菜单的那个操作,所以咱找另外一个试体类,因为是角色菜单嘛,是这个我们叫这个肉permission啊,加他,然后这里边我给它起个名字,比如叫这个肉permission。这个list等于new上这么一个和re list建个集合,然后接完集合之后,下面咱们把这个就是所有菜单的数组,就是这个permission ID给它做一个便利。啊,也是咱们的第二部分便利所有菜单那个数组,那咱写一个。增强负循环,把这个遍历一下,因为是数组形式嘛,啊在里边有就写一个叫这个,呃。
06:02
Permission啊,然后它里边因为是ID嘛,就来一个词缀,我就叫这个。Permission ID。然后它的值就是这个值,呃,这两个重复了啊,然后我把这个名字给它特别换一个啊,多个S。这个啊,是咱们写的一个值啊,我就叫prid了啊,然后这个做到之后呢,咱下面就把这个编译之后的值都给它,最终封装到这里面去就可以了,但是这里边呢,有个对象,就咱下面呢,先给它创建这么一个。对象,然后往里面封装啊,那我来创建啊,就要这个肉permission等于new上这么一个对象,把数据给它放进去就可以了,我就写一下啊,这叫肉。Permission点上咱看这个方法啊,第一个叫肉ID,那咱传的就是这个肉ID,然后第二个值是我们那个permission菜单ID,那我们把它也放进去,就这个值,但是这个叫tr ID。
07:08
所以大家注意啊,当我与学员遍利这对象中每次有两个值,一个是角色ID,一个是你变利之后的菜单ID,然后都做完之后,咱把这对象就封装到我们那个例子集合里面去,也就是这位置肉permission例子里边放入咱们刚才这个对象。就是肉permission,所以这么做之后呢,在咱这个集合中应该有它的所有的这个数据啊,里面都包含了,包含你里边的这个角色ID和他ID,然后每部分都是这个对象,然后这些做到之后,最后咱就要方法把它就加到数据库可以了啊,就是添加到我们那个角色。菜单等。关系表中就可以了啊,那怎么加。咱注意啊。因为我现在啊,是在我们的这个service是permission,而咱要加那个角色关系在这里边肯定做不到,所以咱需要换一个service,也就是用里边的。
08:08
这个思维。叫肉permission service,那咱用它的话,需要把这个在里边是不是给它注入进来,然后咱可以使用啊,就是用到这个肉permission service啊,我已经提前注入过了,那我们就直接调这个方法啊,最终实验就可以了,这些方法咱刚才看过了,叫save。Be里边传这个肉,Permission,绿色。这样的话啊,这方法咱就完成了,主要就是这个代码啊,咱们就最终做到了啊。然后这个给大家截过来啊,我再说一遍,然后最终我们来做一个最终的这个测试啊。到这里边啊,咱刚才做的就是。嗯。就是做给这个角色。分配菜单啊,这么一个功能啊。可能就是这个代码,然后这个最终给大家带来分析一遍啊,然后咱最后来测试一下它这个最终的效果可能是什么样的啊。
09:09
因为咱们现在要做的功能就是给我这个角色分配这么几个菜单,然后它的过程就是咱们在刚才讲叙述中也说到了,他的做法就是呢你这个角色。只有一个角色,然后一个角色是不是有多个菜单,所以咱最终效果应该是这个样子。比如说我这幺幺,那它有一的这个菜单,还有二的这个菜单,那咱在操作中该怎么实现呢?我们的做法就是在里边先建个历次集合用于封装,然后在里边把你的菜单这ID做个便利得到每个菜单都给它放到对象中去,然后把每个对象放到机构中去,每个对象理解为就是咱说的每条记录就是一个对象,就是这个肉permission。然后封装之后,在例机构中有咱所有数据,我最终用这个方法加到数据库,这些方法咱要换一个service,因为你加的是角色和菜单关系,咱用的是肉permission service,所以这样的话把这个我们就最终完成了添加角色分为菜单。
10:15
这个啊,咱写这个方法啊,然后写完之后,最后我把这个给大家测试一下啊。服务器我们先重启,最终试一下这个效果,看它是什么样的啊。最终做个测试啊。我们先等它重新起来啊。然后重启之后,咱们还是用SWG做测试,它里边需要两个参数,第一个角色ID,第二个菜单ID,但是菜单ID是一个数组形式啊,那咱们来来到swa里边。测试一下啊,找一下这个方法。方法应该就是里边的,呃,应该是。这个方法啊,就是它角色分析菜单,那咱们现在到里边找一些数据啊,就是最终效果在你表中会多出几条记录,咱目前为空我都删掉了,那比如现在我先找个角色,假如说角色我就找这个ID啊,这一个角色就是他。
11:14
然后把决赛ID咱们分过来,就是这个1457,下面找菜单,菜单呢,咱就多找几个菜单,为了更明显啊。我们找这个菜单,比如说菜单中我找第一个找这个。或者先找这个一啊,单位的区分,第一个是一个一就全部数据。但是这个各位注意啊,它是一个数组形式,而这值怎么传的,但是它告诉我们怎么传了,里面有一段话,就这段话他告诉咱们了,说什么,你提供什么。就是多行的值,如果解释就是说啊,你写第一个值,如果写个新的值,在下一行进行写,比如写幺幺,再写个幺幺,这么来传值,那第一个值写个一,比如咱们再找一个或找这个值。
12:00
把这个。拿过来啊,这是第二个值,比如说我再找一个,咱找三个啊,第三个值,假如说我找这个,把这三个值拿回来,所以这样的话,咱传了一个角色ID和三个菜单ID,最重要添加,如果效果正确的话,在表中就不应该能想到是不是应该是有三条记录,第一条记录就是这个值和一,第二条记录它和这个值,第三条记录是这个角ID还有它。啊,这是我们要得到效果,然后最后我们来点try out,最终咱们试一下啊。提示咱们成功,然后咱到角色菜单关系表中功,大家看一下啊,我们仔细看啊。角色ID是不是都是1457,然后你的菜单ID是不是咱们刚才加的那个三个菜单ID,这样的话把数据我们就最终加进去了啊,这是我们写的第三个接口,给角色分配菜单,最终就是这个效果。
13:00
啊,包括也是咱们讲这个表中这个结构,如果说你做这个用户分配角色过程跟他一模一样啊,所以咱们以他为例,把这个过程给大家做这个说明。这个啊,我们就完成了啊。
我来说两句