若依框架开启注册功能及分配的单个或多个角色

若依框架开启注册功能及分配的单个或多个角色

​ 由于若依框架是默认关闭注册功能的,所以想要开启的话得手动进行开启,开启后默认是没有用户角色的,想要配置用户角色,还得登录admin账户进行分配。因此想要点击注册后,选好用户角色后可以直接分配用户角色,就有了如下的文章:

一、开启注册功能

  1. 前端开启注册功能
    在这里插入图片描述

  2. 后台开启注册功能

    方法一:直接用admin账户登录后台管理系统进行设置

    在这里插入图片描述
    在这里插入图片描述

    方法二:直接操作数据库进行设置

在这里插入图片描述
在这里插入图片描述

至此开启完毕!

在这里插入图片描述

二、分配单个角色

1、在首页注册后会调用下面的这个注册接口,然后一步一步去调用数据库

在这里插入图片描述

2、然后一步一步进去找到它的实现类,SysUserServiceImpl,然后再275行的时候找到这个方法,然后把下面的代码复制进去就行

在这里插入图片描述

3、修改public boolean registerUser(SysUser user){}方法

    public boolean registerUser(SysUser user)
    {
         Boolean total = userMapper.insertUser(user) > 0; //这个是插入到用户表中
         //插入到角色表中,然后注意一下这个new Long[]{2L},2L代表的含义是2是xx角色的id,L是Long长整型,这个样子是写死的,比如说:2是房东角色
        //的id,那么这种做法插入都是房东的角色,所有注册的权限是房东角色权限。房东的权限可以在admin用户下分配(这里不细说)
         insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{2L});
         return total;
         //return userMapper.insertUser(user) > 0; 原本存在的,可以删掉可以注释掉
    }

三、分配多个角色

​ 先说一下我这个的基本思路,比较low,但是可以实现。以我现在做的房屋租赁系统为例子:首先我是在前端注册页面新加一个字段registerForm.userType,这个字段为“11”的时候代表:房东,“22”的时候代表:租客,然后后端通过这个传过来的字段进行校验,如果为11,分配房东角色,拥有房东权限,如果为22,那就分配租客角色,拥有租客权限,这是我目前想到最简单的一个做法,不用额外新建一个表啥的。当然,关于那个字段的,你可以另外建立一个进行判断就行,不用跟我这么麻烦,我懒得写了就直接用了。话不多说了,上图:

在这里插入图片描述
在这里插入图片描述

新增的代码如下,其余都跟原来的一样:

      <el-form-item prop="userType" label="角色">
        <el-radio-group v-model="registerForm.userType">
          <el-radio label="11">房东</el-radio>
          <el-radio label="22">租客</el-radio>
        </el-radio-group>
data() {
    const equalToPassword = (rule, value, callback) => {
      if (this.registerForm.password !== value) {
        callback(new Error("两次输入的密码不一致"));
      } else {
        callback();
      }
    };
    return {
      codeUrl: "",
      registerForm: {
        username: "",
        password: "",
        confirmPassword: "",
        userType: "11", //11代表房东,22代表租客
        code: "",
        uuid: ""
      },
      ......

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
把下面这个代码复制进去就行

@Override
    public boolean registerUser(SysUser user)
    {
        System.out.println(user);
        System.out.println(user.getUserType());
        if (user.getUserType().equals("11")){
            System.out.println("房东");
            Boolean total = userMapper.insertUser(user) > 0;
            //插入角色
            insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{2L});
            return total;
//        return userMapper.insertUser(user) > 0;
        }else {
            System.out.println("租客");
            Boolean total = userMapper.insertUser(user) > 0;
            //插入角色,100是我的租客角色id
            insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{100L});
            return total;
        }

    }

在这里插入图片描述

至此,完成分配多个角色!

  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
若依框架的文件上传功能可以通过以下步骤使用: 1. 在需要上传文件的页面中,引入`webuploader.js`和`uploader.css`文件。 2. 在页面中添加一个上传文件的按钮,例如: ```html <div id="uploader"> <div class="queueList"> <div id="dndArea" class="placeholder"> <div id="filePicker"></div> <p>或将文件拖到这里,单次最多可选300个文件</p> </div> </div> <div class="statusBar" style="display:none;"> <div class="progress"> <span class="text">0%</span> <span class="percentage"></span> </div><div class="info"></div> <div class="btns"> <div id="filePicker2"></div><div class="uploadBtn">开始上传</div> </div> </div> </div> ``` 3. 使用JavaScript代码初始化上传组件,例如: ```javascript // 初始化WebUploader var uploader = WebUploader.create({ auto: true, swf: '/plugins/webuploader/Uploader.swf', server: '/system/sysFile/upload', pick: { id: '#filePicker', label: '点击选择文件' }, formData: { 'fileType': options.fileType, 'fileGroup': options.fileGroup }, chunked: true, chunkSize: 20 * 1024 * 1024, chunkRetry: 2, threads: 1, fileNumLimit: 300, fileSizeLimit: 2 * 1024 * 1024 * 1024, fileSingleSizeLimit: 50 * 1024 * 1024 }); // 文件上传成功后的回调函数 uploader.on('uploadSuccess', function (file, response) { if (response.code == 0) { // 上传成功,处理业务逻辑 } else { // 上传失败,提示错误信息 alert(response.msg); } }); ``` 在上述代码中,`auto`选项表示选择文件后是否自动上传,`server`选项表示上传文件的服务器地址,`pick`选项表示上传文件的按钮的选择器,`fileNumLimit`选项表示最多能同时选择的文件数量,`fileSizeLimit`选项表示所有文件的总大小上限,`fileSingleSizeLimit`选项表示单个文件的大小上限。其中,`formData`选项可以传递额外的参数给服务器端,例如上述代码中的`fileType`和`fileGroup`。 4. 在服务器端,可以通过接收上传文件的请求并处理上传文件的逻辑,例如: ```java public AjaxResult uploadFile(MultipartFile file, String fileType, String fileGroup) { try { // 上传文件 String filePath = FileUploadUtils.upload(fileType, fileGroup, file); return AjaxResult.success(filePath); } catch (IOException e) { logger.error("上传文件失败", e); return AjaxResult.error("上传文件失败"); } } ``` 在上述代码中,`FileUploadUtils.upload`方法是若依框架内置的上传文件的方法,它会将上传的文件保存到指定的路径,并返回文件的保存路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值