00:00
呃,左右列表的移动,我们现在已经做完了啊,接下来我们要做的呢,其实就是把数据跟我的页面效果呢融合在一起,什么意思呢?就是说当我们现在从左向右移动我们数据的时候,我们后台呢,其实是要增加我们关系数据的。那么如果从我们的右边向左移动的话,那么等同于把这个关系的数据给它删除,所以啊,我们不管是点哪个按钮,它都应该跟后台的数据呢有交互,所以啊我们现在一块儿来做一下。呃,Dollar点阿贾克斯,然后我们在这里写上type啊好,然后写上我们的post ul Dollar服pass,然后斜杠啊,我们就写上我们是要给用户来进行分配,那所以我们就写上叫执行分配就可以了啊嗯,好,呃,然后呢,我们现在呢,要执行分配的话,那我们的传递数据了,那这个数据我们怎么传呢?是这样数据呢,我们可能选择多个select,那么所以说我们这里呢,可能要给它增加一个name属性,嗯,咱们叫name属性啊,咱们写上咱们就叫角色的ID啊,咱们加个S也是可以的啊嗯。
01:26
然后呢,我们这里呢,写上一个,那咱们叫ID吧,嗯,好嗯,咱们叫做嗯角色的表单,嗯,啊跟角色相关的一个表单嘛,嗯,好,然后呢,是肉ID啊,那这样的话其实就可以了啊嗯,然后呢,我想一想,这个是我们叫做这么写吧,咱们叫分配的那个肉ID吧,啊这个X咱们未分配未分配的肉ID,那我们这个呢,给他来一个啊,来一个咱们叫做内,嗯,然后等于啊,咱们叫做已分配的啊已分配的那个ids啊好了,行,把这个呢名称稍微的给它加一加,加完了以后,那么我们提交的数据,哦对了,我们这里还有啊,因为你给哪一个用户,你添加我们的角色,还需要把这个加上,所以我们写上叫做hidden啊隐藏域这个看不到,但是我们得传这个数据叫。
02:26
UID,然后value啊,咱们写上咱们叫u.ID就可以了啊嗯,好,写完以后,接下来我们在这个位置给它传递数据就行了,所以我们Dollar符,然后我们井号。行,然后我们点给它序列化啊。嗯,这里我们打开文档,我们要给它序列化一下啊,别写错了,写错的话结果就出不来了,嗯。好,我们的序列化打开啊,然后它这个地方应该是表单,再加上这个方法名称,所以给它拿过来啊好写完以后,那么我们这里呢,就嗯,不加那个loading了,咱们直接写上success吧,嗯,好,然后叫function,诶好了,那么接下来有个结果,这个结果我们if如果成功怎么办?如果失败怎么办啊好,然后呢,我们else啊行,放过来,那如果你成功的话啊,来成功,那你成功的话就没有什么可说的了,那我们提示一下叫分配成功吧,啊,咱们叫分配角色数据成功啊来写上咱们叫成功,好,那么你成功的时候,那我就该移动我的数据了,所以把它移动过来啊,或者说我们这样也行啊,在这儿成功了,那我们把它加进来也是可以的,这个不要了,嗯,然后。
03:58
那如果你失败了就别移动了,所以我们这里呢,来放到这边啊,我们写上叫分配角色数据失败啊,咱们一个是成功一个是失败啊。
04:11
好,咱们写上咱们叫失败啊可以,嗯,行,那上面这个位置呢,我们把它变成六就可以了啊,那我们这个呢,其实啊,就是把我们的数据给它分配成功啊,就是这样,那么这样的话呢,给它分配好了之后,后台把关系表的数据一加上,咱们的数据就有了,好那接下来我们再把这个我们原封不动拷贝,拷贝到我们下面来,因为下面它也要做我们的数据库的交互,只不过我们这边的列表应该发生点变化,应该是这样的啊好,然后呢,我们这里呢,就是取消了啊,咱们叫做嗯。嗯,取消分配,那取消分配这么写也行啊,来也行,这么写吧,嗯,那我把上面也改一改啊,咱们上面,诶咱们这么写啊,好,一个是执行分配,一个是取消分配啊就是这样好,写完以后呢,就写上叫取消啊,咱们叫取消分配角色数据成功啊,取消分配决策数据失败,嗯,好了,行了,写完之后我们把后台的两个程序呢,给它补充完整,所以来拷贝,拷贝以后在我们的这个位置,嗯,就在这个位置吧,咱们public,因为是阿贾克斯呀,咱们两个都给它写上啊,好,然后request mapping,然后斜杠啊还有一个public啊,诶不对,咱们这里应该加上,嗯,好,原封不动我们,诶算了,我们把这个呢,先把这个架子先给它写上吧,等于new啊,贾克斯啊。
05:53
好,然后呢,嗯嗯好了啊,然后中间我们加上我们的try catch啊,把架子给它搭起来,嗯,好,EXCEPTION11点。
06:14
然后呢,我们的success啊,我们的,然后这边就是点success啊给个就可以了啊好了啊,写完之后,那我们接下来要做的事情呢,其实就简单了,把数据得到,然后呢和数据库交互就可以了,所以我们拷贝另外一个方法,嗯呃,这个方法呢,就在我们的这个位置了,所以拷贝拷贝之后,那么我们现在给它放到这个地方啊好行了,一个是分配,一个是取消分配啊啊咱们写上其实就是增加关系表数据啊好,然后呢,这个呢,就是我们写上叫删除啊关系表数据好了,那么写完之后,那我再把页面中的数据给它取到啊首先第一个啊,我们写上叫做。
07:14
Build ID啊,还有就是我们的整形数据了啊,那这个时候呢,他是把那个我我我确认一下这个别写错了,嗯,咱们分配的时候是把左边的列表给右边,那么左边列表的名称叫做它,所以拷贝。拷贝到这个位置就可以了啊,同样道理,那我下面的这个地方我们要拷贝到这儿了,嗯,好了啊,然后我们这也不要写错了啊,把这个他们拷贝过来,嗯,好。行了,那我把这个呢给它放到这里了啊嗯,好,那我现在写完了以后,我接下来要做的事情呢,其实就是增加数据了,但是我最好呢,把map准备好一下来,Stream object啊,咱们叫map,嗯,等于new map,然后street object啊好,写完之后,那接下来我们要做的事情呢,是往里面放值啊,点put,然后写上咱们叫user ID,那这个其实就是user ID啊,还有map.put其实你的目的就是为了把角色ID给它放进去,那我这里呢,就把这个集合给他放过来啊。
08:37
好,写完之后,然后呢,我们这里看看这怎么了,阿西map,然后追啊,写错了,嗯,好,然后呢,我就写上了,叫user service点我们要增加关系表的数据,Insert,我们叫row加个S,表示多的意思,把map传进去啊好,那么写完以后,那我们下面其实也基本差不多啊,所以原封不动拷贝一下,拷贝以后往这边来放,它是删除关系表的数据,那这个集合我们拿过来,拿过来以后这边呢,是我们的delete啊好。
09:19
给他写上。好了啊,继续呢,把这个给它完成了,嗯,点击它点击我们create啊,因为差不多很像啊啊,所以我们就一块来写了啊好,点击一下我们create,嗯,行,嗯,写完以后把这块给它实现了。点击呃,点击以后,那我这里呢是door,然后呢,Delete Rose,嗯,好把map给他加上,嗯。嗯,接下来啊,Door点啊insert好,嗯,行,接下来我们点一下啊create创建,创建下完成以后在这我们也点一下啊,我们给它创建,嗯,行,接下来就剩下我们增加对应的蛇口纹了,来增加我们的U的。
10:19
Insert我就放到这儿了啊,咱们的insert诶放到这里,那我们的insert呢,是这样,Into我们的关系表u row,诶,好,然后括号values啊,咱们的values括号逗号括号逗号括号啊好,然后里面其实啊,里面就两个字段,U的ID和那个肉ID啊,那么然后后面的这个我们是需要循环遍历的,因为有多少个我们也不知道,所以呢,我们间括号啊,我们写上for it,然后我们要对那个角色的ID给它循环遍历,然后每一个我们写上叫柔ID啊嗯,写完之后我们我们这里这个括号也是要循环的,所以我们只需要加一个分割符就可以了啊好,里面把括号加上,那么第一个啊,我们就是UID,那么第二个啊,我们写上就是我们的roll ID啊好了。
11:20
啊,写完以后这个咱们就不要了,Ins射的就算是完成了,接下来是我们的delete delete我们放在下面给它增加上啊,咱们的delete好,然后呢,Delete放过来,然后写上delete,嗯,From t下划线。那么我们根据什么来进行我们的删除呢?首先条件你必须是某个用户了,这个你不能写错了,所以user ID,还有and啊,你的角色可能在某一个范围当中,可能是多个呀,所以我们写上叫I,叫咱们叫ID啊,那我们这里也得循环遍利for each啊,然后呢,这里写上我们叫row ids,好,然后每一个写上叫item啊,我们叫roll ID,然后我们open close,诶,好,把这个去掉,诶,好啊,Close,嗯,行了。
12:20
写完之后,那么分割符,我们的分割符写个逗号就可以了啊讲写完之后呢,我现在的这个位置呢,我们就写上啊,咱们就叫做嗯柔IB好了,那我们的增加。删除都有了,我们试一试啊,把服务器呢,给它重新启动一下,观察一下我们的效果,看一看我们左右移动跟数据的关联对不对。好,启动。好了,启动完了,启动完了之后呢,接下来我们要做的就是来演示一下,看一看效果了,那么首先我们要刷新一下啊刷新嗯,刷新以后我们的数据首先我们要展示出来,好,我点击项目经理点一下,然后我点击箭头点。
13:09
诶,大家可以看到已经过来了,那么过来了以后,那我再点,我再点左键头点,诶它取消分配也成功了,那所以啊,我们现在数据库的数据当中应该是没有数据的,好我们再来试一试,我们点击软件工程师点击移动,那这个时候呢,我们刷新诶多增加一条数据,同样我再点,我再取消,那么这时候又取消成功,那说明啊,我们这一块应该是已经完成了,但是我们这个地方完成啊还有一些问题,还有个什么问题呢?就是如果我现在已经分配完了,那我如果再重新分配会出现什么效果呢?什么意思,大家看来我们的index。我现在比方说我又点击张三,那这个时候因为我曾经已经分配过这个数据了,所以在当前的场合下,那么他应该把已经分配的放在我右边的列表当中,大家观察一下点你会发现对吗?
14:09
不对,因为他还是把所有的角色放在了左边,可是我们数据库当中有一条其实已经分配过,他应该放在右边了,所以我们这个数据啊,它并没有回显,这是不对的,那我们在这个时候,我们要把程序稍微的改善一下,也就是说我们在跳转这个页面的时候,并不是把所有的角色都给它显示在左边,我们应该去分开它有左边未分配的,还有右边已分配的,所以啊,我们这里其实是应该在准备两个集合的啊,来,我们写上叫做已经分配的啊,我们叫做嗯,角色加个S吧,等于new r list,然后写上一个肉,那么我们同时还应该有一个未分配的,那已分配的和未分配的,嗯,好,我们叫Rose,等于new list,好给他。
15:09
一个肉就可以了啊,所以啊,也就意味着我们应该有两个列表,一个放已分配,一个放未分配的,那其实你不管是未分配还是已分配,你们两个合在一块儿,其实就是全部的角色,所以啊,我只要判断出来哪些是已分配的,那剩下的不就是未分配的吗?那我怎么知道哪些是已分配,哪些是未分配的呀?这里我们来看一看啊,首先我先把这个给它去掉,我这么来写,嗯。把这个写上啊,咱们叫已分配的,嗯,反过来,好,然后再来拷贝,然后再写上一个我们未分配就可以了啊,好,把它放到这里,嗯,可以了啊,呃,写完以后,接下来我们说了,我们要看一看我们哪些是已分配的,那么剩下的就是未分配的了,那我们的已分配,其实这个简单,因为我们要获取啊,咱们叫关系表的数据,因为你已经分配的其实就在关系表当中,而且我们就要那个角色的ID,我们用户ID都不需要,或者说需要也可以,但是我们主要拿的是角色呀,所以说我就这么写,叫list,我们叫inter,就是我们写上叫做role ids,我们要的就是这个角色的ID,等于我们U,我们的service点叫query I。
16:38
DS,那你根据什么查呀,根据U的ID来查,所以呢,把那个U的ID呀给他,哎,这个U的ID其实就是ID啊啊好了,那我现在写完了以后,我来去查一遍来create之后,那我现在呢,把它实现一下啊,点一下实现它。好点,然后呢实现。
17:02
啊,这里呢,就是door,然后呢,Quary我们的他拷贝。拷贝以后,然后呢,我们这边啊,写上一个ID啊,写上一个ID就可以了啊嗯。嗯,好了啊,写完以后把这个呢,我们点一下create好,然后那我们这里啊,其实就是根据UID来查询入ID,那所以呢,我们比较简单的一个S口文,我们就写上了select,我们叫row ID from,那个中间表叫user条件where user ID,它等于user ID,这么写完以后,我们的数据就能拿到了,你拿到以后,那么只要你分配过的就肯定在它的里面,所以我们就可以这么做了,For循环,这个for循环呢,把我们所有的角色每个都循环一遍,然后我判断if,判断什么呢?如果我们的ids点我们包含你当前的角色的ID,那就说明你已经分配过,所以啊,把这个拿过来我放到这里好,然后第二给它来增加我们的角色。
18:22
那如果else你不在它的集合里面,说明你从来就没有分配过,那么没分配的我就放到它的里面去就可以了啊好,那这个我们就写完了,写完以后页面中的集合的循环变历,这个就不太对了啊,所以我们这就应该给它变一变,我们左边是未分配的,所以把这个我们放过来啊,好,那我们右边可就是已分配的了,所以拷贝把它放在我们右边的列表当中,然后呢,我们改一改啊,把这个去掉就可以了,嗯,好了,那我现在呢,把我们的程序呢又改善了一下,我们来看一看对还是不对。
19:10
好,那我现在呢,把它给启动一下。只要没问题的话,那么我们现在数据就应该可以回线了啊。好,启动完了,那我现在呢,刷新一下,刷新刷新以后大家可以看到在我们当前的数据当中啊呃,我来确认一下,咱们这里后退啊,然后刷新,然后呢,我们点一下点嗯,点一下我看看啊,咱们这里好像是没有过来呀,但是我们12345678,那就说明啊,我们现在这个数据不太对啊,因为呢,我们这边总共是。嗯,九条啊,九条数据,但是有一条确实是在我们这边,大家可以看到是这个二啊,这个二我们是软件工程师,在我们这里有啊,但是好像我看看啊,咱们确认一下。
20:06
嗯,肉ID好像是123456789,但是我们这的数据好像有点不太对啊,呃,那我再来确认一下,我们这看看是不是写的有什么问题啊,咱们来确认一下,嗯。我来确认一下,咱们看一看啊,咱们循环便利的两个集合,嗯。一个是它保存哦,咱们是不是写错了拷贝啊,拷贝以后我的这个地方是不是应该是这个呀,啊好像拷贝错了啊来我们再刷新一下刷新。诶,那这就对了啊,呃,这是我们的程序员啊,那这样的话,我们之前的那个分配就是对的,我刚才把这个拷贝错了啊,那这个完成以后,我们的分配角色的功能就算是做完了。
我来说两句