重构角色和权限相关DTO,替换RoleDto为RoleRespDto,并更新相关服务和控制器逻辑

This commit is contained in:
Chuck1sn
2025-06-16 10:57:35 +08:00
parent 7b8ef54e7b
commit ea10b156e3
34 changed files with 543 additions and 405 deletions

View File

@@ -15,7 +15,6 @@ import com.zl.mjga.repository.UserRepository;
import com.zl.mjga.service.IdentityAccessService;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import io.minio.errors.*;
import jakarta.validation.Valid;
import java.awt.image.BufferedImage;
import java.security.Principal;
@@ -118,7 +117,7 @@ public class IdentityAccessController {
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)")
@GetMapping("/role")
RoleDto queryRoleWithPermission(@RequestParam Long roleId) {
RoleRespDto queryRoleWithPermission(@RequestParam Long roleId) {
return identityAccessService.queryUniqueRoleWithPermission(roleId);
}
@@ -145,7 +144,7 @@ public class IdentityAccessController {
@PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)")
@GetMapping("/roles")
@ResponseStatus(HttpStatus.OK)
PageResponseDto<List<RoleDto>> queryRoles(
PageResponseDto<List<RoleRespDto>> queryRoles(
@ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute RoleQueryDto roleQueryDto) {
return identityAccessService.pageQueryRole(pageRequestDto, roleQueryDto);
}

View File

@@ -1,5 +1,6 @@
package com.zl.mjga.dto.urp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@AllArgsConstructor
@@ -7,8 +8,16 @@ import lombok.*;
@Data
@Builder
public class PermissionRespDto {
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private String code;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private String name;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean isBound;
}

View File

@@ -1,5 +1,6 @@
package com.zl.mjga.dto.urp;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.LinkedList;
import java.util.List;
import lombok.*;
@@ -8,10 +9,18 @@ import lombok.*;
@NoArgsConstructor
@Data
@Builder
public class RoleDto {
public class RoleRespDto {
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private String code;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private String name;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean isBound;
@Builder.Default List<PermissionRespDto> permissions = new LinkedList<>();
}

View File

@@ -1,6 +1,7 @@
package com.zl.mjga.dto.urp;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.OffsetDateTime;
import java.util.LinkedList;
import java.util.List;
@@ -13,7 +14,11 @@ import lombok.*;
@Data
@Builder
public class UserRolePermissionDto {
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private String username;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@@ -21,9 +26,12 @@ public class UserRolePermissionDto {
private String avatar;
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private Boolean enable;
@Builder.Default private List<RoleDto> roles = new LinkedList<>();
@Builder.Default private List<RoleRespDto> roles = new LinkedList<>();
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
private OffsetDateTime createTime;
public Set<PermissionRespDto> getPermissions() {

View File

@@ -5,7 +5,7 @@ import static org.jooq.impl.DSL.*;
import com.zl.mjga.dto.PageRequestDto;
import com.zl.mjga.dto.urp.PermissionRespDto;
import com.zl.mjga.dto.urp.RoleDto;
import com.zl.mjga.dto.urp.RoleRespDto;
import com.zl.mjga.dto.urp.UserQueryDto;
import com.zl.mjga.dto.urp.UserRolePermissionDto;
import java.util.List;
@@ -102,7 +102,7 @@ public class UserRepository extends UserDao {
r -> r.map((record) -> record.into(PermissionRespDto.class)))
.as("permissions"))
.from(USER.role()))
.convertFrom(r -> r.map((record) -> record.into(RoleDto.class)))
.convertFrom(r -> r.map((record) -> record.into(RoleRespDto.class)))
.as("roles"))
.from(USER)
.where(USER.ID.eq(userId))

View File

@@ -80,17 +80,17 @@ public class IdentityAccessService {
return userRepository.fetchUniqueUserDtoWithNestedRolePermissionBy(userId);
}
public PageResponseDto<List<RoleDto>> pageQueryRole(
public PageResponseDto<List<RoleRespDto>> pageQueryRole(
PageRequestDto pageRequestDto, RoleQueryDto roleQueryDto) {
Result<Record> roleRecords = roleRepository.pageFetchBy(pageRequestDto, roleQueryDto);
if (roleRecords.isEmpty()) {
return PageResponseDto.empty();
}
List<RoleDto> roleDtoList =
List<RoleRespDto> roleRespDtoList =
roleRecords.stream()
.map(
record -> {
return RoleDto.builder()
return RoleRespDto.builder()
.id(record.getValue("id", Long.class))
.code(record.getValue("code", String.class))
.name(record.getValue("name", String.class))
@@ -103,17 +103,17 @@ public class IdentityAccessService {
})
.toList();
return new PageResponseDto<>(
roleRecords.get(0).getValue("total_role", Integer.class), roleDtoList);
roleRecords.get(0).getValue("total_role", Integer.class), roleRespDtoList);
}
public @Nullable RoleDto queryUniqueRoleWithPermission(Long roleId) {
public @Nullable RoleRespDto queryUniqueRoleWithPermission(Long roleId) {
Result<Record> roleWithPermissionRecords = roleRepository.fetchUniqueRoleWithPermission(roleId);
if (roleWithPermissionRecords.isEmpty()) {
return null;
}
RoleDto roleDto = createRbacDtoRolePart(roleWithPermissionRecords);
setCurrentRolePermission(roleDto, roleWithPermissionRecords);
return roleDto;
RoleRespDto roleRespDto = createRbacDtoRolePart(roleWithPermissionRecords);
setCurrentRolePermission(roleRespDto, roleWithPermissionRecords);
return roleRespDto;
}
public PageResponseDto<List<PermissionRespDto>> pageQueryPermission(
@@ -199,12 +199,12 @@ public class IdentityAccessService {
.toList());
}
private void setCurrentRolePermission(RoleDto roleDto, List<Record> roleResult) {
private void setCurrentRolePermission(RoleRespDto roleRespDto, List<Record> roleResult) {
if (roleResult.get(0).getValue(PERMISSION.ID) != null) {
roleResult.forEach(
(record) -> {
PermissionRespDto permissionRespDto = createRbacDtoPermissionPart(record);
roleDto.getPermissions().add(permissionRespDto);
roleRespDto.getPermissions().add(permissionRespDto);
});
}
}
@@ -217,12 +217,12 @@ public class IdentityAccessService {
return permissionRespDto;
}
private RoleDto createRbacDtoRolePart(List<Record> roleResult) {
RoleDto roleDto = new RoleDto();
roleDto.setId(roleResult.get(0).getValue(ROLE.ID));
roleDto.setCode(roleResult.get(0).getValue(ROLE.CODE));
roleDto.setName(roleResult.get(0).getValue(ROLE.NAME));
return roleDto;
private RoleRespDto createRbacDtoRolePart(List<Record> roleResult) {
RoleRespDto roleRespDto = new RoleRespDto();
roleRespDto.setId(roleResult.get(0).getValue(ROLE.ID));
roleRespDto.setCode(roleResult.get(0).getValue(ROLE.CODE));
roleRespDto.setName(roleResult.get(0).getValue(ROLE.NAME));
return roleRespDto;
}
public boolean isRoleDuplicate(String roleCode, String name) {