|
@@ -2,12 +2,16 @@ package com.fdkankan.manage.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fdkankan.manage.entity.SysMenu;
|
|
|
import com.fdkankan.manage.entity.SysRoleMenu;
|
|
|
import com.fdkankan.manage.mapper.ISysRoleMenuMapper;
|
|
|
+import com.fdkankan.manage.service.ISysMenuService;
|
|
|
import com.fdkankan.manage.service.ISysRoleMenuService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -21,6 +25,9 @@ import java.util.List;
|
|
|
@Service
|
|
|
public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysRoleMenu> implements ISysRoleMenuService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ ISysMenuService sysMenuService;
|
|
|
+
|
|
|
@Override
|
|
|
public void deleteByRoleId(Long roleId) {
|
|
|
LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
|
|
@@ -31,6 +38,13 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysR
|
|
|
@Override
|
|
|
public void saveBatchByRoleId(Long roleId, List<Long> menuIds) {
|
|
|
List<SysRoleMenu> sysMenus = new ArrayList<>();
|
|
|
+ HashMap<Long, SysMenu> menuMap = sysMenuService.getByIds(menuIds);
|
|
|
+ for (Long menuId : menuIds) {
|
|
|
+ Long parentId = menuMap.get(menuId).getParentId();
|
|
|
+ if(!menuIds.contains(parentId)){
|
|
|
+ menuIds.add(parentId);
|
|
|
+ }
|
|
|
+ }
|
|
|
for (Long menuId : menuIds) {
|
|
|
SysRoleMenu roleMenu = new SysRoleMenu();
|
|
|
roleMenu.setRoleId(roleId);
|
|
@@ -40,6 +54,8 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<ISysRoleMenuMapper, SysR
|
|
|
this.saveBatch(sysMenus);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<SysRoleMenu> getByRoleId(Long roleId) {
|
|
|
LambdaQueryWrapper<SysRoleMenu> wrapper = new LambdaQueryWrapper<>();
|