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

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

时间:2023-03-31 22:05:24浏览次数:45  
标签:角色 Admin 代码 用户 Auth Role 执行 分配


项目一众筹网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删除和插入数据_java


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

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

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


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

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


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


情况考虑

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


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

其实合理的

所以我们要允许它没有值

允许参数是空值

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


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


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

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

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

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

重复问题

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

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

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


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

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


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

我们仔细想一想

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

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


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


然后就是写对应的sql 了

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

删除旧数据

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


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


插入新关系的逻辑:

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


仔细思考其实是一个循环

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

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


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

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


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

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

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

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


接口,实现类

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


特别注意,如下

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


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

mybatis删除和插入

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

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

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

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


2、必备的一些知识

mybatis中foreach collection的用法

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

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

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

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

我们看一下

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


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

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

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


标签:角色,Admin,代码,用户,Auth,Role,执行,分配
From: https://blog.51cto.com/u_15800767/6162552

相关文章

  • 项目一众筹网05_03_树的节点的增删改查、radio、代码里面实现模拟用户点击重置、每次
    系列文章目录文章目录系列文章目录18-添加子节点-目标和思路19-添加子节点-前端:打开模态框20-添加子节点-前端:发送Ajax请求==代码里面实现模拟用户点击重置==21-添加子节点-后端==bug发现异步的问题:每次加载数据的时候都要考虑一下异步的问题==22-更新节点-目标和思路23-更新节点......
  • 项目一众筹网04_4_角色维护删除_单条删除和批量删除怎么实现_确认提示,,你真的要删除吗_
    角色维护删除系列文章目录文章目录角色维护删除系列文章目录22-删除-目标和思路(下一篇)单条删除和批量删除怎么实现批量删除和单条删除合成一套思路图23-后端==在这里我们就@RequestBody和@ResponseBody都用到了==24-前端-打开模态框25-前端-执行删除如何判断代码是否是动态生成的前......
  • 靠近用户侧和数据,算网融合实现极致协同
    游弋自如的生产力,在边缘。:::hljs-rightIMMENSE、36氪|作者::: 1846年1月,纽约。 一行长短不一的电码顺着通讯线路飞往130公里开外的费城,这是华尔街的巨头们首次使用电报传输讯息,更具有金钱意味的是,电力通讯的成功,彰显着电力从那一刻起开始成为新的生产力,无数新经济的可......
  • 面向chatgpt运维:根据自定义的日志统计访问用户数
    Craftedby[Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode)You如何使用awk统计访问用户数,我的日志格式如下:{"level":"info","ts":"2023/03/3108:58:03","msg":"/api/v1/goods/project&quo......
  • Flask框架 之Flask-login用户登录
    文档:https://flask-login.readthedocs.io/en/latest/安装:pipinstallflask-login一、效果图  二、示例代码fromflaskimportFlask,render_template,url_for,redirect,flashfromflask_loginimportLoginManager,login_required,UserMixin,login_user,lo......
  • 角色权限树
    https://www.cnblogs.com/interface-/p/17160898.htmlhttps://blog.csdn.net/chengqiuming/article/details/106042148packagecom.wlc.service.impl;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.wlc.mapper.CmsCategoryMapper;im......
  • django admin 设置用户登录时效 cookie和session
    #在settings文件中添加以下配置SESSION_SAVE_EVERY_REQUEST=TrueSESSION_COOKIE_AGE=60*30#30分钟。SESSION_EXPIRE_AT_BROWSER_CLOSE=False会话cookie可以在用户浏览器中保持有效期。True:关闭浏览器,则Cookie失效。 ......
  • Linux 用户和用户组管理
    Linux用户和用户组管理Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助......
  • 第十一章——电子商务网站用户行为分析及服务推荐
    第一部分代码一:python访问数据库importpandasaspdfromsqlalchemyimportcreate_engineengine=create_engine('mysql+pymysql://root:102011@localhost/test?charset=utf8')sql=pd.read_sql('all_gzdata',engine,chunksize=10000)''&#......
  • 单用户模式进centos系统修改root密码
    为虚拟机server重设管理密码1)重启系统,进入recovery恢复模式在读秒时候按e键,找到linux16行,按键盘End末尾添加空格rd.breakconsole=tty0按ctrl+x启动2)......