diff --git a/pigx-common/pigx-common-security/pom.xml b/pigx-common/pigx-common-security/pom.xml index 9f43c2c22..75fa28f3d 100644 --- a/pigx-common/pigx-common-security/pom.xml +++ b/pigx-common/pigx-common-security/pom.xml @@ -40,6 +40,12 @@ pigx-common-core 2.0.0 + + + com.pig4cloud + pigx-common-cache + 2.0.0 + org.springframework.cloud diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java index 029f2978b..b52dcf5bb 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/MenuController.java @@ -128,8 +128,8 @@ public class MenuController { @SysLog("删除菜单") @DeleteMapping("/{id}") @PreAuthorize("@pms.hasPermission('sys_menu_del')") - public R removeById(@PathVariable Integer id) { - return new R<>(sysMenuService.removeMenuById(id)); + public R removeById(@PathVariable SysMenu id) { + return sysMenuService.removeMenuById(id); } /** diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java index 22f2930bb..8d4673145 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java @@ -23,6 +23,7 @@ package com.pig4cloud.pigx.admin.service; import com.baomidou.mybatisplus.extension.service.IService; import com.pig4cloud.pigx.admin.api.entity.SysMenu; import com.pig4cloud.pigx.admin.api.vo.MenuVO; +import com.pig4cloud.pigx.common.core.util.R; import java.util.List; @@ -49,7 +50,7 @@ public interface SysMenuService extends IService { * @param id 菜单ID * @return 成功、失败 */ - Boolean removeMenuById(Integer id); + R removeMenuById(SysMenu id); /** * 更新菜单信息 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java index 0db5a86f8..c70bd4464 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.admin.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysMenu; @@ -27,6 +28,8 @@ import com.pig4cloud.pigx.admin.api.vo.MenuVO; import com.pig4cloud.pigx.admin.mapper.SysMenuMapper; import com.pig4cloud.pigx.admin.mapper.SysRoleMenuMapper; import com.pig4cloud.pigx.admin.service.SysMenuService; +import com.pig4cloud.pigx.common.core.constant.CommonConstants; +import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -34,7 +37,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; -import java.util.stream.Collectors; /** * @@ -58,20 +60,22 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) @CacheEvict(value = "menu_details", allEntries = true) - public Boolean removeMenuById(Integer id) { + public R removeMenuById(SysMenu id) { // 查询父节点为当前节点的节点 - List menuIdList = this.list(Wrappers.query() - .lambda().eq(SysMenu::getParentId, id)) - .stream().map(SysMenu::getMenuId) - .collect(Collectors.toList()); + List menuList = this.list(Wrappers.query() + .lambda().eq(SysMenu::getParentId, id)); + if (CollUtil.isNotEmpty(menuList)) { + return R.builder() + .code(CommonConstants.FAIL) + .msg("菜单含有下级不能删除").build(); + } + + sysRoleMenuMapper + .delete(Wrappers.query() + .lambda().eq(SysRoleMenu::getMenuId, id)); - //删除关联ROLE_MENU 数据 - menuIdList.add(id); - menuIdList.forEach(menu -> sysRoleMenuMapper - .delete(Wrappers.query() - .lambda().eq(SysRoleMenu::getMenuId, menu))); //删除当前菜单及其子菜单 - return this.removeByIds(menuIdList); + return new R(this.removeById(id)); } @Override
@@ -58,20 +60,22 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) @CacheEvict(value = "menu_details", allEntries = true) - public Boolean removeMenuById(Integer id) { + public R removeMenuById(SysMenu id) { // 查询父节点为当前节点的节点 - List menuIdList = this.list(Wrappers.query() - .lambda().eq(SysMenu::getParentId, id)) - .stream().map(SysMenu::getMenuId) - .collect(Collectors.toList()); + List menuList = this.list(Wrappers.query() + .lambda().eq(SysMenu::getParentId, id)); + if (CollUtil.isNotEmpty(menuList)) { + return R.builder() + .code(CommonConstants.FAIL) + .msg("菜单含有下级不能删除").build(); + } + + sysRoleMenuMapper + .delete(Wrappers.query() + .lambda().eq(SysRoleMenu::getMenuId, id)); - //删除关联ROLE_MENU 数据 - menuIdList.add(id); - menuIdList.forEach(menu -> sysRoleMenuMapper - .delete(Wrappers.query() - .lambda().eq(SysRoleMenu::getMenuId, menu))); //删除当前菜单及其子菜单 - return this.removeByIds(menuIdList); + return new R(this.removeById(id)); } @Override