package com.sinata.appointment.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import com.sinata.appointment.common.Result; import com.sinata.appointment.common.ResultUtil; import com.sinata.appointment.dto.RoleManageCreateRequest; import com.sinata.appointment.dto.RoleManageDetailVo; import com.sinata.appointment.dto.RoleManageListVo; import com.sinata.appointment.dto.RoleManageUpdateRequest; import com.sinata.appointment.service.SysRoleManageApplicationService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import java.util.Map; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @Tag(name = "角色管理") @RestController @RequestMapping("/api/sys/role-manage") @RequiredArgsConstructor @Validated public class SysRoleManageController { private final SysRoleManageApplicationService sysRoleManageApplicationService; @Operation(summary = "分页") @GetMapping @SaCheckPermission("sys:roles:page") public Result> page( @RequestParam(defaultValue = "1") long page, @RequestParam(defaultValue = "10") long size, @RequestParam(required = false) String roleName) { return ResultUtil.page(sysRoleManageApplicationService.pageRoles(page, size, roleName)); } @Operation(summary = "详情") @GetMapping("/{id}") @SaCheckPermission("sys:roles:detail") public Result detail( @PathVariable Long id, @RequestParam @NotBlank(message = "uuid 不能为空") String uuid) { return ResultUtil.data(sysRoleManageApplicationService.getDetail(id, uuid)); } @Operation(summary = "新增") @PostMapping @SaCheckPermission("sys:roles:create") public Result> create(@Valid @RequestBody RoleManageCreateRequest request) { return ResultUtil.data(sysRoleManageApplicationService.create(request)); } @Operation(summary = "编辑") @PutMapping("/{id}") @SaCheckPermission("sys:roles:update") public Result update( @PathVariable Long id, @Valid @RequestBody RoleManageUpdateRequest request) { sysRoleManageApplicationService.update(id, request); return ResultUtil.success(); } @Operation(summary = "删除") @DeleteMapping("/{id}") @SaCheckPermission("sys:roles:delete") public Result delete( @PathVariable Long id, @RequestParam @NotBlank(message = "uuid 不能为空") String uuid) { sysRoleManageApplicationService.delete(id, uuid); return ResultUtil.success(); } }