首页>代码>springboot2 + mybatis-plus3 +shiro1.4 +layui细颗粒度网站后台用户权限管理系统>/comadmin/src/main/java/com/xiaoshu/admin/controller/MenuController.java
package com.xiaoshu.admin.controller;

import com.xiaoshu.admin.entity.Menu;
import com.xiaoshu.admin.service.MenuService;
import com.xiaoshu.common.annotation.SysLog;
import com.xiaoshu.common.util.ResponseEntity;
import org.apache.commons.lang3.StringUtils;
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.web.bind.annotation.*;

import java.util.Comparator;
import java.util.HashMap;
import java.util.List;

@Controller
@RequestMapping("admin/system/menu")
public class MenuController {

    @Autowired
    MenuService menuService;

    @GetMapping("list")
    @SysLog("跳转菜单列表")
    public String list(){
        return "admin/menu/list";
    }

    @RequiresPermissions("sys:menu:list")
    @RequestMapping("treeList")
    @ResponseBody
    public ResponseEntity treeList(){
        ResponseEntity responseEntity = ResponseEntity.success("操作成功");
        responseEntity.setAny("code",0);
        responseEntity.setAny("msg","");
        responseEntity.setAny("count","");
        HashMap map = new HashMap();
        map.put("del_flag",false);
        List<Menu> menus = menuService.selectAllMenuList(map);
        menus.forEach( menu -> {
            if(StringUtils.isBlank(menu.getParentId())) {
                menu.setParentId("-1");
            }
        });
        menus.sort(Comparator.comparing(Menu::getSort));
        return responseEntity.setAny("data",menus);
    }

    @GetMapping("add")
    public String add(@RequestParam(value = "parentId",required = false) String parentId, ModelMap modelMap){
        if(parentId != null){
            Menu menu = menuService.selectById(parentId);
            modelMap.put("parentMenu",menu);
        }
        return "admin/menu/add";
    }

    @RequiresPermissions("sys:menu:add")
    @PostMapping("add")
    @ResponseBody
    @SysLog("保存新增菜单数据")
    public ResponseEntity add(Menu menu){
        if(StringUtils.isBlank(menu.getName())){
            return ResponseEntity.failure("菜单名称不能为空");
        }
        if(menuService.getCountByName(menu.getName())>0){
            return ResponseEntity.failure("菜单名称已存在");
        }
        if(StringUtils.isNotBlank(menu.getPermission())){
            if(menuService.getCountByPermission(menu.getPermission())>0){
                return ResponseEntity.failure("权限标识已经存在");
            }
        }
        if(menu.getParentId() == null){
            menu.setLevel(1);
            menu.setSort(menuService.selectFirstLevelMenuMaxSort());
        }else{
            Menu parentMenu = menuService.selectById(menu.getParentId());
            if(parentMenu==null){
                return ResponseEntity.failure("父菜单不存在");
            }
            menu.setParentIds(parentMenu.getParentIds());
            menu.setLevel(parentMenu.getLevel()+1);
            menu.setSort(menuService.seleclMenuMaxSortByPArentId(menu.getParentId()));
        }
        menuService.saveOrUpdateMenu(menu);
        menu.setParentIds(StringUtils.isBlank(menu.getParentIds()) ? menu.getId()+"," : menu.getParentIds() + menu.getId()+",");
        menuService.saveOrUpdateMenu(menu);
        return ResponseEntity.success("操作成功");
    }

    @GetMapping("edit")
    public String edit(String id,ModelMap modelMap){
        Menu menu = menuService.selectById(id);
        modelMap.addAttribute("menu",menu);
        return "admin/menu/edit";
    }

    @RequiresPermissions("sys:menu:edit")
    @PostMapping("edit")
    @ResponseBody
    @SysLog("保存编辑菜单数据")
    public ResponseEntity edit(Menu menu){
        if(StringUtils.isBlank(menu.getId())){
            return ResponseEntity.failure("菜单ID不能为空");
        }
        if (StringUtils.isBlank(menu.getName())) {
            return ResponseEntity.failure("菜单名称不能为空");
        }
        Menu oldMenu = menuService.selectById(menu.getId());
        if(!oldMenu.getName().equals(menu.getName())) {
            if(menuService.getCountByName(menu.getName())>0){
                return ResponseEntity.failure("菜单名称已存在");
            }
        }
        if (StringUtils.isNotBlank(menu.getPermission())) {
            if(!oldMenu.getPermission().equals(menu.getPermission())) {
                if (menuService.getCountByPermission(menu.getPermission()) > 0) {
                    return ResponseEntity.failure("权限标识已经存在");
                }
            }
        }
        if(menu.getSort() == null){
            return ResponseEntity.failure("排序值不能为空");
        }
        menuService.saveOrUpdateMenu(menu);
        return ResponseEntity.success("操作成功");
    }

    @RequiresPermissions("sys:menu:delete")
    @PostMapping("delete")
    @ResponseBody
    @SysLog("删除菜单")
    public ResponseEntity delete(@RequestParam(value = "id",required = false)String id){
        if(StringUtils.isBlank(id)){
            return ResponseEntity.failure("菜单ID不能为空");
        }
        Menu menu = menuService.selectById(id);
        menu.setDelFlag(true);
        menuService.saveOrUpdateMenu(menu);
        return ResponseEntity.success("操作成功");
    }

}
最近下载更多
Iterman  LV2 2023年3月9日
168345395  LV3 2022年10月24日
jiaerkai  LV10 2022年10月12日
wy4525  LV6 2022年8月12日
刘亦菲9527  LV15 2022年7月19日
15578157792  LV5 2022年6月28日
chnhope  LV4 2022年5月14日
hdf999  LV12 2022年4月22日
FashGate  LV1 2022年4月19日
1234mama  LV19 2022年4月10日
最近浏览更多
xiaofei1219  LV1 2023年11月23日
wnnmmb  LV2 2023年10月18日
1048571230  LV2 2023年9月20日
微信网友_6247573567180800  LV2 2023年8月31日
tyyeng  LV18 2023年8月1日
hhvivi  LV2 2023年7月2日
include  LV8 2023年6月20日
Rucoding  LV7 2023年6月2日
readforlife 2023年4月11日
暂无贡献等级
wiston 2023年3月30日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友