diff --git a/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java b/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java index cc767ce..7d96c14 100644 --- a/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java +++ b/spzx-common/common-util/src/main/java/com/atguigu/constant/MessageConstant.java @@ -19,4 +19,5 @@ public class MessageConstant { public static final String REQUEST_NOT_EMPTY = "请求不为空"; public static final String UPDATE_ID_IS_NOT_EMPTY = "删除id不能为空"; public static final String DELETE_ID_IS_NOT_EMPTY = "修改id不能为空"; + public static final String MENU_IS_NOT_EXIST = "菜单不存在"; } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysMenuController.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysMenuController.java index bd85ab8..d91f727 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysMenuController.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/controller/SysMenuController.java @@ -39,4 +39,11 @@ public class SysMenuController { sysMenuService.updateById(sysMenu); return Result.success(); } + + @Operation(summary = "删除菜单", description = "删除菜单") + @PutMapping("removeById/{id}") + public Result removeById(@PathVariable Long id) { + sysMenuService.removeById(id); + return Result.success(); + } } \ No newline at end of file diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysMenuMapper.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysMenuMapper.java index fafb88c..dc6e3ad 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysMenuMapper.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/mapper/SysMenuMapper.java @@ -27,4 +27,19 @@ public interface SysMenuMapper { * @param sysMenu 系统菜单实体类 */ void updateById(SysMenu sysMenu); + + /** + * 根据id查询菜单 + * + * @param id 菜单id + * @return 是否存在 + */ + int countByParentId(Long id); + + /** + * 根据id删除菜单 + * + * @param id 菜单id + */ + void deleteById(Long id); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysMenuService.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysMenuService.java index 94e1b87..f04967c 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysMenuService.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/SysMenuService.java @@ -25,4 +25,11 @@ public interface SysMenuService { * @param sysMenu 系统菜单实体类 */ void updateById(SysMenu sysMenu); + + /** + * 删除菜单 + * + * @param id 菜单id + */ + void removeById(Long id); } diff --git a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysMenuServiceImpl.java b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysMenuServiceImpl.java index fe8c891..48e8ad4 100644 --- a/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysMenuServiceImpl.java +++ b/spzx-manager/src/main/java/com/atguigu/spzx/manger/service/impl/SysMenuServiceImpl.java @@ -1,6 +1,7 @@ package com.atguigu.spzx.manger.service.impl; import com.atguigu.constant.MessageConstant; +import com.atguigu.exception.BunnyException; import com.atguigu.spzx.manger.mapper.SysMenuMapper; import com.atguigu.spzx.manger.service.SysMenuService; import com.atguigu.spzx.model.entity.system.SysMenu; @@ -49,4 +50,18 @@ public class SysMenuServiceImpl implements SysMenuService { emptyUtil.isEmpty(sysMenu.getId(), MessageConstant.DELETE_ID_IS_NOT_EMPTY); sysMenuMapper.updateById(sysMenu); } + + /** + * 删除菜单 + * + * @param id 菜单id + */ + @Override + public void removeById(Long id) { + int count = sysMenuMapper.countByParentId(id); // 先查询是否存在子菜单,如果存在不允许进行删除 + if (count > 0) { + throw new BunnyException(MessageConstant.MENU_IS_NOT_EXIST); + } + sysMenuMapper.deleteById(id); + } } diff --git a/spzx-manager/src/main/resources/mapper/SysMenuMapper.xml b/spzx-manager/src/main/resources/mapper/SysMenuMapper.xml index 5659529..7502c2c 100644 --- a/spzx-manager/src/main/resources/mapper/SysMenuMapper.xml +++ b/spzx-manager/src/main/resources/mapper/SysMenuMapper.xml @@ -37,6 +37,22 @@ where id = #{id}; + + + select count(id) + from sys_menu + where parent_id = #{parentId} + and is_deleted = 0 + + + + + update sys_menu + set update_time = now(), + is_deleted = 1 + where id = #{id} + +