From 8bfad0448e75042eeb967fe21e686532c8b9b2f3 Mon Sep 17 00:00:00 2001 From: zc <2256222053@qq.com> Date: Fri, 23 Aug 2024 16:32:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=97=B6,=E5=90=8C=E6=AD=A5=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=A7=92=E8=89=B2=E8=8F=9C=E5=8D=95=E5=85=B3=E8=81=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMenuServiceImpl.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/youlai/system/service/impl/SysMenuServiceImpl.java b/src/main/java/com/youlai/system/service/impl/SysMenuServiceImpl.java index bccde913..eea45958 100644 --- a/src/main/java/com/youlai/system/service/impl/SysMenuServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/SysMenuServiceImpl.java @@ -20,6 +20,7 @@ import com.youlai.system.mapper.SysMenuMapper; import com.youlai.system.model.bo.RouteBO; import com.youlai.system.model.entity.GenConfig; import com.youlai.system.model.entity.SysMenu; +import com.youlai.system.model.entity.SysRoleMenu; import com.youlai.system.model.form.MenuForm; import com.youlai.system.model.query.MenuQuery; import com.youlai.system.model.vo.MenuVO; @@ -31,6 +32,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; @@ -347,19 +349,26 @@ public class SysMenuServiceImpl extends ServiceImpl impl */ @Override @CacheEvict(cacheNames = "menu", key = "'routes'") + @Transactional(rollbackFor = Exception.class) public boolean deleteMenu(Long id) { - boolean result = this.remove(new LambdaQueryWrapper() - .eq(SysMenu::getId, id) - .or() - .apply("CONCAT (',',tree_path,',') LIKE CONCAT('%,',{0},',%')", id)); - - + List sysMenuListIds = this.list( + new LambdaQueryWrapper() + .select(SysMenu::getId) + .eq(SysMenu::getId, id) + .or() + .apply("CONCAT (',',tree_path,',') LIKE CONCAT('%,',{0},',%')", id) + ).stream() + .map(SysMenu::getId) + .collect(Collectors.toList()); + boolean result = this.removeBatchByIds(sysMenuListIds); // 刷新角色权限缓存 if (result) { roleMenuService.refreshRolePermsCache(); + //删除角色菜单关联数据 + roleMenuService.remove(new LambdaQueryWrapper() + .in(SysRoleMenu::getMenuId, sysMenuListIds)); } return result; - } /**