package com.ots.project.system.menu.controller;
|
import com.ots.common.constant.UserConstants;
|
import com.ots.framework.aspectj.lang.annotation.Log;
|
import com.ots.framework.aspectj.lang.enums.BusinessType;
|
import com.ots.framework.web.controller.BaseController;
|
import com.ots.framework.web.domain.AjaxResult;
|
import com.ots.framework.web.domain.Ztree;
|
import com.ots.project.system.menu.domain.Menu;
|
import com.ots.project.system.menu.service.IMenuService;
|
import com.ots.project.system.role.domain.Role;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
import java.util.List;
|
|
@Controller
|
@RequestMapping("/system/menu")
|
public class MenuController extends BaseController {
|
private String prefix = "system/menu";
|
@Autowired
|
private IMenuService menuService;
|
@RequiresPermissions("system:menu:view")
|
@GetMapping()
|
public String menu() {
|
return prefix + "/menu";
|
}
|
@RequiresPermissions("system:menu:list")
|
@PostMapping("/list")
|
@ResponseBody
|
public List<Menu> list(Menu menu) {
|
List<Menu> menuList = menuService.selectMenuList(menu);
|
return menuList;
|
}
|
|
@Log(title = "菜单管理", businessType = BusinessType.DELETE)
|
@RequiresPermissions("system:menu:remove")
|
@GetMapping("/remove/{menuId}")
|
@ResponseBody
|
public AjaxResult remove(@PathVariable("menuId") Long menuId) {
|
if (menuService.selectCountMenuByParentId(menuId) > 0) {
|
return AjaxResult.warn("存在子菜单,不允许删除");
|
}
|
if (menuService.selectCountRoleMenuByMenuId(menuId) > 0) {
|
return AjaxResult.warn("菜单已分配,不允许删除");
|
}
|
return toAjax(menuService.deleteMenuById(menuId));
|
}
|
|
@GetMapping("/add/{parentId}")
|
public String add(@PathVariable("parentId") Long parentId, ModelMap mmap) {
|
Menu menu = null;
|
if (0L != parentId) {
|
menu = menuService.selectMenuById(parentId);
|
} else {
|
menu = new Menu();
|
menu.setMenuId(0L);
|
menu.setMenuName("主目录");
|
}
|
mmap.put("menu", menu);
|
return prefix + "/add";
|
}
|
|
@Log(title = "菜单管理", businessType = BusinessType.INSERT)
|
@RequiresPermissions("system:menu:add")
|
@PostMapping("/add")
|
@ResponseBody
|
public AjaxResult addSave(@Validated Menu menu) {
|
if (UserConstants.MENU_NAME_NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
|
return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
|
}
|
return toAjax(menuService.insertMenu(menu));
|
}
|
|
@GetMapping("/edit/{menuId}")
|
public String edit(@PathVariable("menuId") Long menuId, ModelMap mmap) {
|
mmap.put("menu", menuService.selectMenuById(menuId));
|
return prefix + "/edit";
|
}
|
|
@Log(title = "菜单管理", businessType = BusinessType.UPDATE)
|
@RequiresPermissions("system:menu:edit")
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(@Validated Menu menu) {
|
if (UserConstants.MENU_NAME_NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu))) {
|
return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
|
}
|
return toAjax(menuService.updateMenu(menu));
|
}
|
|
@GetMapping("/icon")
|
public String icon() {
|
return prefix + "/icon";
|
}
|
|
@PostMapping("/checkMenuNameUnique")
|
@ResponseBody
|
public String checkMenuNameUnique(Menu menu) {
|
return menuService.checkMenuNameUnique(menu);
|
}
|
|
@GetMapping("/roleMenuTreeData")
|
@ResponseBody
|
public List<Ztree> roleMenuTreeData(Role role) {
|
List<Ztree> ztrees = menuService.roleMenuTreeData(role);
|
return ztrees;
|
}
|
|
@GetMapping("/menuTreeData")
|
@ResponseBody
|
public List<Ztree> menuTreeData(Role role) {
|
List<Ztree> ztrees = menuService.menuTreeData();
|
return ztrees;
|
}
|
|
@GetMapping("/selectMenuTree/{menuId}")
|
public String selectMenuTree(@PathVariable("menuId") Long menuId, ModelMap mmap) {
|
mmap.put("menu", menuService.selectMenuById(menuId));
|
return prefix + "/tree";
|
}
|
}
|