用户权限及switch开关组件的坑

1.switch组件

switch组件

1.1代码写法

1.1.1绑定的数据要具体到 行(row)以及得到的 内容($index)
1.1.2点击事件注意 @click.native 当前激活的这一行
image.png

1.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);
    }

推荐阅读更多精彩内容