feat(role): 新增获取用户角色接口
- 在RoleController中新增getUserRole方法,用于获取所有用户角色 - 添加RoleService接口及其实现类RoleServiceImpl - 创建RoleResponse DTO并优化UserProfileResponse中的角色映射逻辑 - 引入RoleService依赖并配置相关注解以支持新功能 - 实现角色数据的查询与转换,返回标准ApiResult格式结果
This commit is contained in:
@@ -1,8 +1,15 @@
|
|||||||
package cn.nopj.chaos_api.dto.response;
|
package cn.nopj.chaos_api.dto.response;
|
||||||
|
|
||||||
|
import cn.nopj.chaos_api.domain.entity.Role;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class RoleResponse {
|
public class RoleResponse {
|
||||||
private Long id;
|
private Long id;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
|
public RoleResponse(Role role){
|
||||||
|
this.id = role.getId();
|
||||||
|
this.name = role.getName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,17 +10,14 @@ public class UserProfileResponse {
|
|||||||
private Long id;
|
private Long id;
|
||||||
private String username;
|
private String username;
|
||||||
private String nickname;
|
private String nickname;
|
||||||
|
private String avatar;
|
||||||
private List<RoleResponse> roles;
|
private List<RoleResponse> roles;
|
||||||
|
|
||||||
public UserProfileResponse(User user) {
|
public UserProfileResponse(User user) {
|
||||||
this.id = user.getId();
|
this.id = user.getId();
|
||||||
this.username = user.getUsername();
|
this.username = user.getUsername();
|
||||||
this.nickname = user.getNickname();
|
this.nickname = user.getNickname();
|
||||||
this.roles = user.getRoles().stream().map(role -> {
|
this.avatar = user.getAvatar();
|
||||||
RoleResponse roleResponse = new RoleResponse();
|
this.roles = user.getRoles().stream().map(RoleResponse::new).toList();
|
||||||
roleResponse.setId(role.getId());
|
|
||||||
roleResponse.setName(role.getName());
|
|
||||||
return roleResponse;
|
|
||||||
}).toList();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package cn.nopj.chaos_api.service;
|
||||||
|
|
||||||
|
import cn.nopj.chaos_api.dto.response.RoleResponse;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface RoleService {
|
||||||
|
/**
|
||||||
|
* 获取所有角色
|
||||||
|
* @return 所有角色
|
||||||
|
*/
|
||||||
|
List<RoleResponse> getAllRoles();
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package cn.nopj.chaos_api.service.impl;
|
||||||
|
|
||||||
|
import cn.nopj.chaos_api.domain.entity.Role;
|
||||||
|
import cn.nopj.chaos_api.dto.response.RoleResponse;
|
||||||
|
import cn.nopj.chaos_api.mapper.RoleMapper;
|
||||||
|
import cn.nopj.chaos_api.service.RoleService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
|
||||||
|
@Override
|
||||||
|
public List<RoleResponse> getAllRoles() {
|
||||||
|
return this.baseMapper.selectList(null).stream().map(RoleResponse::new).toList();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,16 +2,21 @@ package cn.nopj.chaos_api.controller;
|
|||||||
|
|
||||||
|
|
||||||
import cn.nopj.chaos_api.dto.request.SetUserRoleRequest;
|
import cn.nopj.chaos_api.dto.request.SetUserRoleRequest;
|
||||||
|
import cn.nopj.chaos_api.dto.response.RoleResponse;
|
||||||
import cn.nopj.chaos_api.model.ApiResult;
|
import cn.nopj.chaos_api.model.ApiResult;
|
||||||
|
import cn.nopj.chaos_api.service.RoleService;
|
||||||
import cn.nopj.chaos_api.service.UserRoleService;
|
import cn.nopj.chaos_api.service.UserRoleService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色管理
|
* 角色管理
|
||||||
@@ -24,6 +29,9 @@ public class RoleController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserRoleService userRoleService;
|
private UserRoleService userRoleService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoleService roleService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置用户角色
|
* 设置用户角色
|
||||||
* @param request 请求参数
|
* @param request 请求参数
|
||||||
@@ -45,4 +53,13 @@ public class RoleController {
|
|||||||
public ApiResult<?> revokeRolesFromUser(@RequestBody @Validated SetUserRoleRequest request) {
|
public ApiResult<?> revokeRolesFromUser(@RequestBody @Validated SetUserRoleRequest request) {
|
||||||
return ApiResult.success("用户角色取消成功",userRoleService.revokeRolesFromUser(request));
|
return ApiResult.success("用户角色取消成功",userRoleService.revokeRolesFromUser(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户角色
|
||||||
|
*/
|
||||||
|
@PreAuthorize("hasAuthority('admin')")
|
||||||
|
@GetMapping("/")
|
||||||
|
public ApiResult<List<RoleResponse>> getUserRole() {
|
||||||
|
return ApiResult.success(roleService.getAllRoles());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user