package com.ruoyi.system.controller; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.domain.SysRoleMenuvisu; import com.ruoyi.system.service.ISysRoleMenuvisuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 角色和菜单关联Controller * * @author ruoyi * @date 2022-05-24 */ @Api(tags = "角色和菜单关联控制器") @RestController @RequestMapping("/menuvisu") public class SysRoleMenuvisuController extends BaseController { private final ISysRoleMenuvisuService sysRoleMenuvisuService; public SysRoleMenuvisuController(ISysRoleMenuvisuService sysRoleMenuvisuService) { this.sysRoleMenuvisuService = sysRoleMenuvisuService; } /** * 查询角色和菜单关联列表 */ @ApiOperation(value = "查询角色和菜单关联列表", notes = "查询角色和菜单关联列表") @RequiresPermissions("system:menuvisu:list") @GetMapping("/list") public TableDataInfo list(SysRoleMenuvisu sysRoleMenuvisu) { startPage(); List list = sysRoleMenuvisuService.selectSysRoleMenuvisuList(sysRoleMenuvisu); return getDataTable(list); } /** * 导出角色和菜单关联列表 */ @ApiOperation(value = "导出角色和菜单关联列表", notes = "导出角色和菜单关联列表") @RequiresPermissions("system:menuvisu:export") @Log(title = "角色和菜单关联", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SysRoleMenuvisu sysRoleMenuvisu) { List list = sysRoleMenuvisuService.selectSysRoleMenuvisuList(sysRoleMenuvisu); ExcelUtil util = new ExcelUtil<>(SysRoleMenuvisu.class); util.exportExcel(response, list, "角色和菜单关联数据"); } /** * 获取角色和菜单关联详细信息 */ @ApiOperation(value = "获取角色和菜单关联详细信息", notes = "获取角色和菜单关联详细信息") @RequiresPermissions("system:menuvisu:query") @GetMapping(value = "/{roleId}") public AjaxResult getInfo(@PathVariable("roleId") Long roleId) { return AjaxResult.success(sysRoleMenuvisuService.selectSysRoleMenuvisuByRoleId(roleId)); } /** * 修改角色和菜单关联 */ @ApiOperation(value = "修改角色和菜单关联", notes = "修改角色和菜单关联") @RequiresPermissions("system:menuvisu:edit") @Log(title = "角色和菜单关联", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysRoleMenuvisu sysRoleMenuvisu) { return toAjax(sysRoleMenuvisuService.updateSysRoleMenuvisu(sysRoleMenuvisu)); } /** * 删除角色和菜单关联 */ @ApiOperation(value = "删除角色和菜单关联", notes = "删除角色和菜单关联") @RequiresPermissions("system:menuvisu:remove") @Log(title = "角色和菜单关联", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") public AjaxResult remove(@PathVariable Long[] roleIds) { return toAjax(sysRoleMenuvisuService.deleteSysRoleMenuvisuByRoleIds(roleIds)); } /** * 新增角色 */ @ApiOperation(value = "新增角色和菜单关联", notes = "新增角色和菜单关联") @RequiresPermissions("system:menuVisu:add") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysRole role) { if (UserConstants.NOT_UNIQUE.equals(sysRoleMenuvisuService.checkRoleNameUnique(role))) { return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); } else if (UserConstants.NOT_UNIQUE.equals(sysRoleMenuvisuService.checkRoleKeyUnique(role))) { return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); } role.setCreateBy(SecurityUtils.getUsername()); return toAjax(sysRoleMenuvisuService.insertRoleMenu(role)); } }