用户权限及switch开关组件的坑
2019-10-07 本文已影响0人
tnoyh
1.switch组件
switch组件1.1代码写法
1.1.1绑定的数据要具体到 行(row)以及得到的 内容($index)
1.1.2点击事件注意 @click.native 当前激活的这一行
image.png1.2.传单个参数写法
单个参数写法1.2.1 传一个对象的话 直接写成row 一行就表示一个对象的内容
传一个对象1.3在js里这个只是一个形参,不必与后台传的字段一一对应
js写法注意2 用户权限 后台加个userstatus字段
后台加个userstatus字段数据库字段的写法 tinyint 数据库里存的值
2.1注意 为什么数据库是int 而Java是布尔类型呢
因为数据库里的0和1在Java里就是boolean 它会自动进行转换
数据库查询 一定要定义成大写的Boolean(封装类) 不然很容易产生为null 的异常
2.2 userMapper.xml
userMapper.xml布尔写法<!--查询用户状态 前台绑定的switch组件只有true 和 false 所以这个类型得设置成Boolean(封装类)类型-->
<select id="findStatus" parameterType="long" resultType="java.lang.Boolean">
select userstatus from tb_user where id=#{id}
</select>
<!-- 通过id来修改用户状态把0改为1 -->
<update id="updateStatusTo1" parameterType="long">
update tb_user set userstatus=${1} where id=#{id}
</update>
<!-- 通过id来修改用户状态把1改为0 -->
<update id="updateStatusTo0" parameterType="long">
update tb_user set userstatus=${0} where id=#{id}
</update>
2.3 userMapper
userMapper注意//状态查询 0禁用 1启用
Boolean findStatus(Long id);
//通过id来修改用户状态0到1
boolean updateStatusTo1(Long id);
//通过id来修改用户状态1到0
boolean updateStatusTo0(Long id);
2.4 userService
//判断用户状态 0禁用 1启用
boolean isStatus(Long id);
//通过id来修改用户状态从0到1
boolean updateStatusTo1(Long id);
//通过id来修改用户状态从1到0
boolean updateStatusTo0(Long id);
2.5 userServiceImpl
//判断用户状态是否为0 默认1为启用状态
@Override
public boolean isStatus(Long id) { //前端先获取点击之前的状态
boolean status = userMapper.findStatus(id);
if (status==false){ //0代表禁用
updateStatusTo1(id); //将status改为1
return status;
}else {
updateStatusTo0(id);
return status;
}
}
//通过id来修改用户状态0到1
@Override
public boolean updateStatusTo1(Long id) {
boolean status = userMapper.updateStatusTo1(id);
return status;
}
//通过id来修改用户状态1到0
@Override
public boolean updateStatusTo0(Long id) {
boolean status = userMapper.updateStatusTo0(id);
return status;
}
2.6 userController
//修改用户状态
@GetMapping("/userStatus")
public Result userStatus(Long id){
boolean status = userService.isStatus(id);
return Result.ok(status);
}