package com.mes.menu.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.mes.base.BaseController;
|
import com.mes.menu.entity.SysMenu;
|
import com.mes.role.entity.SysRoleMenu;
|
import com.mes.utils.Result;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
/**
|
* <p>
|
* 菜单表
|
* </p>
|
*
|
* @author zhoush
|
* @since 2024-04-11
|
*/
|
@ApiModel("获取菜单信息")
|
@RestController
|
@RequestMapping("/menu/sysMenu")
|
public class SysMenuController extends BaseController {
|
@ApiOperation("获取用户有权限的所有菜单")
|
@GetMapping("/list")
|
public Result<List<SysMenu>> getMenuTree(String userName) {
|
return Result.success(sysMenuService.getMenuTree());
|
}
|
|
@ApiOperation("获取用户的权限")
|
@GetMapping("/getAuthorityInfo")
|
public Result<List<String>> getAuthorityInfo(String userName) {
|
return Result.success(sysMenuService.getAuthorityInfo(userName));
|
}
|
|
/**
|
* 用户当前用户的菜单和权限信息
|
*
|
* @param userName
|
* @return
|
*/
|
@GetMapping("/nav")
|
public Result nav(String userName) {
|
// SysUser sysUser = sysUserService.listByUserNameName(userName);
|
//
|
// // 获取权限信息
|
// sysUserService.getUserAuthorityInfo(sysUser.getId());// ROLE_admin,ROLE_normal,sys:user:list,....
|
// String[] authorityInfoArray = StringUtils.tokenizeToStringArray(authorityInfo, ",");
|
//
|
// // 获取导航栏信息
|
// List<SysMenuDto> navs = sysMenuService.getCurrentUserNav();
|
//
|
// return Result.success(MapUtil.builder()
|
// .put("authoritys", authorityInfoArray)
|
// .put("nav", navs)
|
// .map()
|
// );
|
return null;
|
}
|
|
@GetMapping("/info/{id}")
|
@PreAuthorize("hasAuthority('sys:menu:list')")
|
public Result info(@PathVariable(name = "id") Long id) {
|
return Result.success(sysMenuService.getById(id));
|
}
|
|
// @GetMapping("/list")
|
// @PreAuthorize("hasAuthority('sys:menu:list')")
|
// public Result list() {
|
//
|
//// List<SysMenu> menus = sysMenuService.tree();
|
// return Result.success(null);
|
// }
|
|
@PostMapping("/save")
|
@PreAuthorize("hasAuthority('sys:menu:save')")
|
public Result save(@Validated @RequestBody SysMenu sysMenu) {
|
return Result.success(sysMenuService.save(sysMenu));
|
}
|
|
@PostMapping("/update")
|
@PreAuthorize("hasAuthority('sys:menu:update')")
|
public Result update(@Validated @RequestBody SysMenu sysMenu) {
|
|
sysMenuService.updateById(sysMenu);
|
|
// 清除所有与该菜单相关的权限缓存
|
sysUserService.clearUserAuthorityInfoByMenuId(sysMenu.getId());
|
return Result.success(sysMenu);
|
}
|
|
@PostMapping("/delete/{id}")
|
@PreAuthorize("hasAuthority('sys:menu:delete')")
|
public Result delete(@PathVariable("id") Long id) {
|
|
int count = sysMenuService.count(new QueryWrapper<SysMenu>().eq("parent_id", id));
|
if (count > 0) {
|
return Result.error("请先删除子菜单");
|
}
|
|
// 清除所有与该菜单相关的权限缓存
|
sysUserService.clearUserAuthorityInfoByMenuId(id);
|
|
sysMenuService.removeById(id);
|
|
// 同步删除中间关联表
|
sysRoleMenuService.remove(new QueryWrapper<SysRoleMenu>().eq("menu_id", id));
|
return Result.success("");
|
}
|
|
}
|