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;
/**
*
* 服务实现类
*
*
* @author
* @since 2022-06-09
*/
@Service
public class SysRoleMenuServiceImpl extends ServiceImpl implements ISysRoleMenuService {
@Autowired
ISysMenuService sysMenuService;
@Override
public void deleteByRoleId(Long roleId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRoleMenu::getRoleId,roleId);
this.remove(wrapper);
}
@Override
public void saveBatchByRoleId(Long roleId, List menuIds) {
List sysMenus = new ArrayList<>();
HashMap 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);
roleMenu.setMenuId(menuId);
sysMenus.add(roleMenu);
}
this.saveBatch(sysMenus);
}
@Override
public List getByRoleId(Long roleId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysRoleMenu::getRoleId,roleId);
return this.list(wrapper);
}
}