/** 
 | 
 * Copyright (c) 2018 人人开源 All rights reserved. 
 | 
 * 
 | 
 * https://www.renren.io 
 | 
 * 
 | 
 * 版权所有,侵权必究! 
 | 
 */ 
 | 
  
 | 
package com.zt.modules.sys.controller; 
 | 
  
 | 
import com.zt.common.annotation.LogOperation; 
 | 
import com.zt.common.constant.Constant; 
 | 
import com.zt.common.servlet.Result; 
 | 
import com.zt.common.validator.AssertUtils; 
 | 
import com.zt.common.validator.ValidatorUtils; 
 | 
import com.zt.common.validator.group.DefaultGroup; 
 | 
import com.zt.core.context.User; 
 | 
import com.zt.core.context.UserContext; 
 | 
import com.zt.modules.sys.model.SysMenu; 
 | 
import com.zt.modules.sys.model.SysRole; 
 | 
import com.zt.modules.sys.model.SysRoleMenu; 
 | 
import com.zt.modules.sys.service.SysMenuService; 
 | 
import com.zt.modules.sys.service.SysRoleMenuService; 
 | 
import com.zt.modules.sys.service.SysRoleService; 
 | 
import com.zt.security.service.ShiroService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.apache.shiro.authz.annotation.RequiresPermissions; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 菜单管理 
 | 
 * 
 | 
 * @author hehz 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("/sys/menu") 
 | 
@Api(tags = "菜单管理") 
 | 
public class SysMenuController { 
 | 
    @Autowired 
 | 
    private SysMenuService sysMenuService; 
 | 
    @Autowired 
 | 
    private ShiroService shiroService; 
 | 
  
 | 
    @GetMapping("nav") 
 | 
    @ApiOperation("导航") 
 | 
    public Result<List<SysMenu>> nav() { 
 | 
        List<SysMenu> list = sysMenuService.getCurrentUserMenuNav(); 
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("getSystems") 
 | 
    @ApiOperation("所有系统") 
 | 
    public Result<List<SysMenu>> getSystems(Integer type) { 
 | 
        List<SysMenu> list = sysMenuService.getSystems(type); 
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("ofUser") 
 | 
    @ApiOperation("我的菜单和按钮") 
 | 
    public Result<List<SysMenu>> my() { 
 | 
        List<SysMenu> list = sysMenuService.getCurrentUserMenu(); 
 | 
  
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("tree") 
 | 
    @ApiOperation("所有列表树") 
 | 
    @RequiresPermissions("sys:menu:list") 
 | 
    public Result<List<SysMenu>> list() { 
 | 
        List<SysMenu> list = sysMenuService.getAllTree(); 
 | 
  
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("treeWithoutButtons") 
 | 
    @ApiOperation("所有列表树-不包含按钮") 
 | 
    @RequiresPermissions("sys:menu:list") 
 | 
    public Result<List<SysMenu>> 
 | 
    list2() { 
 | 
        List<SysMenu> list = sysMenuService.getAllTreeWithoutButtons(); 
 | 
  
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("systems") 
 | 
    @ApiOperation("所有系统") 
 | 
    @RequiresPermissions("sys:menu:list") 
 | 
    public Result<List<SysMenu>> listSystem() { 
 | 
        List<SysMenu> list = sysMenuService.getAllSystemTree(); 
 | 
        return Result.ok(list); 
 | 
    } 
 | 
  
 | 
    @GetMapping("{id}") 
 | 
    @ApiOperation("信息") 
 | 
    //@RequiresPermissions("sys:menu:info") 
 | 
    public Result<SysMenu> get(@PathVariable("id") Long id) { 
 | 
        SysMenu data = sysMenuService.get(id); 
 | 
        return Result.ok(data); 
 | 
    } 
 | 
  
 | 
    @PostMapping 
 | 
    @ApiOperation("新增") 
 | 
    @LogOperation("菜单管理模块--->新增") 
 | 
    //@RequiresPermissions(Constant.Permissions.SUPER_ADMIN) 
 | 
    public Result insert(@RequestBody SysMenu entity) { 
 | 
        // 效验数据 
 | 
        ValidatorUtils.validateEntity(entity, DefaultGroup.class); 
 | 
  
 | 
        sysMenuService.insert(entity); 
 | 
        return Result.ok(); 
 | 
    } 
 | 
  
 | 
    @PutMapping 
 | 
    @ApiOperation("修改") 
 | 
    @LogOperation("菜单管理模块--->修改") 
 | 
    //@RequiresPermissions(Constant.Permissions.SUPER_ADMIN) 
 | 
    public Result update(@RequestBody SysMenu entity) { 
 | 
        // 效验数据 
 | 
        ValidatorUtils.validateEntity(entity, DefaultGroup.class); 
 | 
  
 | 
        sysMenuService.update(entity); 
 | 
  
 | 
        return Result.ok(); 
 | 
    } 
 | 
  
 | 
    @DeleteMapping 
 | 
    @ApiOperation("删除") 
 | 
    @LogOperation("菜单管理模块--->删除") 
 | 
    //@RequiresPermissions(Constant.Permissions.SUPER_ADMIN) 
 | 
    public Result delete(@RequestBody Long[] ids) { 
 | 
        // 效验数据 
 | 
        AssertUtils.isArrayEmpty(ids, "ids"); 
 | 
  
 | 
        for (Long id : ids) { 
 | 
            sysMenuService.delete(id); 
 | 
        } 
 | 
  
 | 
        return Result.ok(); 
 | 
    } 
 | 
  
 | 
} 
 |