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}
+
+