package com.mzl.flower.web.system; import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.dto.request.system.CreateMenuDTO; import com.mzl.flower.dto.request.system.UpdateMenuDTO; import com.mzl.flower.dto.response.system.MenuDTO; import com.mzl.flower.dto.response.system.MenuTreeDTO; import com.mzl.flower.entity.system.Menu; import com.mzl.flower.service.system.MenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/api/menu") @Api(value = "菜单管理", tags = "菜单管理") @Validated public class MenuController extends BaseController { @Autowired private MenuService menuService; @GetMapping("/list") @ApiOperation(value = "查询菜单列表") public ResponseEntity>> searchMenuList() { return returnData(R.SUCCESS.getCode(), menuService.searchOperationMenu()); } @PostMapping("/list/new") @ApiOperation(value = "新增菜单") public ResponseEntity addTenantMenu(@RequestBody @Validated CreateMenuDTO dto) { if (StringUtils.isNotBlank(dto.getParentId()) && !"-1".equals(dto.getParentId())) { Menu menu = menuService.getMenu(dto.getParentId()); if (menu == null) { throw new ValidationException("父菜单不存在"); } } menuService.addMenu(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/view") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "菜单ID", required = true, dataType = "String", paramType = "query") }) @ApiOperation(value = "查询菜单详情") public ResponseEntity> getMenu(String id) { return returnData(R.SUCCESS.getCode(), menuService.getMenuDetail(id)); } @PostMapping("/list/edit") @ApiOperation(value = "编辑菜单") public ResponseEntity updateTenantMenu(@RequestBody @Validated UpdateMenuDTO dto) { if (StringUtils.isNotBlank(dto.getParentId()) && !"-1".equals(dto.getParentId())) { Menu menu = menuService.getMenu(dto.getParentId()); if (menu == null) { throw new ValidationException("父菜单不存在"); } } menuService.updateMenu(dto); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list/delete") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "菜单ID", required = true, dataType = "String", paramType = "query") }) @ApiOperation(value = "删除菜单") public ResponseEntity deleteTenantMenu(String id) { menuService.deleteMenu(id); return returnData(R.SUCCESS.getCode(), null); } }