功能(auth):实现用户注册并分配默认角色
- 添加AppConfig类以启用事务管理 - 在application.yaml中配置默认角色代码 - 在AuthServiceImpl中注入RoleMapper和defRoleCode - 在注册过程中为新用户分配默认角色 - 添加用户注册和登录事件的日志记录 - 在登录过程中处理异常并进行适当的错误日志记录 - 创建用户、角色、权限及关联关系的数据库表 - 添加用户角色实体类和用户-角色关系映射器 - 实现用户角色服务以管理用户角色分配 - 添加通过SetUserRoleRequest设置用户角色的API端点 - 更新用户实体类并添加适当的字段和注解 - 实现包含角色信息的用户信息查询方法 - 将用户转换逻辑重构为可复用方法 - 为SetUserRoleRequest DTO添加校验约束}```
This commit is contained in:
@@ -3,8 +3,16 @@ package cn.nopj.chaos_api.mapper;
|
||||
import cn.nopj.chaos_api.domain.entity.Role;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
@Mapper
|
||||
public interface RoleMapper extends BaseMapper<Role> {
|
||||
|
||||
/**
|
||||
* 根据角色编码查询角色信息
|
||||
* @param code 角色编码
|
||||
* @return 角色信息
|
||||
*/
|
||||
@Select("SELECT * FROM t_role WHERE code = #{code}")
|
||||
Role selectByCode(String code);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.nopj.chaos_api.domain.entity.Role;
|
||||
import cn.nopj.chaos_api.domain.entity.User;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -34,6 +35,7 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
* @param id 用户id
|
||||
* @param i 角色id
|
||||
*/
|
||||
|
||||
@Select("INSERT INTO t_user_role (user_id, role_id) VALUES (#{userId}, #{roleId})")
|
||||
void insertUserRole(@Param("userId") Long id, @Param("roleId") Long i);
|
||||
|
||||
@@ -54,7 +56,7 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
@Result(property = "roles", column = "id",
|
||||
many = @Many(select = "findRolesByUserId"))
|
||||
})
|
||||
User findUserWithRoles(Long id);
|
||||
User findUserWithRolesById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
@@ -83,4 +85,16 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
WHERE ur.user_id = #{userId}
|
||||
""")
|
||||
List<Role> findRolesByUserId(@Param("userId") Long userId);
|
||||
|
||||
|
||||
@Select("SELECT * FROM t_user WHERE username = #{username} ")
|
||||
@Results({
|
||||
@Result(id = true, property = "id", column = "id"),
|
||||
@Result(property = "username", column = "username"),
|
||||
@Result(property = "nickname", column = "nickname"),
|
||||
@Result(property = "roles", column = "id",
|
||||
|
||||
many = @Many(select = "findRolesByUserId"))
|
||||
})
|
||||
User findUserWithRolesByUsername(String username);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package cn.nopj.chaos_api.mapper;
|
||||
|
||||
import cn.nopj.chaos_api.domain.entity.UserRole;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
public interface UserRoleMapper extends BaseMapper<UserRole> {
|
||||
}
|
||||
Reference in New Issue
Block a user