0
点赞
收藏
分享

微信扫一扫

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据


项目一众筹网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方法(执行角色分配的后端代码开始)

前面我们已经把前端的准备工作做好了,现在开始写后端,点击保存之后的后端要处理什么逻辑

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_项目一


前面我们已经把前端的准备工作做好了,现在开始写后端,点击保存之后的后端要处理什么逻辑

隐藏域的东西,不用传,点击submit(提交)的时候就会传过去,如下图

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_02


注意select 的option集就要用 集合接收,比如 上图的List roleIdList先把方法名和 参数、返回的页面参考同步模块——用户管理的handler,具体的方法体内容我们再看

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_03


项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_04


情况考虑

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_05


想一想:这种情况是不合理的吗?

其实合理的

所以我们要允许它没有值

允许参数是空值

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_06


项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_项目一_07


执行代码的时候就要小心一点了,roleIdList有可能是null 值

这里跟我们之前角色管理的分页有点像,关键词分页功能的时候,关键词也不是必须的

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_08

10-Admin分配Role-执行分配-Service方法

重复问题

handler里面写完了之后,下面就是service层,接口层、这些都很简单,

service实现类要具体怎么写呢,这个是值得我们思考的

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_09


总不可能一直重复提交吧,重复提交的话,显然是不合理的

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_10


怎么才能不浪费性能,合理地实现这个功能这是我们要考虑的问题

我们仔细想一想

反正要保存的是下面那个新数据的状态,以前我的我们还需要管吗?根本不需要管了,直接全部删掉就行了

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_11


项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_12


然后就是写对应的sql 了

11-Admin分配Role-执行分配-SQL语句

删除旧数据

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_13


项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_javascript_14


插入新关系的逻辑:

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_15


仔细思考其实是一个循环

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_16

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_17


sql有点看不清,看下面详细一些

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_18


或者换一下格式,顺便整理一下思路

一定要注意接口处不要写错了,我废了一天找bug,亏大了,所以我们找bug的时候也要眼界宽一点,多想一想再动手

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_19

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_20


接口,实现类

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_21


特别注意,如下

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_项目一_22


这个接口千万别写错,否则xml里面很难找出错误

mybatis删除和插入

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_23

注意 mysql的一些非常重要的知识

1、这个传入参数 写不写都可以,至少这里写不写都是可以的

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_javascript_24


2、必备的一些知识

mybatis中foreach collection的用法

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_java_25

12-Admin分配Role-执行分配-修正Bug

测试一下,基本上是没有什么问题了

那么什么情况下会触发bug呢

我们看一下

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_26


bug:提交的只是选中的,如上图的 10、11、12

点击保存后 按道理数据库里面应该有6条数据我们调试前端代码发现:确实是只提交了3条数据

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_模态框_27


经过我们细致的,测试,我们会发现,其实原因在于提交的 只是我们选中的

找到原因就好处理了

本身这个设定是没有问题,只是我们的需求比较特殊

提交的 只是我们选中的解决

思路其实很简单,也很讨巧,就是我们点击保存的时候,

在保存的单击响应函数里面,做一个处理,全部选中右边的option

项目一众筹网06_02给用户分配角色、执行用户角色的分配、提交的 只是我们选中的解决、隐藏域的东西,不用传,点击submit的时候就会传过去、允许参数是空值、mybatis删除和插入数据_前端_28

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调试


举报

相关推荐

0 条评论