| | |
| | | import com.oying.modules.system.domain.Menu; |
| | | import com.oying.modules.system.domain.dto.MenuQueryCriteria; |
| | | import com.oying.modules.system.domain.dto.MenuVo; |
| | | import com.oying.utils.R; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @GetMapping(value = "/build") |
| | | @ApiOperation("获取前端所需菜单") |
| | | public ResponseEntity<List<MenuVo>> buildMenus(){ |
| | | public ResponseEntity<Object> buildMenus() { |
| | | List<Menu> menuList = menuService.findByUser(SecurityUtils.getCurrentUserId()); |
| | | List<Menu> menus = menuService.buildTree(menuList); |
| | | return new ResponseEntity<>(menuService.buildMenus(menus),HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(menuService.buildMenus(menus)), HttpStatus.OK); |
| | | } |
| | | |
| | | @ApiOperation("返回全部的菜单") |
| | | @GetMapping(value = "/lazy") |
| | | @PreAuthorize("@el.check('menu:list','roles:list')") |
| | | public ResponseEntity<List<Menu>> queryAllMenu(@RequestParam Long pid){ |
| | | return new ResponseEntity<>(menuService.getMenus(pid),HttpStatus.OK); |
| | | public ResponseEntity<Object> queryAllMenu(@RequestParam Long pid) { |
| | | return new ResponseEntity<>(R.success(menuService.getMenus(pid)), HttpStatus.OK); |
| | | } |
| | | |
| | | @ApiOperation("根据菜单ID返回所有子节点ID,包含自身ID") |
| | |
| | | menuSet.add(menuService.getById(id)); |
| | | menuSet = menuService.getChildMenus(menuList, menuSet); |
| | | Set<Long> ids = menuSet.stream().map(Menu::getId).collect(Collectors.toSet()); |
| | | return new ResponseEntity<>(ids,HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(ids), HttpStatus.OK); |
| | | } |
| | | |
| | | @GetMapping |
| | | @ApiOperation("查询菜单") |
| | | @PreAuthorize("@el.check('menu:list')") |
| | | public ResponseEntity<PageResult<Menu>> queryMenu(MenuQueryCriteria criteria) throws Exception { |
| | | public ResponseEntity<Object> queryMenu(MenuQueryCriteria criteria) throws Exception { |
| | | List<Menu> menuList = menuService.queryAll(criteria, true); |
| | | return new ResponseEntity<>(PageUtil.toPage(menuList),HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(PageUtil.toPage(menuList)), HttpStatus.OK); |
| | | } |
| | | |
| | | @ApiOperation("查询菜单:根据ID获取同级与上级数据") |
| | | @PostMapping("/superior") |
| | | @PreAuthorize("@el.check('menu:list')") |
| | | public ResponseEntity<List<Menu>> getMenuSuperior(@RequestBody List<Long> ids) { |
| | | public ResponseEntity<Object> getMenuSuperior(@RequestBody List<Long> ids) { |
| | | Set<Menu> menus = new LinkedHashSet<>(); |
| | | if(CollectionUtil.isNotEmpty(ids)){ |
| | | for (Long id : ids) { |
| | |
| | | } |
| | | // 编辑菜单时不显示自己以及自己下级的数据,避免出现PID数据环形问题 |
| | | menus = menus.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); |
| | | return new ResponseEntity<>(menuService.buildTree(new ArrayList<>(menus)),HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(menuService.buildTree(new ArrayList<>(menus))), HttpStatus.OK); |
| | | } |
| | | return new ResponseEntity<>(menuService.getMenus(null),HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(menuService.getMenus(null)), HttpStatus.OK); |
| | | } |
| | | |
| | | @Log("新增菜单") |
| | |
| | | throw new BadRequestException("A new "+ ENTITY_NAME +" cannot already have an ID"); |
| | | } |
| | | menuService.create(resources); |
| | | return new ResponseEntity<>(HttpStatus.CREATED); |
| | | return new ResponseEntity<>(R.success(), HttpStatus.CREATED); |
| | | } |
| | | |
| | | @Log("修改菜单") |
| | |
| | | @PreAuthorize("@el.check('menu:edit')") |
| | | public ResponseEntity<Object> updateMenu(@Validated(Menu.Update.class) @RequestBody Menu resources){ |
| | | menuService.update(resources); |
| | | return new ResponseEntity<>(HttpStatus.NO_CONTENT); |
| | | return new ResponseEntity<>(R.success(), HttpStatus.NO_CONTENT); |
| | | } |
| | | |
| | | @Log("删除菜单") |
| | |
| | | menuSet = menuService.getChildMenus(menuList, menuSet); |
| | | } |
| | | menuService.delete(menuSet); |
| | | return new ResponseEntity<>(HttpStatus.OK); |
| | | return new ResponseEntity<>(R.success(), HttpStatus.OK); |
| | | } |
| | | } |