From a2151e2240e3ce58d59ac09a16a74fc358c6c4a0 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sun, 24 Mar 2024 23:06:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/atguigu/constant/MessageConstant.java | 1 + .../manger/controller/SysMenuController.java | 7 +++++++ .../spzx/manger/mapper/SysMenuMapper.java | 15 +++++++++++++++ .../spzx/manger/service/SysMenuService.java | 7 +++++++ .../manger/service/impl/SysMenuServiceImpl.java | 15 +++++++++++++++ .../src/main/resources/mapper/SysMenuMapper.xml | 16 ++++++++++++++++ 6 files changed, 61 insertions(+) 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} + +