package org.rcisoft.sys.menu.controller; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.rcisoft.common.controller.ResponseController; import org.rcisoft.common.model.CommonMenuModel; import org.rcisoft.common.model.TreeViewModel; import org.rcisoft.core.constant.MessageConstant; import org.rcisoft.core.model.PersistModel; import org.rcisoft.core.result.Result; import org.rcisoft.sys.menu.entity.SysMenu; import org.rcisoft.sys.menu.service.SysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** * Created by lcy on 16/7/30. */ @RestController @RequestMapping("/menu") public class SysMenuController extends ResponseController { @Autowired private SysMenuService sysMenuServiceImpl; @ApiOperation(value="构建 treeView", notes="构建 treeView") @GetMapping("queryMenusForTree") public List<TreeViewModel> queryTreeView(){ return sysMenuServiceImpl.queryMenuTree(); } @ApiOperation(value="根据角色ID获取菜单", notes="根据角色ID获取菜单(已获取权限的为选中状态)") @ApiImplicitParam(name = "id", value = "角色ID", required = true, dataType = "varchar", paramType = "path") @GetMapping("queryMenusOfRolePermission") public List<TreeViewModel> queryMenusOfRolePermission(String id){ return sysMenuServiceImpl.queryMenuTreeForSelectedByRP(id); } @ApiOperation(value="根据id 查询 menu", notes="根据id 查询 menu") @ApiImplicitParam(name = "id", value = "businessId", required = true, dataType = "Integer", paramType = "path") @GetMapping("queryMenuById/{id}") public Result queryMenuById(@PathVariable("id") String id){ SysMenu menu = sysMenuServiceImpl.queryMenuById(id); return Result.builder(new PersistModel(1), MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, menu); } @ApiOperation(value="增加菜单code", notes="true:合法;false:不合法;不能有其它的输出") @ApiImplicitParam(name = "menuCode", value = "菜单编号", required = false, dataType = "varchar") @PostMapping("queryMenuCodeValidate") public String queryDeptCodeValidate(@RequestParam("menuCode") String menuCode){ return "true"; } @ApiOperation(value="增加菜单", notes="增加菜单") @ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = true, dataType = "Integer", paramType = "path"), @ApiImplicitParam(name = "parentIds", value = "所有父级编号", required = false, dataType = "varchar"), @ApiImplicitParam(name = "name", value = "名称", required = false, dataType = "varchar"), @ApiImplicitParam(name = "href", value = "链接", required = false, dataType = "varchar"), @ApiImplicitParam(name = "target", value = "目标( mainFrame、_blank、_self、_parent、_top)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "icon", value = "图标", required = false, dataType = "varchar"), @ApiImplicitParam(name = "sort", value = "排序", required = false, dataType = "Integer"), @ApiImplicitParam(name = "isShow", value = "是否在菜单中显示(1:显示;0:不显示)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "isActiviti", value = "是否同步到工作流(1:同步;0:不同步)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "permission", value = "权限标识", required = false, dataType = "varchar"), @ApiImplicitParam(name = "parentId", value = "parent id", required = false, dataType = "varchar"), @ApiImplicitParam(name = "code", value = "菜单编号", required = false, dataType = "varchar"), @ApiImplicitParam(name = "modelId", value = "model ID in sys_model", required = false, dataType = "varchar"), @ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")}) @PostMapping("adminLog/menuAdd") public Result menuAdd(@Valid SysMenu menu, BindingResult br){ PersistModel persistModel = sysMenuServiceImpl.persistMenu(menu,getToken()); return Result.builder(persistModel, MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, menu); } @ApiOperation(value="修改菜单", notes="修改菜单") @ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = true, dataType = "Integer", paramType = "path"), @ApiImplicitParam(name = "parentIds", value = "所有父级编号", required = false, dataType = "varchar"), @ApiImplicitParam(name = "name", value = "名称", required = false, dataType = "varchar"), @ApiImplicitParam(name = "href", value = "链接", required = false, dataType = "varchar"), @ApiImplicitParam(name = "target", value = "目标( mainFrame、_blank、_self、_parent、_top)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "icon", value = "图标", required = false, dataType = "varchar"), @ApiImplicitParam(name = "sort", value = "排序", required = false, dataType = "Integer"), @ApiImplicitParam(name = "isShow", value = "是否在菜单中显示(1:显示;0:不显示)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "isActiviti", value = "是否同步到工作流(1:同步;0:不同步)", required = false, dataType = "varchar"), @ApiImplicitParam(name = "permission", value = "权限标识", required = false, dataType = "varchar"), @ApiImplicitParam(name = "parentId", value = "parent id", required = false, dataType = "varchar"), @ApiImplicitParam(name = "code", value = "菜单编号", required = false, dataType = "varchar"), @ApiImplicitParam(name = "modelId", value = "model ID in sys_model", required = false, dataType = "varchar"), @ApiImplicitParam(name = "remarks", value = "备注", required = false, dataType = "varchar")}) @PostMapping("adminLog/menuUpdate") public Result menuUpdate(@Valid SysMenu menu, BindingResult br){ PersistModel persistModel = sysMenuServiceImpl.mergeMenu(menu,getToken()); return Result.builder(persistModel, MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, menu); } @ApiOperation(value="删除菜单", notes="根据id删除菜单") @ApiImplicitParam(name = "id", value = "businessId", required = true, dataType = "varchar", paramType = "path") @PostMapping("adminLog/menuDelete/{id}") public Result menuDelete(@PathVariable("id") String id){ PersistModel persistModel = sysMenuServiceImpl.removeMenu(id,getToken()); return Result.builder(persistModel, MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, id); } @ApiOperation(value="列出菜单", notes="列出菜单") @GetMapping("/queryMenus") public Result queryMenus(){ List<SysMenu> menus = sysMenuServiceImpl.queryMenus(); return Result.builder(new PersistModel(1), MessageConstant.MESSAGE_ALERT_SUCCESS, MessageConstant.MESSAGE_ALERT_ERROR, menus); } }