package com.terra.system.controller.sys; import com.terra.system.annotation.SysLog; import com.terra.system.controller.all.BaseController; import com.terra.system.entity.all.ResponseMsg; import com.terra.system.entity.sys.MenuEntity; import com.terra.system.entity.sys.UserEntity; import com.terra.system.helper.StringHelper; import com.terra.system.service.all.PermsService; import com.terra.system.service.sys.MenuService; import com.terra.system.service.sys.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import javax.annotation.Resource; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * 菜单 * @author sws * @date 2022-09-23 */ @Api(tags= "运维管理\\菜单管理") @RestController @RequestMapping("/menu") public class MenuController extends BaseController { @Resource MenuService menuService; @Resource TokenService tokenService; @Resource PermsService permsService; @SysLog() @ApiOperation(value = "插入一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "MenusEntity", paramType = "body", example = "") }) @PostMapping(value = "/insertMenu", produces = "application/json; charset=UTF-8") public ResponseMsg insertMenu(@RequestBody MenuEntity entity, HttpServletRequest req) { try { UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { entity.setCreateUser(ue.getId()); } int count = menuService.insertMenu(entity); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "插入多条") @ApiImplicitParams({ @ApiImplicitParam(name = "list", value = "实体类集合", dataType = "MenusEntity", paramType = "body", example = "") }) @PostMapping(value = "/insertMenus", produces = "application/json; charset=UTF-8") public ResponseMsg insertMenus(@RequestBody List list, HttpServletRequest req) { try { UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { for (MenuEntity entity : list) { entity.setCreateUser(ue.getId()); } } int count = menuService.insertMenus(list); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "删除一条") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/deleteMenu") public ResponseMsg deleteMenu(int id) { try { int count = menuService.deleteMenu(id); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "删除多条") @ApiImplicitParams({ @ApiImplicitParam(name = "ids", value = "ID数组", dataType = "List", paramType = "query", example = "1,2") }) @GetMapping(value = "/deleteMenus") public ResponseMsg deleteMenus(@RequestParam List ids) { try { if (ids == null || ids.isEmpty()) { return fail("id数组不能为空", -1); } int count = menuService.deleteMenus(ids); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "更新一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "MenusEntity", paramType = "body", example = "") }) @ResponseBody @PostMapping(value = "/updateMenu", produces = "application/json; charset=UTF-8") public ResponseMsg updateMenu(@RequestBody MenuEntity entity, HttpServletRequest req) { try { UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { entity.setUpdateUser(ue.getId()); } int count = menuService.updateMenu(entity); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "更新多条") @ApiImplicitParams({ @ApiImplicitParam(name = "list", value = "实体类集合", dataType = "MenusEntity", paramType = "body", example = "") }) @ResponseBody @PostMapping(value = "/updateMenus", produces = "application/json; charset=UTF-8") public ResponseMsg updateMenus(@RequestBody List list, HttpServletRequest req) { try { UserEntity ue = tokenService.getCurrentUser(req); if (ue != null) { for (MenuEntity entity : list) { entity.setUpdateUser(ue.getId()); } } int count = menuService.updateMenus(list); if (count > 0) { permsService.clearPermsCache(); } return success(count); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "根据ID查询") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectMenu") public ResponseMsg selectMenu(int id) { try { MenuEntity menuEntity = menuService.selectMenu(id); return success(menuEntity); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "查询所有") @GetMapping(value = "/selectMenuAll") public ResponseMsg> selectMenuAll() { try { List list = menuService.selectMenuAll(); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "递归查询") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "菜单名称", dataType = "String", paramType = "query", required = false, example = "管道基础大数据平台") }) @GetMapping(value = "/selectMenuRecursive") public ResponseMsg selectMenuRecursive(String name) { try { if (StringHelper.isEmpty(name)) { name = "管道基础大数据平台"; } List list = menuService.selectMenuRecursive(name); return success(list); } catch (Exception ex) { return fail(ex, null); } } }