PlatformSystemRoleController.java 2.25 KB
package com.diligrp.rider.controller;

import com.diligrp.rider.common.result.Result;
import com.diligrp.rider.dto.AdminRoleMenuAssignDTO;
import com.diligrp.rider.dto.AdminRoleSaveDTO;
import com.diligrp.rider.service.SystemRoleMenuService;
import com.diligrp.rider.service.SystemRoleService;
import com.diligrp.rider.vo.AdminRoleMenuTreeVO;
import com.diligrp.rider.vo.AdminRoleVO;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/platform/system/role")
@RequiredArgsConstructor
public class PlatformSystemRoleController {

    private final SystemRoleService systemRoleService;
    private final SystemRoleMenuService systemRoleMenuService;

    @GetMapping("/list")
    public Result<List<AdminRoleVO>> list(@RequestParam(defaultValue = "false") boolean includeDisabled) {
        return Result.success(systemRoleService.list(includeDisabled));
    }

    @PostMapping("/add")
    public Result<Void> add(@Valid @RequestBody AdminRoleSaveDTO dto) {
        systemRoleService.add(dto);
        return Result.success();
    }

    @PutMapping("/edit")
    public Result<Void> edit(@Valid @RequestBody AdminRoleSaveDTO dto) {
        systemRoleService.edit(dto);
        return Result.success();
    }

    @PostMapping("/ban")
    public Result<Void> ban(@RequestParam Long id) {
        systemRoleService.ban(id);
        return Result.success();
    }

    @PostMapping("/cancelBan")
    public Result<Void> cancelBan(@RequestParam Long id) {
        systemRoleService.cancelBan(id);
        return Result.success();
    }

    @DeleteMapping("/del")
    public Result<Void> del(@RequestParam Long id) {
        systemRoleService.del(id);
        return Result.success();
    }

    @GetMapping("/{roleId}/menu-tree")
    public Result<List<AdminRoleMenuTreeVO>> menuTree(@PathVariable Long roleId) {
        return Result.success(systemRoleMenuService.getRoleMenuTree(roleId));
    }

    @PostMapping("/{roleId}/menus")
    public Result<Void> assignMenus(@PathVariable Long roleId,
                                    @Valid @RequestBody AdminRoleMenuAssignDTO dto) {
        systemRoleMenuService.assignMenus(roleId, dto);
        return Result.success();
    }
}