前提:开启注册
环境:ruoyi-vue 3.8.5
如使用其他版本的ruoyi框架,操作可能不相同
操作:
1.
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
在此文件中修改registerUser方法:
public boolean registerUser(SysUser user)
{
boolean isNotEmpty=userMapper.insertUser(user)>0;
insertUserRoleRegister(user);
System.out.println(user);
return isNotEmpty;
}
2.增加insertUserRoleRegister方法
仍然是SysUserServiceImpl.java
public void insertUserRoleRegister(SysUser user)
{
this.insertUserRole(user.getUserId(), new Long[]{102L});
}
其中,102是你想设置的默认角色的Id,我的项目中,访客(刚注册完的用户)设置的角色Id是102,需要改成自己项目中的
现在重启项目,注册用户后,新注册用户的角色就是102 访客了、
原理
若依注册流程为:
registerService中register方法调用userService.registerUser(sysUser);
userService中registerUser调用userMapper中insertUser(user)方法
insertUser(user)调用SysUserMapper.xml中的insertUser方法
该方法默认返回插入的行数,即
public boolean registerUser(SysUser user)
boolean isNotEmpty=userMapper.insertUser(user)>0;
返回值>0,插入成功
查询mybatis文档可知,可在insert中将useGeneratedKeys属性设置为true,并制定keyProperty为User对象的id,并返回Id的值到对象中,参考如下:
MyBatis + MySQL返回插入成功后的主键id
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
这段xml SQL语句可以返回Id到user对象中,使用get方法就可以得到新注册用户的Id