package com.designhub.controller; import com.designhub.common.Result; import com.designhub.entity.Permission; import com.designhub.service.PermissionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 权限管理Controller */ @Tag(name = "权限管理", description = "权限管理相关API") @RestController @RequestMapping("/api/permissions") @RequiredArgsConstructor public class PermissionController { private final PermissionService permissionService; @Operation(summary = "获取所有权限列表") @GetMapping public Result> getAllPermissions() { return Result.success(permissionService.getAllPermissions()); } @Operation(summary = "获取权限树形结构") @GetMapping("/tree") public Result> getPermissionTree() { return Result.success(permissionService.getPermissionTree()); } @Operation(summary = "根据ID获取权限") @GetMapping("/{id}") public Result getPermissionById(@PathVariable Long id) { return Result.success(permissionService.getPermissionById(id)); } @Operation(summary = "根据用户ID获取权限列表") @GetMapping("/user/{userId}") public Result> getPermissionsByUserId(@PathVariable Long userId) { return Result.success(permissionService.getPermissionsByUserId(userId)); } @Operation(summary = "根据用户ID获取权限代码列表") @GetMapping("/user/{userId}/codes") public Result> getPermissionCodesByUserId(@PathVariable Long userId) { return Result.success(permissionService.getPermissionCodesByUserId(userId)); } @Operation(summary = "创建权限") @PostMapping public Result createPermission(@RequestBody Permission permission) { return Result.success(permissionService.createPermission(permission)); } @Operation(summary = "更新权限") @PutMapping("/{id}") public Result updatePermission(@PathVariable Long id, @RequestBody Permission permission) { permission.setId(id); return Result.success(permissionService.updatePermission(permission)); } @Operation(summary = "删除权限") @DeleteMapping("/{id}") public Result deletePermission(@PathVariable Long id) { return Result.success(permissionService.deletePermission(id)); } }