hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -30,21 +30,18 @@ @ApiOperation("新增菜单") @PostMapping("/save") // @PreAuthorize("hasAuthority('sys:menu:save')") public Result save(@Validated @RequestBody SysMenu sysMenu) { sysMenuService.save(sysMenu); GeneralRequest request = new GeneralRequest(); return Result.success(sysMenuService.getMenuTree(request)); public Result saveMenu(@Validated @RequestBody SysMenu sysMenu) { sysMenuService.saveMenu(sysMenu); return Result.build(200, "新增成功", Boolean.TRUE); } @ApiOperation("修改菜单信息") @PostMapping("/updateMenu") // @PreAuthorize("hasAuthority('sys:menu:update')") public Result<List<SysMenu>> updateMenu(@Validated @RequestBody SysMenu sysMenu) { //return Result.success(sysMenu); public Result<Boolean> updateMenu(@Validated @RequestBody SysMenu sysMenu) { sysMenuService.updateMenu(sysMenu); GeneralRequest request = new GeneralRequest(); return Result.build(200, "修改成功", sysMenuService.getMenuTree(request)); return Result.build(200, "修改成功", Boolean.TRUE); } @ApiOperation("获取用户有权限的所有菜单") hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
@@ -63,4 +63,5 @@ */ String batchDeleteMenu(List<Long> menuIds); Boolean saveMenu(SysMenu sysMenu); } hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -15,7 +15,7 @@ import com.mes.role.service.SysRoleMenuService; import com.mes.userinfo.entity.SysUser; import com.mes.userinfo.entity.SysUserRole; import com.mes.userinfo.mapper.SysUserRoleMapper; import com.mes.userinfo.service.SysUserRoleService; import com.mes.userinfo.service.SysUserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -41,7 +41,7 @@ SysUserService sysUserService; @Autowired SysUserRoleMapper sysUserRoleMapper; SysUserRoleService sysUserRoleService; @Autowired SysRoleMenuService sysRoleMenuService; @@ -64,12 +64,11 @@ .innerJoin(SysUser.class, SysUser::getId, SysUserRole::getUserId) .innerJoin(SysRoleMenu.class, SysRoleMenu::getRoleId, SysUserRole::getRoleId) .innerJoin(SysMenu.class, SysMenu::getId, SysRoleMenu::getMenuId) .eq(SysUser::getId, user.getId()) .like(StringUtils.isNotBlank(request.getKey()), SysMenu::getMenuName, request.getKey()) .eq(StringUtils.isNotBlank(request.getKey()), SysUser::getId, user.getId()) .orderByAsc(SysMenu::getListSort); // List<SysMenu> menuList = sysUserRoleMapper.selectJoinList(SysMenu.class, wrapper); List<SysMenu> menuList = sysUserRoleService.selectJoinList(SysMenu.class, wrapper); log.info("userinfos:{}", menuList); return create(menuList); } @@ -114,6 +113,15 @@ return "批量删除成功"; } @Override public Boolean saveMenu(SysMenu sysMenu) { this.save(sysMenu); SysUser user = UserInfoUtils.get(); SysUserRole one = sysUserRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, user.getId())); sysRoleMenuService.save(new SysRoleMenu(one.getRoleId(), sysMenu.getId())); return Boolean.TRUE; } /** * 将数据库中查询出来的list集合传入此方法即可获得排成树形结构的list集合 @@ -127,7 +135,7 @@ .map(item -> { item.setChildren(getChildren(item, lists)); return item; }).collect(Collectors.toList()); }).sorted((o1, o2) -> o1.getListSort() - o2.getListSort()).collect(Collectors.toList()); return deptTreeList; } hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,6 +17,7 @@ * @since 2024-04-11 */ @Data @AllArgsConstructor @EqualsAndHashCode(callSuper = false) public class SysRoleMenu implements Serializable { hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -112,18 +112,14 @@ return "success"; } List<SysRoleMenu> roleMenuList = menuList.stream().map(menu -> { SysRoleMenu roleMenu = new SysRoleMenu(); roleMenu.setRoleId(roleId); roleMenu.setMenuId(menu.getId()); SysRoleMenu roleMenu = new SysRoleMenu(roleId,menu.getId()); return roleMenu; }).collect(Collectors.toList()); // 使用流处理菜单列表,提取 children 的 id,并设置到 SysRoleMenu 中 List<SysRoleMenu> childrenList = menuList.stream() .flatMap(menu -> menu.getChildren().stream()) // 扁平化处理 children 列表 .map(child -> { SysRoleMenu roleMenu = new SysRoleMenu(); roleMenu.setRoleId(roleId); roleMenu.setMenuId(child.getId()); // 设置 child 的 id 到 menuId SysRoleMenu roleMenu = new SysRoleMenu(roleId,child.getId()); return roleMenu; }) .collect(Collectors.toList()); hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -108,7 +108,7 @@ public String saveUser(SysUserVO user) { log.info("保存用户信息"); // 默认密码 String password = passwordEncoder.encode(Const.DEFULT_PASSWORD); String password = passwordEncoder.encode(user.getPassword()); user.setPassword(password); SysUser sysUser = new SysUser(); BeanUtils.copyProperties(user, sysUser);