diff --git a/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/RoleResponse.java b/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/RoleResponse.java index 27c5738..48d3308 100644 --- a/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/RoleResponse.java +++ b/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/RoleResponse.java @@ -1,8 +1,15 @@ package cn.nopj.chaos_api.dto.response; +import cn.nopj.chaos_api.domain.entity.Role; import lombok.Data; @Data public class RoleResponse { private Long id; private String name; + + + public RoleResponse(Role role){ + this.id = role.getId(); + this.name = role.getName(); + } } diff --git a/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/UserProfileResponse.java b/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/UserProfileResponse.java index e64eb05..b1322c6 100644 --- a/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/UserProfileResponse.java +++ b/chaos_api_domain/src/main/java/cn/nopj/chaos_api/dto/response/UserProfileResponse.java @@ -10,17 +10,14 @@ public class UserProfileResponse { private Long id; private String username; private String nickname; + private String avatar; private List roles; public UserProfileResponse(User user) { this.id = user.getId(); this.username = user.getUsername(); this.nickname = user.getNickname(); - this.roles = user.getRoles().stream().map(role -> { - RoleResponse roleResponse = new RoleResponse(); - roleResponse.setId(role.getId()); - roleResponse.setName(role.getName()); - return roleResponse; - }).toList(); + this.avatar = user.getAvatar(); + this.roles = user.getRoles().stream().map(RoleResponse::new).toList(); } } diff --git a/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/RoleService.java b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/RoleService.java new file mode 100644 index 0000000..6760e70 --- /dev/null +++ b/chaos_api_interface/src/main/java/cn/nopj/chaos_api/service/RoleService.java @@ -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 getAllRoles(); +} diff --git a/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/RoleServiceImpl.java b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/RoleServiceImpl.java new file mode 100644 index 0000000..66500eb --- /dev/null +++ b/chaos_api_service/src/main/java/cn/nopj/chaos_api/service/impl/RoleServiceImpl.java @@ -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 implements RoleService { + @Override + public List getAllRoles() { + return this.baseMapper.selectList(null).stream().map(RoleResponse::new).toList(); + } +} diff --git a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/RoleController.java b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/RoleController.java index c4aed12..9bfb477 100644 --- a/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/RoleController.java +++ b/chaos_api_web/src/main/java/cn/nopj/chaos_api/controller/RoleController.java @@ -2,16 +2,21 @@ package cn.nopj.chaos_api.controller; 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.service.RoleService; import cn.nopj.chaos_api.service.UserRoleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; 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.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 角色管理 @@ -24,6 +29,9 @@ public class RoleController { @Autowired private UserRoleService userRoleService; + @Autowired + private RoleService roleService; + /** * 设置用户角色 * @param request 请求参数 @@ -45,4 +53,13 @@ public class RoleController { public ApiResult revokeRolesFromUser(@RequestBody @Validated SetUserRoleRequest request) { return ApiResult.success("用户角色取消成功",userRoleService.revokeRolesFromUser(request)); } + + /** + * 获取用户角色 + */ + @PreAuthorize("hasAuthority('admin')") + @GetMapping("/") + public ApiResult> getUserRole() { + return ApiResult.success(roleService.getAllRoles()); + } }