项目一众筹网06_02
项目一众筹网06_02
文章目录
- 项目一众筹网06_02
- 09-Admin分配Role-执行分配-handler方法(执行角色分配的后端代码开始)
- 隐藏域的东西,不用传,点击submit(提交)的时候就会传过去,如下图
- 允许参数是空值
- 10-Admin分配Role-执行分配-Service方法
- ==重复问题==
- 11-Admin分配Role-执行分配-SQL语句
- mybatis删除和插入
- ==注意 mysql的一些非常重要的知识==
- 12-Admin分配Role-执行分配-修正Bug
- 提交的 只是我们选中的解决
- 13-Role分配Auth-目标和思路(下一篇)
09-Admin分配Role-执行分配-handler方法(执行角色分配的后端代码开始)
前面我们已经把前端的准备工作做好了,现在开始写后端,点击保存之后的后端要处理什么逻辑
前面我们已经把前端的准备工作做好了,现在开始写后端,点击保存之后的后端要处理什么逻辑
隐藏域的东西,不用传,点击submit(提交)的时候就会传过去,如下图
注意select 的option集就要用 集合接收,比如 上图的List roleIdList先把方法名和 参数、返回的页面参考同步模块——用户管理的handler,具体的方法体内容我们再看
情况考虑
想一想:这种情况是不合理的吗?
其实合理的
所以我们要允许它没有值
允许参数是空值
执行代码的时候就要小心一点了,roleIdList有可能是null 值
这里跟我们之前角色管理的分页有点像,关键词分页功能的时候,关键词也不是必须的
10-Admin分配Role-执行分配-Service方法
重复问题
handler里面写完了之后,下面就是service层,接口层、这些都很简单,
service实现类要具体怎么写呢,这个是值得我们思考的
总不可能一直重复提交吧,重复提交的话,显然是不合理的
怎么才能不浪费性能,合理地实现这个功能这是我们要考虑的问题
我们仔细想一想
反正要保存的是下面那个新数据的状态,以前我的我们还需要管吗?根本不需要管了,直接全部删掉就行了
然后就是写对应的sql 了
11-Admin分配Role-执行分配-SQL语句
删除旧数据
插入新关系的逻辑:
仔细思考其实是一个循环
sql有点看不清,看下面详细一些
或者换一下格式,顺便整理一下思路
一定要注意接口处不要写错了,我废了一天找bug,亏大了,所以我们找bug的时候也要眼界宽一点,多想一想再动手
接口,实现类
特别注意,如下
这个接口千万别写错,否则xml里面很难找出错误
mybatis删除和插入
注意 mysql的一些非常重要的知识
1、这个传入参数 写不写都可以,至少这里写不写都是可以的
2、必备的一些知识
mybatis中foreach collection的用法
12-Admin分配Role-执行分配-修正Bug
测试一下,基本上是没有什么问题了
那么什么情况下会触发bug呢
我们看一下
bug:提交的只是选中的,如上图的 10、11、12
点击保存后 按道理数据库里面应该有6条数据我们调试前端代码发现:确实是只提交了3条数据
经过我们细致的,测试,我们会发现,其实原因在于提交的 只是我们选中的
找到原因就好处理了
本身这个设定是没有问题,只是我们的需求比较特殊
提交的 只是我们选中的解决
思路其实很简单,也很讨巧,就是我们点击保存的时候,
在保存的单击响应函数里面,做一个处理,全部选中右边的option
13-Role分配Auth-目标和思路(下一篇)
14-Role分配Auth-Auth建表
15-Role分配Auth-代码-打开模态框-空模态框
16-Role分配Auth-代码-打开模态框-显示树-发请求
17-Role分配Auth-代码-打开模态框-显示树-发请求[改进]
18-Role分配Auth-代码-打开模态框-显示树-查询Auth并调整树显示
19-Role分配Auth-代码-打开模态框-显示树-展开并显示checkbox
20-Role分配Auth-代码-勾选已分配-后端-查询数据
21-Role分配Auth-代码-勾选已分配-前端-发请求拿到数据
22-Role分配Auth-代码-勾选已分配-前端-勾选已分配
23-Role分配Auth-代码-执行分配-前端-获取已经勾选的authId
24-Role分配Auth-代码-执行分配-前端-发送请求执行分配
25-Role分配Auth-代码-执行分配-后端-handler和service代码
26-Role分配Auth-代码-执行分配-后端-SQL
27-Role分配Auth-代码-执行分配-后端-修复Bug
28-Role分配Auth-小结
29-JavaScript代码在浏览器上Debug调试