mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-10 21:19:00 +08:00
🐛 Fixing a bug. del menu s
This commit is contained in:
1 parent
79161ac89e
commit
4d81964bd0
4 files changed
+26
-15
No files matched your search
@@ -40,6 +40,12 @@
|
||||
<artifactId>pigx-common-core</artifactId>
|
||||
<version>2.0.0</version>
|
||||
</dependency>
|
||||
<!---依赖扩展缓存-->
|
||||
<dependency>
|
||||
<groupId>com.pig4cloud</groupId>
|
||||
<artifactId>pigx-common-cache</artifactId>
|
||||
<version>2.0.0</version>
|
||||
</dependency>
|
||||
<!--安全模块-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+2
-1
@@ -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<SysMenu> {
|
||||
* @param id 菜单ID
|
||||
* @return 成功、失败
|
||||
*/
|
||||
Boolean removeMenuById(Integer id);
|
||||
R removeMenuById(SysMenu id);
|
||||
|
||||
/**
|
||||
* 更新菜单信息
|
||||
|
||||
+16
-12
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -58,20 +60,22 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CacheEvict(value = "menu_details", allEntries = true)
|
||||
public Boolean removeMenuById(Integer id) {
|
||||
public R removeMenuById(SysMenu id) {
|
||||
// 查询父节点为当前节点的节点
|
||||
List<Integer> menuIdList = this.list(Wrappers.<SysMenu>query()
|
||||
.lambda().eq(SysMenu::getParentId, id))
|
||||
.stream().map(SysMenu::getMenuId)
|
||||
.collect(Collectors.toList());
|
||||
List<SysMenu> menuList = this.list(Wrappers.<SysMenu>query()
|
||||
.lambda().eq(SysMenu::getParentId, id));
|
||||
if (CollUtil.isNotEmpty(menuList)) {
|
||||
return R.builder()
|
||||
.code(CommonConstants.FAIL)
|
||||
.msg("菜单含有下级不能删除").build();
|
||||
}
|
||||
|
||||
sysRoleMenuMapper
|
||||
.delete(Wrappers.<SysRoleMenu>query()
|
||||
.lambda().eq(SysRoleMenu::getMenuId, id));
|
||||
|
||||
//删除关联ROLE_MENU 数据
|
||||
menuIdList.add(id);
|
||||
menuIdList.forEach(menu -> sysRoleMenuMapper
|
||||
.delete(Wrappers.<SysRoleMenu>query()
|
||||
.lambda().eq(SysRoleMenu::getMenuId, menu)));
|
||||
//删除当前菜单及其子菜单
|
||||
return this.removeByIds(menuIdList);
|
||||
return new R(this.removeById(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user