文章目录
- 展示管理员列表
- CV代码说明
- 通过管理员列表页面,删除管理员
- 管理员权限
- 实际操作
- 步骤如下
- 事务
展示管理员列表
- 删除数据后可以选择本地删除,而无需重新请求服务器获取数据,这样可以不占用网络和服务器资源
但是也存在问题,就是别的用户在访问,你没及时删除,看到的是假的数据,我们寻求高保真,选择重新加载数据
- 提示确认删除,使用ElementUI的messageBox
- 显示管理员列表的SQL,可以根据需要选取一些字段排序
- 关于Result的映射,类的名称和数据库中表字段相同时候,可以不配置,但是为了体现设计代码的意图还是强烈建议加上
- 查询管理员列表时,没有查询密码字段
CV代码说明
- CV代码而不是直接CV文件,因为直接CV文件可能IDEA没有第一时间识别出来
- 如果没有识别出来,解决办法:右击工程
Reload from Disk >> 删除target文件夹 >> rebuild项目
通过管理员列表页面,删除管理员
- 书写顺序如下
- 删除之前,先查询数据是否存在
- 查询详情理论上比查询列表的字段多一些,比如说可以有密码
- Service层删除管理员,返回值为void
- 代码要写在抛出的异常之前,否则可能没有机会执行,当然IDEA也会提示错误
- service测试时,要加try…catch{},因为serviceImpl中已经写好了异常处理的业务逻辑
- Controller的测试可以使用knife4j
管理员权限
- 多个管理员设计不同的权限,有一套解决方案RBAC模型
- 权限设计成字符串,是为了不易冲突和便于区分,当然也可以设计为数字
- 管理员信息可以和权限表直接相连,而引入角色表是为了衔接管理员和权限表,例如1号角色有24中权限,只需要给管理员赋予这个角色即可
- 举个例子:鹅厂充值后对应某种身份,某种身份对应权限
- 角色和权限表一般不做增删,软件在设计好时,其实已经定好了,但是管理员没法确定,需要在管理员角色表中添加一些数据,如下
实际操作
- 当添加管理员时可能被赋予多个角色,这个角色可能有多个权限
- 当添加一个新的管理员后,这个管理员有多个角色,所以在管理员角色(ams_admin_role)表中存在多条记录
- 所以在新增管理员后,需要批量插入表ams_admin_role
步骤如下
- 创建实体类AdminRole
- 在mapper中增加新的方法
- 添加新的字段,这个最终从添加页面中获取到实际的数据,可以使用数组或集合,推荐使用数组,因为使用集合后还是需要转换
- 只需要在serviceImpl中改动数据即可,Controller不需要变动,体现出封装有利于代码的维护,并且可以体会到插入数据时为何要要自动获取数据的id
事务
- 添加管理员时,角色表插入失败,涉及事务,比如cpu有时间间隔,比如停电,死机,会产生数据安全的问题
- 业务就一个写操作时,不需要事务,查询不需要事务
- 事务添加在哪里?现阶段事务直接添加到接口上,好处是求稳,牺牲效率,熟练后按方法添加