package edu.travel.tenant.web; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import edu.travel.remote.feign.mode.dto.tenant.AddMenuDto; import edu.travel.remote.feign.mode.dto.tenant.SysMenuPageDto; import edu.travel.remote.feign.mode.vo.tenant.AddMenuVo; import edu.travel.remote.feign.mode.vo.tenant.MenuTreeVo; import edu.travel.resp.BaseResponse; import edu.travel.resp.PageResponse; import edu.travel.tenant.SysMenuRemoteController; import edu.travel.tenant.entity.SysMenu; import edu.travel.tenant.service.ISysMenuService; import edu.travel.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.*; /** * SysMenuController 类。 *

* 描述: * * @author huangwenwen * @date 2025/2/6 */ @RestController @RequestMapping("/sysMenu") public class SysMenuController extends BaseController implements SysMenuRemoteController { @Autowired private ISysMenuService sysMenuService; /** * 新增菜单 * * @param addMenuDto * @return */ @PostMapping("/addMenu") @PreAuthorize("hasRole('超级管理员')") public BaseResponse addMenu(@RequestBody AddMenuDto addMenuDto) { AddMenuVo addMenuVo = sysMenuService.addMenu(addMenuDto); return new BaseResponse<>(200,"sucess", addMenuVo); } /** * 删除菜单单个 * @param id * @return */ @PostMapping("/deleteMenuById") @PreAuthorize("hasRole('超级管理员')") public BaseResponse deleteMenuById(@RequestParam Long id) { Set longs = new HashSet<>(); longs.add(id); sysMenuService.deleteMenuByIds(longs); return new BaseResponse<>(200,"sucess",true); } /** * 删除菜单多个 * @param ids * @return */ @PostMapping("/deleteMenuByIds") @PreAuthorize("hasRole('超级管理员')") public BaseResponse deleteMenuByIds(@RequestBody List ids ){ HashSet set = new HashSet<>(ids); sysMenuService.deleteMenuByIds(set); return new BaseResponse<>(200,"sucess",true); } /** * 获取菜单分页树形列表 * @param sysMenuPageDto * @return */ @GetMapping("/getMenuTreeListAll") @PreAuthorize("hasRole('超级管理员')") public BaseResponse> getMenuTreeListAll(SysMenuPageDto sysMenuPageDto) { IPage page = new Page<>(sysMenuPageDto.getPageNum(), sysMenuPageDto.getPageSize()); IPage sysMenuIPage = sysMenuService.page(page, new LambdaQueryWrapper().eq(SysMenu::getDeleteFlag, 0).like(StringUtils.isNotBlank(sysMenuPageDto.getName()),SysMenu::getName,sysMenuPageDto.getName())); List treeList= sysMenuService.getMenuTreeListAll(sysMenuIPage.getRecords()); return PageResponse.out(200, "success", treeList, (int) sysMenuIPage.getTotal(), (int) sysMenuIPage.getSize()); } /** * 通过菜单id修改菜单 * @param updateMenuDto * @return */ @PostMapping("/updateMenuById") @PreAuthorize("hasRole('超级管理员')") public BaseResponse updateMenuById( @RequestBody AddMenuDto updateMenuDto) { sysMenuService.updateMenuById(updateMenuDto); return new BaseResponse<>(200,"sucess",true); } }